HiveServer2、metaStore以及HiveThriftServer2究竟都是什么?

HiveServer2和metaStore

hiveServer2和metaStore其實(shí)都是hive本身帶的組件,那么兩者究竟有什么不同呢?

  • metaStore:hive的metaStore提供的是一個(gè)服務(wù),而這個(gè)服務(wù)就是將hive的元數(shù)據(jù)暴露出去,而不是需要通過對(duì)hive元數(shù)據(jù)庫mysql的訪問才能拿到hive的元數(shù)據(jù)信息;metastore服務(wù)實(shí)際上就是一種thrift服務(wù),通過它我們可以獲取到hive原數(shù)據(jù),并且通過thrift獲取原數(shù)據(jù)的方式,屏蔽了數(shù)據(jù)庫訪問需要驅(qū)動(dòng),url,用戶名,密碼等等細(xì)節(jié)
  • hiveServer2: HiveServer2(HS2)是一個(gè)服務(wù)端接口,使遠(yuǎn)程客戶端可以執(zhí)行對(duì)Hive的查詢并返回結(jié)果。目前基于Thrift RPC的實(shí)現(xiàn)是HiveServer的改進(jìn)版本,并支持多客戶端并發(fā)和身份驗(yàn)證, 啟動(dòng)hiveServer2服務(wù)后,就可以使用jdbc,odbc,或者thrift的方式連接

兩者的關(guān)系見下圖:


image.png

HiveThriftServer2

那么hiveThriftServer2又是什么呢?

  • 其實(shí)HiveThriftServer2是sparkSql中的一個(gè)服務(wù),他繼承了HiveServer2,也就是說HiveServer2有的功能,它一樣也有,Spark Thrift Server的接口和協(xié)議都和HiveServer2完全一致,因此我們部署好Spark Thrift Server后,可以直接使用hive的beeline訪問Spark Thrift Server執(zhí)行相關(guān)語句。Spark Thrift Server的目的也只是取代HiveServer2,因此它依舊可以和Hive Metastore進(jìn)行交互,獲取到hive的元數(shù)據(jù)。那么具體有什么不同呢?
    詳見下表
Hive on Spark Spark Thrift Server
任務(wù)提交模式 每個(gè)session都會(huì)創(chuàng)建一個(gè)RemoteDriver,也就是對(duì)于一個(gè)Application。之后將sql解析成執(zhí)行的物理計(jì)劃序列化后發(fā)到RemoteDriver執(zhí)行 本身的Server服務(wù)就是一個(gè)Driver,直接接收sql執(zhí)行。也就是所有的session都共享一個(gè)Application
性能 性能一般 如果存儲(chǔ)格式是orc或者parquet,性能會(huì)比hive高幾倍,某些語句甚至?xí)邘资?。其他格式的話,性能相差不是很大,有時(shí)hive性能會(huì)更好
并發(fā) 如果任務(wù)執(zhí)行不是異步的,就是在thrift的worker線程中執(zhí)行,受worker線程數(shù)量的限制。異步的話則放到線程池執(zhí)行,并發(fā)度受異步線程池大小限制。 處理任務(wù)的模式和Hive一樣。
sql兼容 主要支持ANSI SQL 2003,但并不完全遵守,只是大部分支持。并擴(kuò)展了很多自己的語法 Spark SQL也有自己的實(shí)現(xiàn)標(biāo)準(zhǔn),因此和hive不會(huì)完全兼容。具體哪些語句會(huì)不兼容需要測試才能知道
HA 可以通過zk實(shí)現(xiàn)HA 沒有內(nèi)置的HA實(shí)現(xiàn),不過spark社區(qū)提了一個(gè)issue并帶上了patch,可以拿來用:SPARK-11100
  • HiveThriftServer2對(duì)于spark來說,就是一個(gè)任務(wù),也需要spark-submit提交,但是他卻是一個(gè)常駐的進(jìn)行,實(shí)時(shí)監(jiān)聽對(duì)應(yīng)端口的查詢?nèi)蝿?wù),并進(jìn)行查詢,具體的執(zhí)行邏輯參看下圖


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容