跨Hadoop平臺Hive表export和import遷移
阿新 • • 發佈:2019-01-09
場景:兩個Hadoop平臺叢集之間Hive表遷移。
思路:Hive表元資料和檔案資料export到HDFS檔案,通過Distcp將HDFS遷移到另一個叢集的HDFS檔案,再通過import在新Hive中建表;
1、原平臺:Hive表元資料和檔案資料到export到平臺HDFS檔案
2)可以看到hdfs輸出目錄下有元資料和檔案資料;
可看到檔案路徑是:hdfs://nameservice-ha/user/hive/warehouse/conf_adsl_app
在新平臺下不存在/user/hive/warehouse/conf_adsl_app目錄,import時會自動生成相應目錄。
2、用distcp從原平臺將/tmp/hive-export/conf_adsl_app/下資料遷移到新平臺。
注意下面用的distcp語法涉及到從非安全叢集遷移到安全叢集(kerberos)的操作。
在新平臺執行命令:
3、新平臺:從HDFS檔案import到Hive生成新表
1)hive下執行命令:
LOCATION
'hdfs://c9/apps/hive/warehouse/cwh.db/new_conf_adsl_app'
3)檢視location目錄下hive表對應的檔案
思路:Hive表元資料和檔案資料export到HDFS檔案,通過Distcp將HDFS遷移到另一個叢集的HDFS檔案,再通過import在新Hive中建表;
1、原平臺:Hive表元資料和檔案資料到export到平臺HDFS檔案
1)hive下執行如下命令:
#export table conf_adsl_app to '/tmp/hive-export/conf_adsl_app';
conf_adsl_app表的外部儲存路徑:hdfs://nameservice-ha/user/hive/warehouse/conf_adsl_app2)可以看到hdfs輸出目錄下有元資料和檔案資料;
3)3)檢視hadoop fs -cat /tmp/hive-export/conf_adsl_app/_metadata元檔案hadoop fs -ls /tmp/hive-export/conf_adsl_app/ Found 2 items -rwxr-xr-x 3 hdfs supergroup 1309 2017-03-16 08:03 /tmp/hive-export/conf_adsl_app/_metadata drwxr-xr-x - hdfs supergroup 0 2017-03-16 08:03 /tmp/hive-export/conf_adsl_app/data
可看到檔案路徑是:hdfs://nameservice-ha/user/hive/warehouse/conf_adsl_app
在新平臺下不存在/user/hive/warehouse/conf_adsl_app目錄,import時會自動生成相應目錄。
2、用distcp從原平臺將/tmp/hive-export/conf_adsl_app/下資料遷移到新平臺。
注意下面用的distcp語法涉及到從非安全叢集遷移到安全叢集(kerberos)的操作。
在新平臺執行命令:
hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true -D dfs.checksum.type=CRC32 webhdfs://namenode ip:50070/tmp/hive-export/conf_adsl_app/ /flume/his/
可以看到新平臺/flume/his目錄下有檔案:
hadoop fs -ls /flume/his/conf_adsl_app/
Found 2 items
-rw-r--r-- 3 etl etl 1309 2017-03-16 08:49 /flume/his/conf_adsl_app/_metadata
drwxr-xr-x - etl etl 0 2017-03-16 08:49 /flume/his/conf_adsl_app/data
3、新平臺:從HDFS檔案import到Hive生成新表
1)hive下執行命令:
2)可以看到hive上新生成了new_conf_adsl_app表#import table new_conf_adsl_app from '/flume/his/conf_adsl_app';
LOCATION
'hdfs://c9/apps/hive/warehouse/cwh.db/new_conf_adsl_app'
3)檢視location目錄下hive表對應的檔案
hadoop fs -ls /apps/hive/warehouse/cwh.db/new_conf_adsl_app
Found 1 items
-rwxrwxrwx 3 etl hdfs 18227 2017-03-16 08:51 /apps/hive/warehouse/cwh.db/new_conf_adsl_app/adsl_apps_20130829.txt
自此跨平臺Hive表遷移完成。