• Hive及HBase数据迁移


    一、 Hive数据迁移

      场景:两个Hadoop平台集群之间Hive表迁移。

      基本思路:Hive表元数据和文件数据export到HDFS文件,通过Distcp将HDFS迁移到另一个集群的HDFS文件,再通过import在新Hive中建表;

      1.Hive数据导出

        此步骤在原平台执行将Hive表元数据和文件数据export到平台HDFS文件

        1) 获得hive表的元数据信息

          ret=$(hive -e 'show tables;' | grep -v _es | grep -v _hb | grep -v importinfo)

          ret中存放hive所有表的表名。

        2) 导出hive表元数据和hive管理hdfs数据

          hive -e "export table $tem to '/tmp/hive-export/$tem';"

          执行此命令后可以看到hdfs输出目录下有元数据和文件数据

          查看hadoop fs -cat /tmp/hive-export/[table_name]/_metadata元文件

          

      2. Hive数据迁移

        用distcp从原平台将/tmp/hive-export/下数据迁移到新平台。

          hadoop distcp hdfs://10.0.11.205:8020/tmp/hive-export hdfs://10.0.11.91:8020/tmp

        执行成功后新平台tmp目录下会多出拷贝的数据文件。

      3.新集群数据导入

        1) 获得hive表名

          Hive表名为/tmp/hive-export/下的路径名

          使用hadoop fs -ls获得所有的表名

        2) 执行导入命令

          hive -e "import table [table_name] from '/tmp/hive-export/[table_name]’;"

          可以看到hive上新生成了表,自此跨平台Hive表迁移完成。

    二、 Hbase数据迁移

      1.Hbase数据导出

        在原平台上使用org.apache.hadoop.hbase.mapreduce.Export命令导出hbase数据到原平台的HDFS上

          hbase org.apache.hadoop.hbase.mapreduce.Export [table_name] [hdfs_directory]

      2.Hbase数据迁移

        此步骤将导出的数据文件拷贝到新集群

          hadoop distcp hdfs://10.0.11.205:8020[hdfs_directory] hdfs://10.0.11.91:8020/tmp

      3.Hbase数据导入

        hbase org.apache.hadoop.hbase.mapreduce.Import [table_name] [hdfs_directory]

        注:1)使用全路径,不能使用相对路径

            2)在执行import之前,需要将hbase表在新集群建好。

     

  • 相关阅读:
    Kuangbin带你飞 专题二十 斜率DP
    牛客每日一题3月
    2020 SWJTU-ICPC Training Round #2(18年福建省赛)部分题解
    codeforces每日一题31-40
    SWJTU校队训练&Codeforces&Atcoder&&牛客三月补题
    Kuangbin带你飞-专题九连通图
    POJ 3667 Hotel(线段树区间合并)
    AtCoder Beginner Contest 157(题解)
    2.22专项测试复盘
    2.21专项测试复盘
  • 原文地址:https://www.cnblogs.com/kongcong/p/8807316.html
Copyright © 2020-2023  润新知