這篇文章主要介紹了怎么將HBase的數(shù)據(jù)導入HDFS,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
福建網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,福建網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為福建成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的福建做網(wǎng)站的公司定做!實踐:將HBase數(shù)據(jù)導入HDFS
如果將要在MapReduce中使用的客戶數(shù)據(jù)與HDFS中的數(shù)據(jù)結(jié)合使用,那該怎么辦?可以編寫一個MapReduce作業(yè),該作業(yè)將HDFS數(shù)據(jù)集作為輸入,并直接從HBase的map或reduce代碼中提取數(shù)據(jù)。但在某些情況下,將HBase中的數(shù)據(jù)直接轉(zhuǎn)儲到HDFS可能更有用,特別是如果計劃在多個MapReduce作業(yè)中使用該數(shù)據(jù)并且HBase數(shù)據(jù)不可變或不經(jīng)常更改。
問題
將HBase數(shù)據(jù)導入HDFS
解決方案
HBase包含一個Export類,可用于將HBase數(shù)據(jù)以SequenceFile格式導入HDFS。此技術(shù)還介紹了可用于讀取導入的HBase數(shù)據(jù)代碼。
討論
在開始使用這種技術(shù)之前,需要啟動并運行HBase。
為了能夠從HBase導出數(shù)據(jù),首先需要將一些數(shù)據(jù)加載到HBase。加載器創(chuàng)建一個名為stocks_example的HBase表,其中包含一個列族的詳細信息,我們將HBase數(shù)據(jù)存儲為Avro二進制序列化數(shù)據(jù),此部分代碼就不列舉了。
運行加載程序并使用它將樣本數(shù)據(jù)加載到HBase中:
可以使用HBase shell查看負載結(jié)果。list命令(不帶任何參數(shù))將顯示HBase中的所有表,而帶有單個參數(shù)的scan命令將轉(zhuǎn)儲表的所有內(nèi)容:
有了這些數(shù)據(jù),我們就可以將其導出到HDFS了。HBase附帶了一個轉(zhuǎn)儲HBase表的org.apache.hadoop.hbase.mapreduce.Export類。以下代碼段顯示了使用Export類的示例。使用此命令,可以導出整個HBase表:
Export類還支持只導出單個列族,還可以壓縮輸出:
Export類以SequenceFile格式寫入HBase輸出,其中HBase行鍵使用org.apache.hadoop.hbase.io .ImmutableBytesWritable存儲在SequenceFile記錄鍵中,HBase值使用org.apache.hadoop.hbase.client.Result存儲在SequenceFile記錄值中.。
如果要在HDFS中處理導出的數(shù)據(jù),該怎么辦?以下列表顯示了如何讀取HBase SequenceFile并提取Avro記錄的示例。
代碼5.3 讀取HBase SequenceFile以提取Avro記錄
可以針對用于導出的HDFS目錄運行代碼并查看結(jié)果:
HBaseExportedStockReader類能夠讀取和轉(zhuǎn)儲HBase的Export類使用的SequenceFile內(nèi)容。
使用內(nèi)置的HBase Export類可以更輕松地將HBase中的數(shù)據(jù)導出到HDFS中。但是,如果不想將HBase數(shù)據(jù)寫入HDFS,而是想直接在MapReduce作業(yè)中處理它,該怎么辦?讓我們看看如何使用HBase作為MapReduce作業(yè)的數(shù)據(jù)源。
實踐:使用HBase作為MapReduce的數(shù)據(jù)源
內(nèi)置的HBase導出器使用SequenceFile輸出HBase數(shù)據(jù),除了Java之外的編程語言不支持它,并且不支持模式演變。它僅支持Hadoop文件系統(tǒng)作為數(shù)據(jù)接收器。如果想要更多地控制HBase數(shù)據(jù)提取,可能需要其他HBase工具。
問題
希望直接在MapReduce作業(yè)中對HBase進行操作,而無需將數(shù)據(jù)復制到HDFS的中間步驟。
解決方案
HBase有一個TableInputFormat類,可以在MapReduce作業(yè)中使用,直接從HBase中提取數(shù)據(jù)。
討論
HBase提供了一個名為TableInputFormat的InputFormat類,它可以將HBase用作MapReduce中的數(shù)據(jù)源。以下代碼顯示了一個MapReduce作業(yè),它使用此輸入格式(通過TableMapReduceUtil.initTableMapperJob調(diào)用)從HBase讀取數(shù)據(jù)。
代碼5.4 使用MapReduce將HBase數(shù)據(jù)導入HDFS
可以按如下方式運行此MapReduce作業(yè):
$ hip hip.ch6.hbase.ImportMapReduce --output output
快速查看HDFS,告訴MapReduce作業(yè)是否按預(yù)期工作:
此輸出確認MapReduce作業(yè)按預(yù)期工作。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么將HBase的數(shù)據(jù)導入HDFS”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
當前文章:怎么將HBase的數(shù)據(jù)導入HDFS-創(chuàng)新互聯(lián)
當前鏈接:http://jinyejixie.com/article26/dsiijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、響應(yīng)式網(wǎng)站、網(wǎng)站改版、App設(shè)計、定制網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容