Tao*_*a_k 11 hadoop cloudera hadoop-yarn apache-spark
我有关于Apache Spark的一般性问题:
我们有一些使用Kafka消息的spark流式脚本.问题:他们在没有特定错误的情况下随机失败......
当我手动运行它们时,某些脚本没有任何作用,其中一个脚本没有显示以下消息:
错误SparkUI:无法绑定SparkUI java.net.BindException:地址已被使用:服务'SparkUI'在16次重试后失败!
所以我想知道是否有一种特定的方法来并行运行脚本?
他们都在同一个罐子里,我和Supervisor一起运行.Spark安装在纱线上的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
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 !
更新:我更改了命令,现在运行它(现在停止显示特定的消息):
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]
Run Code Online (Sandbox Code Playgroud)
如果多个用户尝试同时启动Spark会话或现有的Spark会话未关闭属性,则会发生此问题
有两种方法可以解决此问题。
如下所示在其他端口上启动新的Spark会话
spark-submit --conf spark.ui.port=5051 <other arguments>`<br>`spark-shell --conf spark.ui.port=5051
Run Code Online (Sandbox Code Playgroud)使用4041至4056端口查找所有spark会话,并使用kill命令终止进程,netstat和kill命令可用于查找占用该端口的进程并分别终止该进程。这是用法:
sudo netstat -tunalp | grep LISTEN| grep 4041
Run Code Online (Sandbox Code Playgroud)上面的命令将产生如下输出,最后一列是进程ID,在这种情况下,PID为32028
tcp 0 0 :::4040 :::* LISTEN 32028/java
Run Code Online (Sandbox Code Playgroud)
找到进程ID(PID)后,您可以使用以下命令杀死spark进程(spark-shell或spark-submit)
sudo kill -9 32028
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10117 次 |
| 最近记录: |