项目场景:
HiveOnSpark环境下执行hive脚本,报错。
问题描述:
提示:这里描述项目中遇到的问题:
例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:
@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); }
原因分析:
通过在网上找资料:发现主要原因是数据倾斜导致的问题。executor内存不足导致spark task的任务失败。
解决方案:
解决方法 1:
对数据更大的表通过进行GROUP BY 还有去重 等 *** 作,减少数据量。
解决方法 2:
修改hive的配置参数
set hive.auto.convert.join = false;
说明: 将Join转成普通的Map Join
默认值: false
set hive.ignore.mapjoin.hint = false;
说明: 忽略mapjoin hint ,即mapjoin标记
默认值: true,默认忽略
set hive.exec.parallel = true;
说明:是否并行提交任务
默认值:false,关闭此功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)