gpt4 book ai didi

hadoop - Spark : multiple spark-submit in parallel

转载 作者:可可西里 更新时间:2023-11-01 14:11:31 26 4
gpt4 key购买 nike

我有一个关于 Apache Spark 的一般性问题:

我们有一些使用 Kafka 消息的 spark 流脚本。问题:它们在没有特定错误的情况下随机失败...

有些脚本在我手动运行时什么都不做,其中一个失败并显示此消息:

ERROR SparkUI: Failed to bind SparkUI java.net.BindException: Address already in use: Service 'SparkUI' failed after 16 retries!

所以我想知道是否有一种特定的方法可以并行运行脚本?

它们都在同一个 jar 里,我用 Supervisor 运行它们。Spark 安装在 Cloudera Manager 5.4 on Yarn 上。

这是我启动脚本的方式:

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]

最佳答案

如果多个用户尝试同时启动 spark session 或现有 spark session 未关闭属性,则会出现此问题

有两种方法可以解决这个问题。

  • 如下在不同的端口上启动新的 spark session

    spark-submit --conf spark.ui.port=5051 <other arguments>`<br>`spark-shell --conf spark.ui.port=5051
  • 查找所有使用4041到4056端口的spark session ,使用kill命令杀死进程,netstat和kill命令可以分别找到占用端口的进程并杀死进程。这是用法:

    sudo netstat -tunalp | grep LISTEN| grep 4041

以上命令将产生如下输出,最后一列是进程 ID,在本例中 PID 是 32028

tcp        0      0 :::4040    :::*         LISTEN      32028/java

一旦找到进程 ID(PID),就可以使用以下命令终止 spark 进程(spark-shell 或 spark-submit)

sudo kill -9 32028

关于hadoop - Spark : multiple spark-submit in parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32820087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com