Kinesis Spark流式传输读取记录:在独立群集中运行

问题描述 投票:0回答:1

我在java中有spark spark应用程序,它从kinesis流(1 shard)读取记录并在此之后进行一些处理。

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

我使用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

使用的Spark版本:2.4.0

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

java apache-spark spark-streaming amazon-kinesis
1个回答
1
投票

为了从kinesis读取数据,我们需要将accessKey和secretKey设置为env变量或IAM角色(如果它是aws ec2机器)。

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

我尝试将这些env变量放在conf / spark-env.sh文件中,它可以在集群的每个节点上运行

© www.soinside.com 2019 - 2024. All rights reserved.