日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Hive报错FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask

發(fā)布時間:2023/12/8 ChatGpt 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive报错FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Hive報錯Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask

  • 1、集群環(huán)境
  • 2、錯誤由來
  • 3、錯誤原因
  • 4、錯誤分析
  • 5、解決辦法

1、集群環(huán)境

CDH集群,hive的引擎是mr。

2、錯誤由來

今天在測試環(huán)境的集群里跑hive任務,報錯Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask。

3、錯誤原因

這個錯誤是因為hive的map join參數(shù)默認是開啟的:

hive.auto.convert.join=true

使用hive進行map join時, 節(jié)點內存不夠就會報該類型錯誤。

4、錯誤分析

MapJoin是指在Map 端進行join,其原理是broadcast join,即把小表作為一個完整的驅動表來進行join操作。通常情況下,要連接的各個表里面的數(shù)據會分布在不同的Map中進行處理。即同一個Key對應的Value可能存在不同的Map中。這樣就必須等到 Reduce中去連接。要使MapJoin能夠順利進行,那就必須滿足這樣的條件:除了一份表的數(shù)據分布在不同的Map中外,其他連接的表的數(shù)據必須在每個Map中有完整的拷貝。Map Join會把小表全部讀入內存中,在Map階段直接拿另外一個表的數(shù)據和內存中表數(shù)據做匹配 (這時可以使用Distributed Cache將小表分發(fā)到各個節(jié)點上,以供Mapper加載使用),由于在map時進行了join操作,省去了reduce運行的效率也會高很多。

當機器內存不足時,無法在Map端進行join,即會報錯。

5、解決辦法

  • 1、可以關閉上面的map join 改為common join
    shell命令行:set hive.auto.convert.join=false

  • 2、修改配置文件下的參數(shù)可以把map join 關閉,使用common join
    hive_conf.xml

<property> <name>hive.auto.convert.join</name> <value>false</value>//true修改為false <description>Enables the optimization about converting common join into mapjoin</description> </property>

總結

以上是生活随笔為你收集整理的Hive报错FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。