zoukankan      html  css  js  c++  java
  • 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表在新集群建好。

     

  • 相关阅读:
    uva 11178 Morley's Theorem(计算几何-点和直线)
    .net web 开发平台- 表单设计器 一(web版)
    Oracle EBS Web ADI 中的术语
    Android学习笔记(十七)——使用意图调用内置应用程序
    PreferenceFragment 使用 小结
    ccMacros
    海量数据查询优化
    c++容器类
    Codeforce 424C Magic Formulas 找规律
    android播放html5视频,仅仅有声音没有图像视频
  • 原文地址:https://www.cnblogs.com/kongcong/p/8807316.html
Copyright © 2011-2022 走看看