1. 程式人生 > >【原創】大叔經驗分享(23)hive metastore的幾種部署方式

【原創】大叔經驗分享(23)hive metastore的幾種部署方式

tps rac driver 所有 ava onf script 1.2 uri

hive及其他組件(比如spark、impala等)都會依賴hive metastore,依賴的配置文件位於hive-site.xml

hive metastore重要配置

hive.metastore.warehouse.dir
hive2及之前版本默認為/user/hive/warehouse/,創建數據庫或表時會在該目錄下創建對應的目錄

javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPassword
默認為derby

hive.metastore.uris
默認為空

hive metastore部署方式

1 全部默認配置

使用的是內置的derby庫,hdfs目錄為/user/hive/warehouse/

2 只配置javax.jdo.option.*相關配置

使用配置的數據庫(比如mysql),hdfs目錄為/user/hive/warehouse/

3 只配置hive.metastore.uris

所有元數據操作都通過遠程metastore交互(註意此時需要啟動一個獨立的hive metastore進程),hdfs目錄為/user/hive/warehouse/

ps:註意1和2不需要任何的hive進程,但3種方式都需要依賴hdfs

總結

綜上,在只需要使用impala或spark而不需要hive的時候,其實只需要一個遠程數據庫(比如mysql)即可,不需要單獨啟動hive metastore進程;

如何初始化一個hive元數據庫?

$ ls $HIVE_HOME/scripts/metastore/upgrade
derby mssql mysql oracle postgres

在hive目錄下有各種數據庫各個版本的初始化腳本,比如impala依賴hive1.2,只需要安裝hive1.2的元數據庫即可,對應的sql文件為:

$HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-1.2.0.mysql.sql

其中會依賴

$HIVE_HOME/scripts/metastore/upgrade/mysql/hive-txn-schema-0.13.0.mysql.sql

初始化完成之後直接在/etc/impala/conf/hive-site.xml中配置javax.jdo.option.*指向mysql庫即可;

impala的最小安裝為:hdfs + mysql(hive元數據庫) + impala

spark的最小安裝為:hdfs + mysql(hive元數據庫) + spark

參考:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration

【原創】大叔經驗分享(23)hive metastore的幾種部署方式