【原創】大叔經驗分享(23)hive metastore的幾種部署方式
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
默認為derbyhive.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的幾種部署方式