本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前面在使用内嵌模式搭建Hive的时候,默认使用的是derby来存储元数据。这里我们使用本地模式搭建时,尝试使用mysql来进行数据存储。
- 安装mysql
在之前已经搭建了三台节点的hadoop集群(blog.csdn.net/QYHuiiQ/art…),这里我们将mysql安装在hadoop03节点上。
- 配置hive
参考搭建内嵌模式时的操作(内嵌模式搭建Hive_QYHuiiQ的博客-CSDN博客):
解压并配置环境变量,配置hive-env.sh,配置hive-site.xml。
这里我们就直接使用内嵌模式时在hadoop02节点上搭建的hive。
修改完上述的配置之后,继续修改hive-site.xml中mysql相关的配置:
[root@hadoop02 conf]# pwd
/usr/local/wyh/apache-hive-2.3.9-bin/conf
[root@hadoop02 conf]# vi hive-site.xml
将javax.jdo.option.ConnectionURL的值修改为mysql的连接信息:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop03:3306/hive?createDatabaseIfNotExist=true</value>//这里的hive是数据库名称,如果不存在的话会自动创建
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
将javax.jdo.option.ConnectionDriverName的值修改为mysql的驱动:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
将javax.jdo.option.ConnectionUserName的值修改为mysql的登陆用户名:
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
将javax.jdo.option.ConnectionPassword的值修改为mysql上述用户名对应的密码:
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
- 在hadoop02上安装mysql connector
由于在hadoop02上的hive要去连接hadoop03上的mysql,需要在hadoop02上安装mysql驱动,这个类似于我们平时写的java程序同样需要connector jar包。
下载connector jar:
MySQL :: Download MySQL Connector/J (Archived Versions)
下载之后得到的是zip,需要先解压缩之后才可以得到jar:
将jar放在$HIVE_HOME/lib目录下:
[root@hadoop02 wyh]# cp mysql-connector-java-5.1.28-bin.jar ./apache-hive-2.3.9-bin/lib/
- 初始化数据库
[root@hadoop02 apache-hive-2.3.9-bin]# schematool -initSchema -dbType mysql
- 验证数据库是否创建成功
在hadoop03上登陆mysql服务查看:
mysql> show databases;
可以看到它已经帮我们创建了名称为hive的数据库:
以上就是本地模式搭建Hive的过程。