說明:網上眾多千篇一律的版本都說要用到乙個add_table.rb的檔案,可是我的版本根本hbase下就不存在這個檔案。
1.把資料表test從hbase下拷出(hadoop dfs -get /hbase/test ./)
2.檔案放到新集群的系統上。
3.檔案拷入新的hadoop集群hbase下(hadoop dfs -put test /hbase/test)
4.到hbase shell下list,可以看到test表已經存在,但是你scan的時候出現錯誤:
tabletest
1 row(s) in 0.0220 seconds
hbase(main):062:0> scan 'test'
row column+cell
error: unknown table test!
錯誤很容易理解:你只是把錶放進記憶體,但是hbase並不清楚他的結構,也不知道有資料放進去,根據經驗,這需要執行一些東西來讓hbase與這些資料聯絡
5.先修復.meta.表:
hbase hbck -fixmeta這樣scan'.meta.'就能發現裡面有test的資訊,在執行scan,檢視。
(網上很多版本說通過乙個add_table.rb來實現,但是我的hbase下沒有這個,所以嘗試其他方式。)
6.如果依然失敗:
hbase hbck -fixassignments(重新分割槽)再執行test應該沒有問題了。
Hbase資料遷移
1.將hbase表資料匯出到hdfs hbase org.apache.hadoop.hbase.mapreduce.driver export tablename data export tablename 2.將hdfs資料獲取到本地 hadoop fs get data export tabl...
Hbase 資料遷移
可以使用 hadoop distcp 命令遷移,目標集群不需要建立表結構 將資料遷移到對應的表目錄下 hadoop distcp hdfs master1 8020 hbase data default tablename hdfs master2 8020 hbase data default t...
hbase資料遷移方式
之前要hbase資料遷移,我使用export import方式,感覺很棒,鏈結如下 後來發現還有其他兩種方式,so就全部整理下吧。copytable方式 bin hbase org.apache.hadoop.hbase.mapreduce.copytable peer.adr zookeeper1...