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