spark連接默認hive數據庫


在配置和查看配置之前先弄清楚兩個概念

Hive on Spark:hive默認在mr上跑,可改成在spark內存上跑

Spark on hive:不管如何運行spark sql,默認讀取的hive數據庫,其實spark不是直接讀取hive數據庫,而是讀取hive元數據和hdfs,那就是要配置hive的metastore。

Hive 的 metastore 安裝方式共有三種

1.內嵌模式,特點是:hive服務和metastore服務運行在同一個進程中,derby服務也運行在該進程中。

2.本地模式,特點是:hive服務和metastore服務運行在同一個進程中,mysql是單獨的進程,可以在同一台機器上,也可以在遠程機器上。
該模式只需將hive-site.xml中的ConnectionURL指向mysql,並配置好驅動名、數據庫連接賬號即可:

需要將 MySQL 的驅動 jar 包拷貝到 $HIVE_HOME/lib目錄下, 並啟動 MySQL 服務

hive-site.xml配置如下


 

 

 




3.遠程模式,特點是:hive服務和metastore在不同的進程內,可能是不同的機器。該模式需要將hive.metastore.local設置為false,並將hive.metastore.uris設置為metastore服務器URI,如有多個metastore服務器,URI之間用逗號分隔。metastore服務器URI的格式為thrift://hostort

遠程模式與本地模式的區分,就是hive服務和metastore服務是否在同一進程,即使在同一台機器也可配置遠程模式。

Metastore啟動命令

hive --service metastore -p <port_num>

如果不加端口默認啟動:hive --service metastore,則默認監聽9083

IP為服務所在機器

 

 

 

看到thrift可能有些不明白,這就要涉及hiveserver2

 

 

 

 

 

從圖中看出 hiveserver是hive與client端的交換終端,client通過hiveserver構建查詢語句,訪問hadoop,並把數據通過hiveserver返回到client端,hiveserver的核心是基於Thrift,Thrift負責hive的查詢服務,Thtift是構建跨平台的rpc框架,主要由四層組成:server,Transport,Protocol和處理器。

 

 

 




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM