• hive元数据的mysql迁移和升级的流程方案


    hive元数据的mysql迁移和升级的流程方案

    本方案包含 hive-1.2 集群,新建的 hive-3.1集群(上面存储的表和库信息可以删除,升级之后和 hive-1.2 公用一个元数据库)。hive-1.2 集群使用的 mysql 数据库迁移到新的地址。升级 hive 1.2 元数据库到 3.1。升级之后,hive-1.2 集群和 hive-3.1 集群共同使用同一个 mysql。一个集群可以看到并操作另一个集群存储在 BOS 上的数据。

    以下是操作步骤:

    1. 停止hive-1.2 集群 的 hive-metastore 和 hive-server2

    停止方法:使用命令systemctl stop hive-metastore 或者通过 ambari 操作。

    systemctl stop hive-metastore
    systemctl stop hive-server2
    
    • 1
    • 2

    停止 hive metastore 后,集群所有的访问 hive 的任务都会报错。

    2. 备份 mysql 数据库

    mysqldump -h ${MYSQL_HOST} -uhive '-p${MYSQL_PASSWD}' hive > hive-1.2.bak
    
    • 1

    3. 恢复 mysql数据库到新的地址

    登录新的数据库

    mysql -h ${NEW_MYSQL_HOST} -uhive '-p${MYSQL_PASSWD}'
    
    • 1

    创建目标数据库

    create datbase hive;
    
    • 1

    导入数据到新的数据库。

    mysql -h ${NEW_MYSQL_HOST} -uhive '-p${MYSQL_PASSWD}' hive < hive-1.2.bak
    
    • 1

    ${NEW_MYSQL_HOST} 是数据库新的地址。

    4. hive-3.1 集群 停止所有的 hive-metastore 和 hive-server2

    systemctl stop hive-metastore
    systemctl stop hive-server2
    
    • 1
    • 2

    5. hive-3.1 集群 修改 metastore 服务器所在的 hive-site.xml

    按需要修改以下配置。

        <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
        </property>
    
        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>${MYSQL_PASSWD}</value>
        </property>
    
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://${NEW_MYSQL_HOST}/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>hive</value>
        </property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    6. 升级 metastore 到 hive-3.1

    在 hive-3.1 集群 metastore 所在服务器,使用 hive 用户下执行以下操作, ${NEW_MYSQL_HOST}是新 mysql 数据库所在的服务器 IP 地址。

    cd /opt/bmr/hive/scripts/metastore/upgrade/mysql
    
    mysql -uhive '-p${MYSQL_PASSWD}' -h ${NEW_MYSQL_HOST} hive
    source upgrade-1.2.0-to-2.0.0.mysql.sql;
    source upgrade-2.0.0-to-2.1.0.mysql.sql;
    source upgrade-2.1.0-to-2.2.0.mysql.sql;
    source upgrade-2.2.0-to-2.3.0.mysql.sql;
    source upgrade-2.3.0-to-3.0.0.mysql.sql;
    source upgrade-3.0.0-to-3.1.0.mysql.sql;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    7. hive-1.2 集群做以下操作

    7.1 修改所有 metastore 和 hive-server 服务器的 hive-site.xml

       <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
        </property>
    
        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>${MYSQL_PASSWD}</value>
        </property>
    
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://${NEW_MYSQL_HOST}/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>hive</value>
        </property>
        <property>
          <name>hive.metastore.schema.verification</name>
          <value>false</value>
        <description>
          Enforce metastore schema version consistency.
          True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
                schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
                proper metastore schema migration. (Default)
          False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
        </description>
      </property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    7.2 hive-1.2 启动所有 hive-metastore 和 hive-server2

    systemctl start hive-metastore
    systemctl start hive-server2
    
    • 1
    • 2

    hive-1.2 集群恢复正常。

    8. hive-3.1 集群启动所有 hive-metastore 和 hive-server2

    systemctl start hive-metastore
    systemctl start hive-server2
    
    • 1
    • 2

    hive-3.1 集群恢复正常。

    集群不能使用时间

    从停止 hive-metastore 起,到 hive metastore 和 hive server 启动之间,所有的 Hive 任务都不能运行。

    升级影响

    升级之后,只能在 hive-3.1 集群创建 hive 数据库。

  • 相关阅读:
    求SM16106SC如何连接驱动四位数码管
    ts工具类
    IUV-5G全网仿真软件实训手册-手工整理
    java特种兵读书笔记(5-1)——并发之基础介绍
    深入浅出落地应用分析:AI数字人「微软小冰」
    ChatGLM-6B介绍
    软件测试 - postman高级使用
    在 React项目中应用TypeScript
    使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
    安卓蓝牙耳机哪个牌子好?安卓手机蓝牙耳机推荐
  • 原文地址:https://blog.csdn.net/houzhizhen/article/details/125497330