spark千万数据join问题?
这种情况一般是内存使用超出了最大的内存设置,被yarn给kill了,可以看一下Executor的日志,确认下。异常情况检查:1. join操作需要检查关联条件的列是否有重复数据,大量重复数据会导致数据膨胀,这个没有太好的解法,需要结合业务,尽可能的避免重复数据的出现2. 检查是否有数据倾斜的情况(从SparkApplication的WebUI中分析Task的执行情况),美团有篇文章,专门介绍了这种问题的处理方案:Spark性能优化指南——高级篇正常join,则需要考虑:1. 修改spark.sql.shuffle.partitions提高shuffle阶段的任务并行度,降低单个任务的内存占用2. 增加spark.yarn.executor.memoryOverhead
■网友
我测试过百万数据join亿级数据。你可以从如下几个方面入手:1.减少data shuffle的规模。多map掉无用column再进行reduce like的操作。2.检查数据是否是skewed data。也就是说join出的key value pair大小极度不均。3. Spark参数调优。4.升级集群。至于是否升级,建议采用ganglia监控集群,如果Total used memory的peak接近所有可用memory,那么要么加大spill到disk的量,要么就升级集群内存。
■网友
遇到过类似问题。 可以有几个办法,
一个方法是试着用union, groupbykey, mapvalues。 似乎会节约一些内存。
方法2 join前,将两个集合拆成几部分,组合起来做join。
方法3, 一种简单的办法, 遇到这种情形的join用map reduce代替spark,计算完了再转回spark继续就成了。
【spark千万数据join问题?】 方法4,使用spark-submit时,指定内存。另外将每个node中spark配置里的单任务内存优化一下。比如从5GB改成9GB
推荐阅读
- 家中千万不要摆这些绿植,对身体不仅没有帮助,还会起反作用
- “一部手机读云南”上线力争建成国家方志大数据中心西南中心
- 社保卡■看病买药忘带社保卡千万别着急!快打开“我的南京”用电子社保卡
- 联合国大数据全球平台中国区域中心在杭州成立
- 银行的数据中心可以跳槽去互联网公司吗
- 集资|通州:拉链厂老板非法集资近千万!悲剧了……
- |大数据赋力 半个多月前拉客的“黑车”精准落网
- 数据采集终端|
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 假如把中国电信监测到的3亿人一个月每天上网的所有行为打个包,哪些数据应该被提出从这些数据能得到啥
