這篇文章主要為大家展示了“Hive中的常見(jiàn)問(wèn)題有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Hive中的常見(jiàn)問(wèn)題有哪些”這篇文章吧。
創(chuàng)新互聯(lián)公司提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)站設(shè)計(jì),一元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十余年的網(wǎng)站開(kāi)發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破上千余家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.
hive單表分區(qū)數(shù)過(guò)多執(zhí)行查詢(xún)報(bào)錯(cuò)(實(shí)際上分區(qū)數(shù)越多查詢(xún)?cè)铰瑧?yīng)控制分區(qū)數(shù)在5000以下):
java.lang.OutOfMemoryError: Java heap space
參考:OOM occurs when query spans to a large number of partitions
原因:
hive會(huì)在執(zhí)行查詢(xún)時(shí)先將元數(shù)據(jù)中的分區(qū)信息加載到內(nèi)存中,包括PARTITIONS、PARTITION_KEY_VALS、PARTITION_PARAMS等表的數(shù)據(jù),如果分區(qū)數(shù)過(guò)多,這些表中的數(shù)據(jù)量也越大,hiveserver2默認(rèn)的堆內(nèi)存只有256M,因此heap不足。
如果hive-site.xml配置mapred.reduce.tasks數(shù)目較多(默認(rèn)為-1,即slave個(gè)數(shù)),會(huì)導(dǎo)致每個(gè)查詢(xún)job產(chǎn)生更多的map過(guò)程,同時(shí)分區(qū)數(shù)較多,加大了單個(gè)mapred加載的分區(qū)數(shù)據(jù)量。而在mapred-site.xml中的配置占用內(nèi)存過(guò)低也會(huì)導(dǎo)致查詢(xún)執(zhí)行過(guò)程中報(bào)錯(cuò),可適當(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升級(jí)到0.13后啟動(dòng)hiveserver2,beeline登入執(zhí)行任何查詢(xún)均報(bào)錯(cuò):
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V
原因:hadoop1.0.3中沒(méi)有Configuration.unset(String)這個(gè)方法,對(duì)比API可知:Configuration2.2.0、Configuration1.0.4。
參考:NoSuchMethodError exception when using HIVE 0.13 with Hadoop 1.0.4
修復(fù):以下三種方法任選其一
hiveserver2啟動(dòng)時(shí)加入?yún)?shù):hiveserver2 --hiveconf fs.permissions.umask-mode=022
修改1.0.3源碼:org/apache/hadoop/hive/ql/exec/Utilities.java,將第3417行改為:conf.set("fs.permissions.umask-mode", "");
重新編譯后將該類(lèi)替換到hive-exec-0.13.0.jar包中。
修改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升級(jí)到0.14后執(zhí)行任何SQL均報(bào)錯(cuò):
NoSuchMethodError: org.apache.hadoop.mapred.JobConf.unset(Ljava/lang/String;)V
原因:同上,不兼容低版本的hadoop,JobConf繼承了Configuration,因此沒(méi)有unset方法。
參考:https://cwiki.apache.org/confluence/display/Hive/FilterPushdownDev
解釋?zhuān)篎ilter Pushdown,過(guò)濾器鏈用于進(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í)行一個(gè)動(dòng)態(tài)分區(qū)語(yǔ)句時(shí)HQL報(bào)錯(cuò):
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,見(jiàn) hive-default.xml.template),則動(dòng)態(tài)分區(qū)時(shí)會(huì)對(duì)所有字段排序,也會(huì)影響到group by中的字段。
參考:Dynamic sort optimization propagates additional columns even in the absence of order by
修復(fù):hive0.13.1升級(jí)到0.14即可。
Hive 存儲(chǔ)過(guò)程(暫不支持)
參考:https://issues.apache.org/jira/browse/HIVE-3087
解釋?zhuān)哼@個(gè)估計(jì)以后也不會(huì)有,因?yàn)橥耆梢杂胹hell替代。
Hive1.2與Hadoop2.6執(zhí)行hive客戶(hù)端或beeline報(bào)錯(cuò):
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
原因:YARN中的jline版本過(guò)低。
解決:將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中的常見(jiàn)問(wèn)題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前題目:Hive中的常見(jiàn)問(wèn)題有哪些
瀏覽地址:http://aaarwkj.com/article18/gdiigp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、Google、靜態(tài)網(wǎng)站、企業(yè)建站、網(wǎng)站排名、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)