中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive中的常見問題有哪些

發布時間:2021-12-10 10:50:29 來源:億速云 閱讀:210 作者:小新 欄目:云計算

這篇文章主要為大家展示了“Hive中的常見問題有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Hive中的常見問題有哪些”這篇文章吧。

  • hive單表分區數過多執行查詢報錯(實際上分區數越多查詢越慢,應控制分區數在5000以下):

java.lang.OutOfMemoryError: Java heap space

參考:OOM occurs when query spans to a large number of partitions

原因:

  1. hive會在執行查詢時先將元數據中的分區信息加載到內存中,包括PARTITIONS、PARTITION_KEY_VALS、PARTITION_PARAMS等表的數據,如果分區數過多,這些表中的數據量也越大,hiveserver2默認的堆內存只有256M,因此heap不足。

  2. 如果hive-site.xml配置mapred.reduce.tasks數目較多(默認為-1,即slave個數),會導致每個查詢job產生更多的map過程,同時分區數較多,加大了單個mapred加載的分區數據量。而在mapred-site.xml中的配置占用內存過低也會導致查詢執行過程中報錯,可適當調整:mapred.child.java.opts=-Xmx512m -XX:+UseConcMarkSweepGC

解決:按照其他規則分區,降低目標表分區數,修改hive-env.sh,加入配置:export HADOOP_HEAPSIZE=2048


 

  • hive0.12升級到0.13后啟動hiveserver2,beeline登入執行任何查詢均報錯

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V

原因:hadoop1.0.3中沒有Configuration.unset(String)這個方法,對比API可知:Configuration2.2.0、Configuration1.0.4。

參考:NoSuchMethodError exception when using HIVE 0.13 with Hadoop 1.0.4

修復:以下三種方法任選其一

  1. hiveserver2啟動時加入參數:hiveserver2 --hiveconf fs.permissions.umask-mode=022

  2. 修改1.0.3源碼:org/apache/hadoop/hive/ql/exec/Utilities.java,將第3417行改為:conf.set("fs.permissions.umask-mode", "");

    重新編譯后將該類替換到hive-exec-0.13.0.jar包中。

  3. 修改hive-site.xml,加入以下配置:

    <property>
        <name>fs.permissions.umask-mode</name>
        <value>022</value>
        <description> Setting a value for fs.permissions.umask-mode to work around issue in HIVE-6962.
     It has no impact in hadoop 1.x line on hdfs operations.
        </description>
    </property>



  • hive0.13.1升級到0.14后執行任何SQL均報錯

NoSuchMethodError: org.apache.hadoop.mapred.JobConf.unset(Ljava/lang/String;)V

原因:同上,不兼容低版本的hadoop,JobConf繼承了Configuration,因此沒有unset方法。

參考:https://cwiki.apache.org/confluence/display/Hive/FilterPushdownDev

解釋:Filter Pushdown,過濾器鏈用于進一步提高數據命中率。

修復:修改org/apache/hadoop/hive/ql/io/HiveInputFormat.java第429行pushFilters方法,

將前兩行使用unset的代碼注釋后編譯重新打包即可:

javac -cp .:/hive/lib/*:/hadoop/lib/*:/hadoop/* HiveInputFormat.java
mkdir -p org/apache/hadoop/hive/ql/io/
mv HiveInputFormat*.class org/apache/hadoop/hive/ql/io/
jar uf /hive/lib/hive-exec-1.1.0.jar org/apache/hadoop/hive/ql/io/HiveInputFormat*.class

修改版下載地址:hive-exec-0.14.0.jar


  • 執行一個動態分區語句時HQL報錯

org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error: Unable to deserialize reduce input key from x1x128x0x0x19x1x255 with properties {columns=reducesinkkey0,reducesinkkey1,reducesinkkey2,reducesinkkey3, serialization.lib=org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe, serialization.sort.order=++++++, columns.types=int,int,int,int,string,bigint}

原因:hive0.13.1 bug,如果設置了 hive.optimize.sort.dynamic.partition參數(默認為true,見 hive-default.xml.template),則動態分區時會對所有字段排序,也會影響到group by中的字段。

參考:Dynamic sort optimization propagates additional columns even in the absence of order by

修復:hive0.13.1升級到0.14即可。


  • Hive 存儲過程(暫不支持)

參考:https://issues.apache.org/jira/browse/HIVE-3087

解釋:這個估計以后也不會有,因為完全可以用shell替代。


  • Hive1.2與Hadoop2.6執行hive客戶端或beeline報錯:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

原因:YARN中的jline版本過低。

解決:將hive-lib中的jline替換到yarn-lib目錄中:

cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/
rm -f $HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar

以上是“Hive中的常見問題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特中旗| 新和县| 祁门县| 望都县| 芦溪县| 兰西县| 谢通门县| 揭东县| 凉城县| 嵩明县| 民县| 柞水县| 尚义县| 揭西县| 买车| 金秀| 洛阳市| 隆尧县| 农安县| 平湖市| 大余县| 剑阁县| 偃师市| 上饶市| 方山县| 五台县| 当雄县| 镇沅| 喀喇| 丹寨县| 盈江县| 虹口区| 黄大仙区| 吉安市| 刚察县| 库车县| 黄石市| 磴口县| 龙游县| 花垣县| 秦安县|