Hive中的常見問題有哪些

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

創(chuàng)新互聯(lián)公司提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì),高端網(wǎng)站設(shè)計(jì)一元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十余年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破上千余家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.

  • hive單表分區(qū)數(shù)過多執(zhí)行查詢報錯(實(shí)際上分區(qū)數(shù)越多查詢越慢,應(yīng)控制分區(qū)數(shù)在5000以下):

java.lang.OutOfMemoryError: Java heap space

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

原因:

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

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

解決:按照其他規(guī)則分區(qū),降低目標(biāo)表分區(qū)數(shù),修改hive-env.sh,加入配置:export HADOOP_HEAPSIZE=2048


 

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

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

修復(fù):以下三種方法任選其一

  1. hiveserver2啟動時加入?yún)?shù):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后執(zhí)行任何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,過濾器鏈用于進(jìn)一步提高數(shù)據(jù)命中率。

修復(fù):修改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

  • 執(zhí)行一個動態(tài)分區(qū)語句時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,如果設(shè)置了 hive.optimize.sort.dynamic.partition參數(shù)(默認(rèn)為true,見 hive-default.xml.template),則動態(tài)分區(qū)時會對所有字段排序,也會影響到group by中的字段。

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

修復(fù):hive0.13.1升級到0.14即可。

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

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

解釋:這個估計(jì)以后也不會有,因?yàn)橥耆梢杂胹hell替代。

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

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

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

解決:將hive-lib中的jline替換到y(tǒng)arn-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中的常見問題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:Hive中的常見問題有哪些
瀏覽地址:http://muchs.cn/article18/gdiigp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷Google、靜態(tài)網(wǎng)站企業(yè)建站、網(wǎng)站排名、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司