MAPREDUCE服务 MRS-导入导出Hive数据库:操作步骤

时间:2024-06-12 19:16:49

操作步骤

  1. 以Hive客户端安装用户登录源端集群安装客户端的节点。
  2. 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。

    cd /opt/client

  3. 执行以下命令配置环境变量。

    source bigdata_env

  4. 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。

    kinit Hive业务用户

  5. 执行以下命令登录Hive客户端。

    beeline

  6. 执行以下命令创建数据库“dump_db”。

    create database dump_db;

  7. 执行以下命令切换到“dump_db”数据库。

    use dump_db;

  8. 执行以下命令在“dump_db”中创建表“test”。

    create table test(id int);

  9. 执行以下命令向表“test”中插入数据。

    insert into test values(123);

  10. 执行以下命令将数据库“dump_db”设置为复制策略的源。

    alter database dump_db set dbproperties ('repl.source.for'='replpolicy1');

    • 执行alter命令修改数据库属性时,用户需要对该数据库拥有对应权限。权限设置方式如下:
      • 集群未启用Ranger鉴权,需登录FusionInsight Manager授予该用户所属角色管理员权限,详细操作请参考创建Hive角色章节。
      • 集群启用了Ranger鉴权,需参考添加Hive的Ranger访问权限策略章节授予用户对应数据库的Repl Dump/Load操作权限。
    • 删除设置了复制策略源的数据库时,需要先将该数据库的复制策略源设置为空,再对数据库执行删除操作,否则无法删除。将数据库复制策略源设置为空的命令如下:

      alter database dump_db set dbproperties ('repl.source.for'='');

  11. 执行以下命令将“dump_db”导出到目标集群的“/user/hive/test”目录下。

    repl dump dump_db with ('hive.repl.rootdir'='hdfs://haclusterX/user/hive/test');

    • haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”。
    • 指定导出目录时需要确保当前用户对该目录拥有读写权限。

  12. 以Hive客户端安装用户登录目标集群安装客户端的节点,并执行2-5
  13. 执行以下命令将“/user/hive/test”目录下的“dump_db”数据库的数据导入到“load_db”数据库中。

    repl load load_db from '/user/hive/repl';

    通过repl load导入数据库,指定数据库名称时需要注意以下情况:

    • 指定的数据库不存在,在导入的过程中会创建对应的数据库;
    • 指定的数据库已存在,且该数据库的“hive.repl.ckpt.key”属性值与导入的路径一致,则跳过导入操作。
    • 指定的数据库已存在,但是该数据库下不存在任何表和functions,导入的过程中只将源数据库下的表导入到当前数据库中;如果该数据库下存在表或functions会导入失败。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24742.html