W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
HBase批量加載過程包含兩個主要步驟。
批量加載的第一步是使用HFileOutputFormat2從MapReduce作業(yè)生成HBase數(shù)據(jù)文件(StoreFiles)。這種輸出格式以 HBase 的內(nèi)部存儲格式寫出數(shù)據(jù),以便以后可以非常高效地將其加載到群集中。
為了高效工作,必須對HFileOutputFormat2進行配置,使每個輸出 HFile 適合單個區(qū)域。為了做到這一點,輸出將被批量加載到HBase中的作業(yè)使用Hadoop的TotalOrderPartitioner類來將映射輸出分區(qū)到密鑰空間的不相交范圍中,對應于表中區(qū)域的鍵范圍。
HFileOutputFormat2包括一個方便函數(shù),configureIncrementalLoad(),它根據(jù)根據(jù)表格的當前區(qū)域邊界自動設置TotalOrderPartitioner。
在準備好數(shù)據(jù)導入之后,無論是通過使用具有“importtsv.bulk.output”選項的importtsv工具,還是使用HFileOutputFormat的其他MapReduce作業(yè),該completebulkload工具都可用于將數(shù)據(jù)導入到正在運行的集群中。這個命令行工具遍歷準備好的數(shù)據(jù)文件,并且每個文件確定文件所屬的區(qū)域。然后,它會聯(lián)系采用HFile的相應RegionServer,將其移動到其存儲目錄并使數(shù)據(jù)可供客戶端使用。
如果在批量加載準備過程中或者在準備和完成步驟之間區(qū)域邊界發(fā)生了變化,completebulkload公用程序會自動將數(shù)據(jù)文件分成與新邊界相對應的部分。這個過程并不是最佳效率,因此用戶應該注意盡量減少在準備批量加載和將其導入群集之間的延遲,特別是如果其他客戶端同時通過其他方式加載數(shù)據(jù)。
$ hadoop jar hbase-server-VERSION.jar completebulkload [-c /path/to/hbase/config/hbase-site.xml] /user/todd/myoutput mytable
該-c config-file選項可用于指定包含適當?shù)膆base參數(shù)的文件(例如,hbase-site.xml)(如果CLASSPATH中尚未提供此參數(shù))(此外,如果zookeeper不是由HBase管理,則CLASSPATH必須包含具有zookeeper配置文件的目錄)。
如果目標表在HBase中不存在,則此工具將自動創(chuàng)建表。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: