Kinesis Spark Streaming会读取记录:在独立集群中运行

时间:2019-03-18 07:28:41

标签: java apache-spark spark-streaming amazon-kinesis

我在Java中有一个Spark Streaming应用程序,该应用程序从kineses流(1个分片)中读取记录,然后进行一些处理。

当我在spark本地模式下运行应用程序时,它能够接收记录,但是当我在独立集群中运行同一应用程序时,它不会从运动学流中读取记录。

我已经使用spark-submit命令运行该应用程序:

本地模式:

spark-submit --class com.test.Main --master local[3] --jars /test/test-saprk-app.jar

独立集群模式: spark-submit --class com.test.Main --master spark://<machine-ip>:7077 --deploy-mode cluster --executor-cores 3 --executor-memory 10GB --jars /test/test-saprk-app.jar

使用的火花版本:2.4.0

任何人都可以建议我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:1)

要从kinesis读取数据,我们需要将accessKey和secretKey设置为env变量,或者将其设置为aws ec2机器的IAM角色。

如果spark应用程序以集群/客户端模式提交,请确保设置了这些属性,否则由于缺少所需的凭证,因此它不会从kinesis流中读取任何数据。

我尝试将这些env变量放入conf / spark-env.sh文件中,并且可以在群集的每个节点上使用