安装并使用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&amp;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

Hive安装配置

CentOS7搭建Hive1.2.2+mysql5.7

mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程

Centos7.3 安装Mysql5.7并修改初始密码

二进制安装MySQL5.7并搭建主从