目錄: hdfs 命令操作本地 hbase Azure HDInsight HBase表數據導入本地 hbase hdfs命令操作本地hbase: 參見 HDP2.4安裝(五):集群及組件安裝 , 創建本地 hbase集群後,使用hadoop hdfs 命令在訪問 hbase 存儲數據時,數據在hd ...
目錄:
- hdfs 命令操作本地 hbase
- Azure HDInsight HBase表數據導入本地 hbase
hdfs命令操作本地hbase:
- 參見 HDP2.4安裝(五):集群及組件安裝 , 創建本地 hbase集群後,使用hadoop hdfs 命令在訪問 hbase 存儲數據時,數據在hdfs文件中的路徑依賴於 hbase-site.xml 配置中hbase.rootdir參數,預設如下圖:
- hdp2.4預設的目錄地址為: hdfs://mycluster/apps/hbase/data ,使用 hdfs 命令如下效果(絕對地址或相對地址),目錄太深,操作不方便,可修改配置
- 將目錄地址修改為:/hbase 表示hdfs主目錄的相對路徑,完整的路徑由 hdfs core-site.xml配置中 fs.defaultFS 參數決定,如下圖
- 修改完目錄參數後,重啟依賴於該參數的相關服務, 在 hdfs 中訪問hbase路徑如下:
- 註意: 修改 root.dir 參數後,原hbase資料庫中已經存在的數據並未移過來,需要手工將 /hbase/data/default 目錄 copy 至新的 hdfs 目錄下,再用 hbase hbck -repair 命令進行修複,詳細見下麵的介紹
Azure HDInsight HBase表數據導入本地 hbase:
- 不同hbase群集之間數據導入導出的方式有很多, 這節介紹效率最高的一種方法,
- 在HDinsight hbase集群上,通過 hdfs dfs -du -h /hbase/data/default 以如下圖大小為3+G的數據作為測試例子進行驗證
- 第一步使用 hdfs 命令將 hdinsight hbase 中要複製的表數據文件導出至本地,導出命令及文件如下圖:
- 命令: hdfs dfs -get /hbase/data/default/TrackLog c:/zhu
- 將下載到HDInsight本地的文件 copy 至本地 linux 機器的任一目錄,如:/zhu,通過然後通過 hdfs 命令 put 至 hdfs :
- 命令:hdfs dfs -put /zhu/TrackLog hdfs://mycluster/hbase/data/default , 如下圖:
- 此時,物理文件雖然存在,但hbase 的metadata表中並沒有註冊表的信息,通過如下的命令處理,切換到 hbase安裝目錄 bin 目錄下
- 命令:./hbase hbck -repair -ignorePreCheckPermission 執行成功後,如下圖:
- 進入hbase shell 查看結果,hbase 表已經成功創建
- 查詢表數據,如下圖則OK