安装并使用mysql5.7作为hive的metastore
Posted node2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装并使用mysql5.7作为hive的metastore相关的知识,希望对你有一定的参考价值。
前言
hive的metastore默认是使用derby来作为metastore,但是derby有一个缺点是不能支持多用户链接,虽然你可以通过切换目录来支持,但是不同目录的metastore会不一致,所以这里使用mysql来作为hive的metastore。
在linux上安装mysql数据库
1、下载最新的mysql数据库,这里使用的版本是5.7.13,这里是使用二进制rpm进行安装
mysql-community-client-5.7.13-1.el7.x86_64.rpm
mysql-community-common-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-5.7.13-1.el7.x86_64.rpm
mysql-community-server-5.7.13-1.el7.x86_64.rpm
mysql-connector-java-5.1.39.tar.gz #jdbc java驱动
2、上传到linux,并使用rpm命令安装,若出现库冲突,先把冲突的库删除,例如在rhel7上
rpm -e mariadb-libs-5.5.35-3.el7.x86_64 --nodeps #出现mariadb冲突
接下来安装mysql
rpm -ivh mysql-community-*;
或
rpm -ivh mysql-community-common-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm
3、查看是否安装成功
[root@localhost ~]# rpm -qa | grep mysql
mysql-community-server-5.7.13-1.el7.x86_64
mysql-community-common-5.7.13-1.el7.x86_64
mysql-community-client-5.7.13-1.el7.x86_64
mysql-community-libs-5.7.13-1.el7.x86_64
4、启动mysql服务,这里我的linux环境是rhel-server-7.0-x86_64
[root@localhost ~]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
5、初始化mysql的密码
a.编辑/etc/my.cnf配置文件,添加skip-grant-tables,取消密码验证
vi /etc/my.cnf
b.启动服务
service mysqld restart ;
c.命令行输入mysql进入命令行界面,修改密码
update user set authentication_string=PASSWORD('123') where User='root';
d.重新编辑/etc/my.cnf配置文件,去掉skip-grant-tables,登录需密码验证,并重启服务
e.登录进入mysql客户端
mysql -uroot -p123;
f.进入客户端之后,若使用切换数据库,例如use mysql出现
You must reset your password using ALTER USER statement before executing this statement
那是因为上面修改的密码相当于在mysql安装的时候的初始化的密码变成了我们修改的密码。所以在登录系统后mysql数据库要你修改原始密码
SET PASSWORD = PASSWORD('123');
g.退出mysql客户端,再重新登录,切换数据库
到此在linux上的mysql数据库安装成功,在这里为了允许远程客户端可以链到mysql数据库,需要修改下mysql数据库的登陆权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
配置mysql作为hive的metastore
1、进入到hive的配置文件目录
cd /home/cloud/hadoop/apache-hive-0.13.0-bin/conf
2、将hive-default.xml.template复制一份作为hive-site.xml
cp hive-default.xml.template hive-site.xml
hive默认是使用hive-default.xml.template作为配置文件,如果你想要自定义配置文件,需要自定义一个hive-site.xml
3、配置mysql的数据库链接,用户和密码
vi hive-site.xml;
配置信息如下:
<configuration>
<!-- WARNING!!! This file is provided for documentation purposes ONLY! -->
<!-- WARNING!!! Any changes you make to this file will be ignored by Hive. -->
<!-- WARNING!!! You must make your changes in hive-site.xml instead. -->
<!-- config mysql connection -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.137.101:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
<description>password to use against metastore database</description>
</property>
</configuration>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
<description>password to use against metastore database</description>
</property>
</configuration>
配置该文件之前,注意要把hive-site.xml一些老的配置删除,即先把configuration节点中的配置先清空,再配置数据库链接
4、需要把mysql的驱动放到/home/cloud/hadoop/apache-hive-0.13.0-bin/lib目录下
5、启动hive
发现在mysql的数据库中生成了一个hive的数据,到此说明配置成功
而创建的数据库信息和表信息可以分别在hive数据库中的DBS和TBLS表中查看
以上是关于安装并使用mysql5.7作为hive的metastore的主要内容,如果未能解决你的问题,请参考以下文章
centos7+hadoop3.2.2+mysql5.7.33安装hive3.1.2