hive并發(fā)調(diào)用的運(yùn)行方式-個(gè)人經(jīng)驗(yàn)篇 - ggjucheng - 博客園
前言
使用hive,我們很多情況下會(huì)并發(fā)調(diào)用hive程序,將sql任務(wù)轉(zhuǎn)換成mapreuce提交到hadoop集群中,而在本人使用hive的過程中,發(fā)現(xiàn)并發(fā)調(diào)用hive有幾個(gè)問題,在這個(gè)和大家分享下.
正文
默認(rèn)安裝hive,hive是使用derby內(nèi)存數(shù)據(jù)庫保存hive的元數(shù)據(jù),這樣是不可以并發(fā)調(diào)用hive的,需要配置為使用mysql保存hive的元數(shù)據(jù)。
?
運(yùn)行hive,可以有以下訪問方式:
1.hiveserver :hive以thrift服務(wù)的服務(wù)器形式運(yùn)行,允許不同的語言編寫客戶端進(jìn)行訪問,通過thrift,jdbc,odbc連接器和hive服務(wù)器與hive通信,這種方式很適合java編程人員通過jdbc接口去訪問hive,但是在實(shí)踐中,發(fā)現(xiàn)并發(fā)調(diào)用時(shí),很容易出現(xiàn)hiveserver無故宕機(jī),沒有jvm的dump文件,hiveserver的程序也毫無輸出。
2.metastore :
2.1.內(nèi)嵌metastore :默認(rèn)情況下,metastore和hive是運(yùn)行在同一個(gè)進(jìn)程里,這種方式經(jīng)過測(cè)試,在并發(fā)中是最穩(wěn)定的,使用這種方式,暫時(shí)沒有出現(xiàn)問題。
2.2.遠(yuǎn)程metastore :通過配置hive.metastore.local為false,讓metastore作為一個(gè)單獨(dú)的進(jìn)程運(yùn)行,hive客戶端都要連接遠(yuǎn)程metastore才能執(zhí)行任務(wù),但是在實(shí)踐中,一樣很容易出現(xiàn)遠(yuǎn)程metastore無故宕機(jī),同樣沒有jvm的dump文件,遠(yuǎn)程metastore程序也毫無輸出。
?
總結(jié)
個(gè)人經(jīng)驗(yàn),如果需要并發(fā)調(diào)用hive,首先要配置hive的元數(shù)據(jù)為mysql數(shù)據(jù)庫,最好是通過內(nèi)嵌metastore的方式去調(diào)用hive,通過執(zhí)行 $HIVE_HOME/bin/hive -S -e "<hive sql>",再從管道獲取hive的輸出,是本人覺得最穩(wěn)定安全的方式。
hive并發(fā)調(diào)用的運(yùn)行方式-個(gè)人經(jīng)驗(yàn)篇 - ggjucheng - 博客園
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
