永发信息网

hive中sql运算出现倾斜的情况,主要原因有哪些

答案:2  悬赏:30  手机版
解决时间 2021-02-26 10:54
  • 提问者网友:骑士
  • 2021-02-25 18:30
hive中sql运算出现倾斜的情况,主要原因有哪些
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-02-25 19:47
1. Mapjoin是一种避免避免数据倾斜的手段

  允许在map阶段进行join操作,MapJoin把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,由于在map是进行了join操作,省去了reduce运行的效率也会高很多

在《hive:join遇到问题》有具体操作

  在对多个表join连接操作时,将小表放在join的左边,大表放在Jion的右边,

  在执行这样的join连接时小表中的数据会被缓存到内存当中,这样可以有效减少发生内存溢出错误的几率

2. 设置参数

  hive.map.aggr = true

  hive.groupby.skewindata=true 还有其他参数

3.SQL语言调节

  比如: group by维度过小时:采用sum() group by的方式来替换count(distinct)完成计算

4.StreamTable

  将在reducer中进行join操作时的小table放入内存,而大table通过stream方式读取
全部回答
  • 1楼网友:执傲
  • 2021-02-25 21:24
&是按位与运算符,如:a&b 只有当a,b同时为真时,结果才为真,其他情况都为假。 | 是按位或运算符,如:a|b 只有当a,b同时为假的时候结果才为假,其他情况为真。 ^是按位异或运算符,如:a^b 只有当a,b同时为真时候为真,其他情况都为假。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯