Hadoop數據遷移


一、需求說明

把A集羣上的數據遷移到B集羣上。
需要預先知道A集羣主節點的ip地址,和B集羣主節點的ip地址。


二、找需要遷移的數據

在這裏插入圖片描述
然後點擊可以查看文件目錄樹,這裏以進入 /user/hive/warehouse/transpass_std.db/s_phone_inter_trip/source=cm/start_city=440300/year=2019/month=03/day=12 文件夾爲例
在這裏插入圖片描述
根據實際遷移需求,找到你所想要遷移的數據,然後查看另一臺集羣上是否已存在。不存在則記錄要遷移數據的文件目錄,已存在則不需要遷移。
在這裏插入圖片描述


三、遷移腳本

#!/bin/bash

hdfspath=$1
hadoop fs -mkdir -p $1
hadoop distcp -update -skipcrccheck hdfs://A節點IP:8020$1 hdfs://B節點IP:8020$1

代碼說明
在這裏插入圖片描述

將腳本文件保存,這裏保存的文件名爲hdfs-cp.sh

在腳本文件目錄下運行shell腳本,sh hdfs-cp.sh +傳輸文件路徑,這裏傳輸/user/hive/warehouse/transpass_std.db/s_phone_inter_trip/source=cm/start_city=440300/year=2019/month=03爲例

[hdfs@bigdata-1 ~]$ sh hdfs-cp.sh /user/hive/warehouse/transpass_std.db/s_phone_inter_trip/source=cm/start_city=440300/year=2019/month=03

運行時間根據數據大小而定,出現job completed successfully 表示傳輸成功
在這裏插入圖片描述


五、注意事項

文件太大可能傳輸失敗,這時需要分批傳輸,不要一次性傳太大
官方數據遷移教程:http://hadoop.apache.org/docs/r1.0.4/cn/distcp.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章