【发布时间】:2017-07-30 08:01:40
【问题描述】:
我需要在机器集群上运行一些 Spark scala 脚本。数据由在其中一台机器上运行的 Apache Kafka 生产者生成。
我已经在 Apache Spark 的 conf 目录中配置了 slaves.template 文件,其中包含集群每个节点的 URL。
我使用以下指令运行脚本:
./bin/spark-submit --class com.unimi.lucaf.App /Users/lucaferrari/scala-spark-script2/target/scala-spark-script-1.0.jar 不过好像只在主节点上运行。
我该如何解决?
谢谢
已解决
- 在文件夹
conf中将slaves.template文件重命名为slaves并添加了每个worker 的URL -
在文件夹
conf中将spark-env.sh.template文件重命名为spark-env.sh并添加以下行:SPARK_MASTER_HOST=1.2.3.4SPARK_MASTER_PORT=7077SPARK_MASTER_WEBUI_PORT=4444SPARK_WORKER_WEBUI_PORT=8081 - 在主计算机上的文件夹
sbin中,我运行start-master.sh脚本。 - 在每个工作人员上,在文件夹
sbin我运行start-slave.sh spark://master-url:master-port。master-url和master-port必须在spark-env.sh文件中配置相同。 - 在脚本的 spark 配置中,我还添加了 master-url (
val sparkConf = new SparkConf().setAppName("SparkScript").setMaster("spark://master-url:master-port") - 使用
./bin/spark-submit --class com.unimi.lucaf.App /home/spark1/scala-spark-script2/target/scala-spark-script-1.0.jar --master spark://master-url:master-port --deploy-mode cluster运行脚本
【问题讨论】:
-
你用过
deploy-mode吗?请分享您的火花簇是如何准备的?使用什么版本的 spark 以及更多信息。也可以查看spark.apache.org/docs/latest/submitting-applications.html
标签: apache-spark apache-kafka spark-streaming