首页 > 大数据 > 数据分析 > 配置MySQL保存Hive元数据
Hive 默认使用自带(内嵌)的Derby 进行元数据存储 ,这个就意味着无法实现多个hive shell 并发连接Hive 。 如果需要支持多用户登录Hive ,必须配置一个独立的数据库。上一节我们已经将MySQL 数据库安装到Linux 上,本节我们将讲解一下配置MySQL 保存Hive 元数据的步骤。
(1 )修改hive-site.xml 文件
我们继续以MySQL 为例,首先需要在文件hive-site.xml 中配置MySQL 数据库的相关属性,如表2-3 所示。

在hive/conf 目录下有一个hive-default.xml.template 文件,里面都是默认的配置。打开这个文件可以发现一些说明文字,如图2-43 所示。

图2-43
意思是:如果要使配置生效,需要添加hive-site.xml 文件,可以直接把这个文件复制为hive-site.xml 再做配置。当然,为了简单起见,我们也可以直接使用2.4.1 小节中自己创建的hive-site.xml 。
打开hive-site.xml 文件,把里边内容全部删除,再添加以下配置:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://server201:3306/hive?useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>A1b2c3==</value> </property> </configuration>
这个配置需要我们在MySQL 中手动创建hive 数据库。以下配置相同,只是多了一个createDatabaseIfNotExist 设置,设置为true 时不需要在MySQL 中手工创建hive 数据库:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://server201:3306/hive?createDatabaseIfNotExist =true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>A1b2c3==</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/app/hive-3.1.3/warehouse</value> </property> </configuration>
(2 )将MySQL 的驱动放到/app/hive-3.1.3/lib 目录下 :
[root@server201 lib]$ ll | grep mysql -rw-r--r--. 1 hadoop hadoop 2480823 12月 26 2022 mysql-connector-j-8.0.32
(3 )登录hive cli
可以直接使用以下命令来初始化数据库:
[root@server80 bin]#./schematool -initSchema -dbType mysql
运行结果如图2-44 所示,表示成功初始化数据库。
图2-44
如果使用MySQL 客户端工具登录MySQL ,就会在MySQL 数据库hive 中发现如图2-45 所示的数据表(部分截图)。
图2-45
现在Hive 就能支持多个hive cli 客户端登录了。
本文节选自《 Hive 入门与大数据分析实战》,内容发布获得作者和出版社授权。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841117/viewspace-2956774/ ,如需转载,请注明出处,否则将追究法律责任。