共計 2050 個字符,預計需要花費 6 分鐘才能閱讀完成。
select count(*) from tablename 時出現異常怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面 …”>
本篇內容主要講解“Hive 執行 hive select count(*) from tablename 時出現異常怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Hive 執行 hive select count(*) from tablename 時出現異常怎么解決”吧!
版本說明
Hadoop 1.0.3
HBase 0.94.1
Hive 0.9.0
執行操作
hive select count(*) from tablename;
異常提示
Exception in thread Thread-54 java.lang.RuntimeException: Error while reading from task log url
at org.apache.hadoop.hive.ql.exec.errors.TaskLogProcessor.getStackTraces(TaskLogProcessor.java:240)
at org.apache.hadoop.hive.ql.exec.JobDebugger.showJobFailDebugInfo(JobDebugger.java:227)
at org.apache.hadoop.hive.ql.exec.JobDebugger.run(JobDebugger.java:92)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://slave3:50060/tasklog?taskid=attempt_201212192008_0014_m_000000_3 start=-8193
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at java.net.URL.openStream(URL.java:1010)
at org.apache.hadoop.hive.ql.exec.errors.TaskLogProcessor.getStackTraces(TaskLogProcessor.java:192)
… 3 more
解決步驟
1. 異常中的路徑 (根據自己的異常 URL 地址)
http://slave3:50060/tasklog?taskid=attempt_201212192008_0014_m_000000_3 start=-8193
修改為:
http://slave3:50060/tasklog?attemptid=attempt_201212192008_0014_m_000000_3 start=-8193
進行訪問
2. 頁面中有異常具體記錄,我這點的異常提示是:
java.lang.NoClassDefFoundError: com/google/protobuf/Message
明顯是缺少某個 jar, 這個 jar 可以在 HBase 的 jar 中找到 protobuf-java-2.4.0a.jar
3. 將 jar 放入 Hive 的 lib 目錄下,修改配置文件 conf/hive-site.xml
(如果前面整合過 Hadoop,HBase,Hive 的就知道,這里是加載 Hive 默認沒有加載的 jar)
property
name hive.aux.jars.path /name
value file:///usr/java/hive-0.9.0/lib/protobuf-java-2.4.0a.jar /value
/property
4. 再次執行 Hive 的統計命令,可能還會有異常,因為我的 MapReduce 前面使用過,在 Hadoop 中已經 加入過 protobuf-java-2.4.0a.jar 這個 jar, 如果以前你沒有在 Hadoop 的 lib 下加入這個 jar 可能也 會有異常,如果出現異常依然可以根據第一步驟的方法來查看具體的異常。
5. 特別提示:如果 Hadoop 以前沒有加入這個 jar, 請將集群所有的機器都加入這個 jar, 并重啟 Hadoop 或者單獨重啟 MapReduce, 重啟 MapReduce 命令如下:
stop-mapred.sh
start-mapred.sh
到此,相信大家對“Hive 執行 hive select count(*) from tablename 時出現異常怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!