異常描述
在安裝CDH7.0.3的過程中,如果和以前的版本一樣安裝HiveServer2角色,會遇到以下問題,導致HiveServer2啟動失敗
<code>[main]: Found configuration file file:/run/cloudera-scm-agent/process/217-hive-HIVESERVER2/hive-site.xml/<code>
- 測試環境
1.Redhat7.4
2.CDH7.0.3
3.集群未Kerberos
異常重現和說明
和以往版本的做法一樣,在Hive組件裡面安裝Hive Metastore Server, HiveServer2和GateWay角色。如下圖所示:
此時發現無法啟動HiveServer2角色
並報出如下錯誤
<code>[main]: Found configuration file file:/run/cloudera-scm-agent/process/217-hive-HIVESERVER2/hive-site.xml/<code>
進一步分析,找到HiveServer2的Stderr日誌,發現如下報錯信息:
<code>Exception in thread "main" java.lang.IllegalArgumentException: mr execution engine is not supported!
at org.apache.hadoop.hive.conf.HiveConf.validateExecutionEngine(HiveConf.java:5594)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5578)
at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5434)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:100)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:84)
at org.apache.hive.service.server.HiveServer2.main(HiveServer2.java:1130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
at org.apache.hadoop.util.RunJar.main(RunJar.java:232)/<init>/<code>
這裡的關鍵信息是mr execution engine is not supported!
這是因為在新版CDH7.0.3中,Hive的默認執行引擎不再是MapReduce了,而是換成了Tez。因此HiveServer2在沒有Tez的情況下,便會報出這個錯誤。
異常解決
首先我們在CDH7.0.3中添加Hive On Tez組件,然後在該Hive on Tez服務中安裝HiveServer2服務,再次啟動HiveServer2服務進行驗證。
安裝Hive on Tez後,HiveServer2成功啟動。
異常解決。
閱讀更多 Hadoop實操 的文章