hive及其餘組件(好比spark、impala等)都會依賴hive metastore,依賴的配置文件位於hive-site.xmljava
hive.metastore.warehouse.dir
hive2及以前版本默認爲/user/hive/warehouse/,建立數據庫或表時會在該目錄下建立對應的目錄mysqljavax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPassword
默認爲derbysqlhive.metastore.uris
默認爲空數據庫
使用的是內置的derby庫,hdfs目錄爲/user/hive/warehouse/apache
使用配置的數據庫(好比mysql),hdfs目錄爲/user/hive/warehouse/oracle
全部元數據操做都經過遠程metastore交互(注意此時須要啓動一個獨立的hive metastore進程),hdfs目錄爲/user/hive/warehouse/post
ps:注意1和2不須要任何的hive進程,但3種方式都須要依賴hdfsspa
綜上,在只須要使用impala或spark而不須要hive的時候,其實只須要一個遠程數據庫(好比mysql)便可,不須要單獨啓動hive metastore進程;xml
如何初始化一個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