前面在使用内嵌模式搭建Hive的时候,默认使用的是derby来存储元数据。这里我们使用本地模式搭建时,尝试使用mysql来进行数据存储。
参考:https://blog.csdn.net/QYHuiiQ/article/details/124158197
在之前已经搭建了三台节点的hadoop集群(https://blog.csdn.net/QYHuiiQ/article/details/123055389?spm=1001.2014.3001.5501),这里我们将mysql安装在hadoop03节点上。
参考搭建内嵌模式时的操作(内嵌模式搭建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
jdbc:mysql://hadoop03:3306/hive?createDatabaseIfNotExist=true //这里的hive是数据库名称,如果不存在的话会自动创建
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.
将
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
将
javax.jdo.option.ConnectionUserName
root
Username to use against metastore database
将
javax.jdo.option.ConnectionPassword
123456
password to use against metastore database
由于在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的过程。