2017-07-07 103 views
1

我需要在一组机器上运行一些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但它似乎只在主节点上运行。

我该如何解决?

感谢

解决

  1. 在文件夹conf改名为slaves.template文件slaves并加入每一个工人
  2. 在文件夹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

  3. 在主计算机上的文件夹sbin我运行start-master.sh脚本。
  4. 在每一个工作人员,在文件夹sbin我跑start-slave.sh spark://master-url:master-portmaster-urlmaster-port必须与在spark-env.sh文件中配置的配置相同。
  5. 在脚本的火花配置我还添加了主URL(val sparkConf = new SparkConf().setAppName("SparkScript").setMaster("spark://master-url:master-port")
  6. 运行与./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
+0

你使用过'deploy-mode'吗?请分享你的火花集群如何准备?使用什么版本的火花和更多的信息。 您还可以检查 https://spark.apache.org/docs/latest/submitting-applications.html – chaitan64arun

回答