Hive入门教程<4> | hive在分布式集群中解决hive元数据存储到mysql问题

3 篇文章 0 订阅
3 篇文章 0 订阅

在centos7中安装MySQL-5.6办法

hive默认的元数据metastore是存储在自带的derby数据库中,在这里我们安装MySQL来存储Hive的Metastore

2021/11//05 早上

一、遇见的问题

为了解决hive元数据存储问题安装MySQL-5.6,但是发现安装MySQL-server时无法安装成功的问题。
体现在两点:

  1. var/lib/目录下没有mysql目录;
  2. 在root/目录下没有.mysql_secret文件查看mysql的初始密码

通过执行命令发现只安装成功MySQL-client
rpm -qa | grep MySQL
检查是否安装了MySQL
经过查询资料知晓问题原因:
因为安装centos7的时候系统默认安装了*mariadb-libs*

rpm -qa | grep -i mariadb-libs
在这里插入图片描述

解决办法

  1. 删除mariadb-libs和MySQL相关的文件

    rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
    

    如果是安装过MySQL的需要将mysql删除干净
    rpm -e --nodeps mysql*/MySQL*后,还需要删除 /var/lib/mysql目录,然后在进行重装

    二、安装MySQL

    1、准备工作

    2、开始安装

    1. 将下载的压缩包上传到虚拟机
    2. 解压
      • yum -y install unzip
      • unzip mysql-libs.zip
      • 进入mysql-libs目录下: cd mysql-libs
    3. 安装MySQL-serverMySQL-client
      rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
      rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
    4. 安装时可能出现如下问题,如果没有直接跳过这一步骤,进行下一步,如果出现执行下面操作在继续进行安装MySQL
      安装MySQL-server时缺少autoconf依赖
      此时的原因是确实依赖包autoconf,使用yum进行安装
      yum -y install autoconf
      安装autoconf
    5. 正常安装后
      在/root/目录下有一个文件.mysql_secret,这个文件中是mysql最初的随机密码,我们要使用这个密码登录mysql
      在这里插入图片描述
      查看.mysql_secret文件获取随机密码
      在这里插入图片描述
      此时可以通过此密码登录mysql。但是进去后只能修改登录密码。
    6. 启动mysql服务
      service mysql start
    7. 登录mysql
      mysql -uroot -p随机密码
    8. 修改密码
      set PASSWORD=PASSWORD('123456');
      修改密码后退出,
      重新登陆才能操作mysql数据库
    9. 配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
      • 进入mysql
        mysql -uroot --p123456
      • 显示数据库
        show databases;
      • 使用mysql数据库
        use mysql;
      • 展示mysql数据库中的所有表
        show tables;
      • 展示user表的结构
        select User, Host, Password from user;
      • 删除root用户的其他host
        delete from user where Host='hadoop102';
        delete from user where Host='127.0.0.1';
        delete from user where Host='::1';
        
      • 修改user表,把Host表内容修改为%
        update user set host='%' where host='localhost';
      • 刷新
        flush privileges;
      • 退出
        exit;

三、创建数据库hive

  1. 使用SQLYog连接虚拟机中mysql
    在这里插入图片描述
  2. 创建数据库
    字符集选择latin1
    在这里插入图片描述

四、将hive元数据存储到mysql

  1. 解压下面压缩包,在目录中获取到mysql驱动
    在这里插入图片描述
    在这里插入图片描述
  2. 将mysql驱动拷贝到/opt/module/hive/lib/目录下
    cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
  3. 根据官方文档配置参数,拷贝数据到hive-site.xml文件中
    https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://hive:3306/hive?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>123456</value>
	  <description>password to use against metastore database</description>
	</property>
</configuration>
  1. 配置完毕后,启动hadoop集群,在启动hive操作,此时的数据将会存储到mysql中。(如果不行可以重启虚拟机再试一次)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似懂非dong

你的肯定使我加倍努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值