Hive元数据配置到MySql

为何要将Hive元数据配置到MySql中?

hive使用自带的derby数据库存储元数据。

使用derby存储元数据有以下弊端:

① 每次进入hive都必须在同一个目录下,否则之前操作的元数据就访问不到 ;

② 同一份derby中的元数据不允许多个会话实例访问。

为了方便使用,我们将元数据改存在mysql中,其优点:支持多个会话连接,并且可以独立部署。

如何将Hive元数据配置到MySql中?

MySql安装

首先切换至root用户。

1、安装unzip工具:sudo yum -y install unzip

2、解压mysql的压缩包:unzip mysql-libs.zip

3、检查系统自带的mysql,如果有自带mysql,应当卸载:

  ① rpm -qa|grep -i mysql ,得到包名

  ② rpm -e --nodeps 包名 ,卸载

    如果是yum方式安装的mysql:yum remove mysql-community-server-5.6.36-2.el7.x86_64

    卸载之后删除 /var/mysql/lib目录:rm -rf /var/mysql/lib

  ③ rpm -qa | grep -i mariadb ,得到mariadb-libs-5.5.60-1.el7_5.x86_64

    rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 ,卸载

  ④ 卸载mysql的依赖

    yum remove mysql-libs

    yum remove mysql-server

    yum remove perl-DBD-MySQL

    yum remove mysql

4、按装mysql的服务端和客户端:

  rpm -ivh ./MySQL-server-5.6.24-1.el6.x86_64.rpm

  rpm -ivh ./MySQL-client-5.6.24-1.el6.x86_64.rpm

5、启动mysql服务:service mysql start

  查看mysql服务状态:service mysql status

6、登录mysql:

  查看mysql初始密码: cat /root/.mysql_secret得到初始密码:如:OEXaQuS8IWkG19Xs,如果cat /root/.mysql_secret发现文件不存在,转到第7步

  登录mysql:mysql -uroot -pOEXaQuS8IWkG19Xs

  修改密码:SET PASSWORD=PASSWORD('000000')  ,退出登录

7、初始化mysql重置密码:

  ① 停止mysql服务:service mysql stop

  ② 联网安装:yum -y install autoconf

  ③ 执行:
    /usr/bin/mysql_install_db --user=mysql
    mysqld_safe --skip-grant-tables&
  ④ 重启mysql服务:service mysql start
    进入mysql:mysql
  ⑤ 设置密码:update mysql.user set password=PASSWORD('000000') where User='root';
  ⑥ 刷新退出即可:flush privileges;
  ⑦ 登录mysql:mysql -uroot -p000000

将hive的元数据配置到MySql中

1、登录mysql:mysql -uroot -p000000

2、切换到mysql库下:use mysql;

3、查看user表的字段:select User,Host,Password from user;

4、修改user表,把Host字段内容修改为%:
  mysql>update user set host='%' where host='localhost';

5、删除root用户的其他Host:
  mysql>delete from user where Host='hadoop101';
  mysql>delete from user where Host='127.0.0.1';
  mysql>delete from user where Host='::1';

6、刷新退出:flush privileges;

7、在mysql中创建一个metastore的库用来存放hive的元数据,并将字符集类型设为latin1:

  create database metastore character set "latin1";

配置完mysql,切换到普通用户,修改hive配置。

8、修改hive的配置文件,让hive将元数据写入mysql的metastore库中

在hive-1.2.1/conf 修改hive-site.xml文件,内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://hadoop101:3306/metastore?createDatabaseIfNotExist=true</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>000000</value>
  <description>password to use against metastore database</description>
</property>
</configuration>

9、解压mysql-connector-java-5.1.27.tar.gz :

  tar -zxvf mysql-connector-java-5.1.27.tar.gz

 将目录下的mysql-connector-java-5.1.27-bin.jar拷贝到hive的lib下:

  cp ./mysql-connector-java-5.1.27-bin.jar /opt/module/hive-1.2.1/lib/

10、启动hive,检查启动目录下有没有再次生产derby相关的文件,多窗口访问是否报错。

 

posted @ 2022-05-03 16:04  szynZM  阅读(664)  评论(0)    收藏  举报