Hive及HBase數據遷移

1、 Hive數據遷移

  場景:兩個Hadoop平臺集羣之間Hive表遷移。apache

  基本思路:Hive表元數據和文件數據export到HDFS文件,經過Distcp將HDFS遷移到另外一個集羣的HDFS文件,再經過import在新Hive中建表;tcp

  1.Hive數據導出

    此步驟在原平臺執行將Hive表元數據和文件數據export到平臺HDFS文件oop

    1) 得到hive表的元數據信息blog

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

      ret中存放hive全部表的表名。table

    2) 導出hive表元數據和hive管理hdfs數據import

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

      執行此命令後能夠看到hdfs輸出目錄下有元數據和文件數據meta

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

      

  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表遷移完成。

2、 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表在新集羣建好。

相關文章
相關標籤/搜索