这篇文章将为大家详细讲解有关Spark Streaming+Spark sql的数据倾斜示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.现象
三台机器都有产生executor,每台都会产生tasks,但是其中只有一台的task有input数据,其他机器的tasks都没有数据。
2.猜想
2.1是不是数据倾斜?
是
2.2是数据量过大,group by时,导致key分布不均?
比如key1 有98万,key2有2万,那么shuffle时,肯定数据倾斜。但是我刚开始数据量不是很大,所以pass (就算数据量大,也很简单处理,一般处理时key加上随机前缀数)
2.3是不是数据量太少 不够分区的?
也怀疑过,不过还没去验证
2.4 flume流到kafka,是snappy压缩格式,而spark作为kafka的消费者,虽然能够自动识别压缩格式,但是这种snappy格式不支持切分
也怀疑过,不过还没去修改支持spilt的压缩格式,也还没去验证
2.5 spark streaming分区数目是有谁决定的?
使用direct这种模式是由kafka的分区数目决定,
使用receiver这种模式由流的数目决定也就是由receiver数目决定。
3.修改分区数
[root@sht-sgmhadoopdn-02 kafka]#bin/kafka-topics.sh --alter --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic logtopic --partitions 3
[root@sht-sgmhadoopdn-02 kafka]# bin/kafka-topics.sh --describe --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic logtopic
Topic:logtopic PartitionCount:3 ReplicationFactor:3 Configs:
Topic: test Partition: 0 leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: test Partition: 1 leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Topic: test Partition: 2 leader: 2 Replicas: 2,3,1 Isr: 2,3,1
[root@sht-sgmhadoopdn-02 kafka]#
4.验证(每个executor都有input数据)
关于Spark Streaming+Spark sql的数据倾斜示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。