metastore是hive元数据的集中存放地,
Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
Hive将元数据存储在数据库中(metastore),目前只支持 mysql、derby。
metastore默认使用内嵌的derby数据库作为存储引擎,但是我们一般选择使用mysql作为meta的存储位置。
Derby引擎的缺点:一次只能打开一个会话工作中,这样就导致工作效率很低。
mysql的优点:MySQL作为外置存储引擎,多用户同时访问,而且使用广泛,免费
如果使用mysql作为meta的存储位置,那么我们需要在hive-site.xml中进行相应的配置,而且在配置时也有选择,一种是本地mysql存储,一种是远程mysql存储,配置代码如下:
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist
=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root