【发布时间】:2015-12-25 12:34:12
【问题描述】:
我有一个关于 Apache Spark 的一般性问题:
我们有一些使用 Kafka 消息的 spark 流脚本。 问题:它们随机失败,没有特定错误...
当我手动运行某些脚本时,它们在工作时什么也不做,一个失败并显示此消息:
错误 SparkUI:无法绑定 SparkUI java.net.BindException:地址已在使用中:服务“SparkUI”重试 16 次后失败!
所以我想知道是否有特定的方法可以并行运行脚本?
它们都在同一个 jar 中,我使用 Supervisor 运行它们。 Spark 安装在 Yarn 上的 Cloudera Manager 5.4 上。
这是我启动脚本的方式:
sudo -u spark spark-submit --class org.soprism.kafka.connector.reader.TwitterPostsMessageWriter /home/soprism/sparkmigration/data-migration-assembly-1.0.jar --master yarn-cluster --deploy-mode client
感谢您的帮助!
更新:我更改了命令,现在运行它(它停止了现在特定的消息):
root@ns6512097:~# sudo -u spark spark-submit --class org.soprism.kafka.connector.reader.TwitterPostsMessageWriter --master yarn --deploy-mode client /home/soprism/sparkmigration/data-migration-assembly-1.0.jar
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/jars/avro-tools-1.7.6-cdh5.4.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
15/09/28 16:14:21 INFO Remoting: Starting remoting
15/09/28 16:14:21 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@ns6512097.ip-37-187-69.eu:52748]
15/09/28 16:14:21 INFO Remoting: Remoting now listens on addresses: [akka.tcp://sparkDriver@ns6512097.ip-37-187-69.eu:52748]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/jars/avro-tools-1.7.6-cdh5.4.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
【问题讨论】:
-
你不必担心绑定
SparkUI地址的错误,因为spark会自动增加绑定的端口号SparkUI。你还有其他线索吗?也许分享完整的日志? -
不幸的是,我没有更多线索,除了我粘贴的错误之外,日志是正常的:(这就是为什么我在这里询问我们所做的是否正确......而且似乎是情况?
-
好吧,您提交代码的一个问题是
--master ...和--deploy-mode在jar 之后,它们将被忽略。你可以试试sudo -u spark spark-submit --class org.soprism.kafka.connector.reader.TwitterPostsMessageWriter --master yarn-cluster --deploy-mode client /home/soprism/sparkmigration/data-migration-assembly-1.0.jar -
我更新了我的帖子以添加您的建议和结果:)
-
顺便说一句,您确定 unix spark 用户对 jar 具有读取权限吗?它位于另一个 unix 用户的主目录中。这些并不是应该产生的几乎所有日志。
标签: hadoop apache-spark cloudera hadoop-yarn