ITPub博客

首页 > 大数据 > 数据分析 > 20【在线日志分析】之记录一次Spark Streaming+Spark SQL的数据倾斜

20【在线日志分析】之记录一次Spark Streaming+Spark SQL的数据倾斜

原创 数据分析 作者:hackeruncle 时间:2017-02-19 23:15:23 0 删除 编辑

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数据)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30089851/viewspace-2133918/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
主要从事大数据平台产品的技术工作; 负责基于Spark、Flink生产开发及性能调优; 负责对公司的集群的部署、监控、调优和运营; 主导我司的数据平台0到1及实时中间件项目开发; 此外,精通Java、Shell、Python编程; 且荣获2016年IBM的Spark大赛全球第四名,中国区域第一名。

注册时间:2015-01-03

  • 博文量
    187
  • 访问量
    395847