Kafka和apache Spark流式集群配置

时间:2017-07-07 08:12:02

标签: apache-spark apache-kafka spark-streaming

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

我该如何解决?

由于

解决

  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. 关于脚本的spark配置,我还添加了master-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
  7. 运行脚本

1 个答案:

答案 0 :(得分:1)

您是否尝试添加

--master <master_url>

选项?如果省略此选项以进行spark-submit,它将在本地运行。

您还可以查看Spark关于spark-submit选项的文档:https://spark.apache.org/docs/latest/submitting-applications.html#launching-applications-with-spark-submit