一:报 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
背景:在DBeaver执行一个小小的查询,就遇上了这样的错误,也没看出来有什么问题。我们在服务端查看,会发现有以下提示:
分析:Hive-on-MR已经在Hive2中弃用了,并且在未来的版本中不会用到。建议使用不同的执行引擎(例如Spark,tez)或者使用Hive1.x版本。所以,Hive在2.x版本已经不支持MapReduce了。
解决:
切换本地模式 set hive.exec.mode.local.auto=true;
我们知道,0.7版本后Hive开始支持任务执行选择本地模式(local mode)。大多数的Hadoop job是需要hadoop提供完整的可扩展性来处理大数据的。不过有时候hive的输入数据量是非常小的。在这种情况下,为查询出发执行任务的时间消耗可能会比实际job的执行时间要多得多。
hive执行本地模式后会允许使用MapReduce,如图所示: