我正在使用Spark流处理来自融合平台的数据,并在对记录进行了很少的转换之后写入了hdfs。
我已经配置了Spark集群16个执行程序,每个执行程序配置4个核,并且Kafka设置是一个包含72个分区的主题。
面临的问题是,总是一个执行者将所有记录写入hdfs。
我已经从spark UI确认了这一点,并执行了Kafka cli命令来描述我的kafa主题的消费者组,发现只有一个唯一的主机地址从spark集群连接到kafka。
因此,无论spark集群和Kafka集群是否增加,我的应用程序都不会横向扩展。
示例粗糙代码。
Dstream ds = kutils.createdirectstream (locationstrategies.preferconsistent,topics,params);
Dt= Ds converted to dataset by applying schema;
Dt.write hdfs .mode append .format parquet;
对不起,我无权访问真实代码。以上只是一个模板。
请帮助。