我需要在一组机器上运行一些Spark scala脚本。数据由运行在其中一台机器上的Apache Kafka生产者生成。Kafka和apache Spark串流集群配置
我已经与集群的每个节点的URL配置Apache的星火在conf目录下的文件slaves.template。
我用这条指令运行脚本: ./bin/spark-submit --class com.unimi.lucaf.App /Users/lucaferrari/scala-spark-script2/target/scala-spark-script-1.0.jar
但它似乎只在主节点上运行。
我该如何解决?
感谢
解决
- 在文件夹
conf
改名为slaves.template
文件slaves
并加入每一个工人 在文件夹
conf
改名spark-env.sh.template
文件spark-env.sh
的网址,并添加这些行:SPARK_MASTER_HOST=1.2.3.4
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=4444
SPARK_WORKER_WEBUI_PORT=8081
- 在主计算机上的文件夹
sbin
我运行start-master.sh
脚本。 - 在每一个工作人员,在文件夹
sbin
我跑start-slave.sh spark://master-url:master-port
。master-url
和master-port
必须与在spark-env.sh
文件中配置的配置相同。 - 在脚本的火花配置我还添加了主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'吗?请分享你的火花集群如何准备?使用什么版本的火花和更多的信息。 您还可以检查 https://spark.apache.org/docs/latest/submitting-applications.html – chaitan64arun