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