怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS-創(chuàng)新互聯(lián)

這篇文章主要介紹了怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

福建網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,福建網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為福建成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的福建做網(wǎng)站的公司定做!

實(shí)踐:將HBase數(shù)據(jù)導(dǎo)入HDFS

如果將要在MapReduce中使用的客戶數(shù)據(jù)與HDFS中的數(shù)據(jù)結(jié)合使用,那該怎么辦?可以編寫一個(gè)MapReduce作業(yè),該作業(yè)將HDFS數(shù)據(jù)集作為輸入,并直接從HBase的map或reduce代碼中提取數(shù)據(jù)。但在某些情況下,將HBase中的數(shù)據(jù)直接轉(zhuǎn)儲(chǔ)到HDFS可能更有用,特別是如果計(jì)劃在多個(gè)MapReduce作業(yè)中使用該數(shù)據(jù)并且HBase數(shù)據(jù)不可變或不經(jīng)常更改。

問題

將HBase數(shù)據(jù)導(dǎo)入HDFS

解決方案

HBase包含一個(gè)Export類,可用于將HBase數(shù)據(jù)以SequenceFile格式導(dǎo)入HDFS。此技術(shù)還介紹了可用于讀取導(dǎo)入的HBase數(shù)據(jù)代碼。

討論

在開始使用這種技術(shù)之前,需要啟動(dòng)并運(yùn)行HBase。

為了能夠從HBase導(dǎo)出數(shù)據(jù),首先需要將一些數(shù)據(jù)加載到HBase。加載器創(chuàng)建一個(gè)名為stocks_example的HBase表,其中包含一個(gè)列族的詳細(xì)信息,我們將HBase數(shù)據(jù)存儲(chǔ)為Avro二進(jìn)制序列化數(shù)據(jù),此部分代碼就不列舉了。

運(yùn)行加載程序并使用它將樣本數(shù)據(jù)加載到HBase中:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

可以使用HBase shell查看負(fù)載結(jié)果。list命令(不帶任何參數(shù))將顯示HBase中的所有表,而帶有單個(gè)參數(shù)的scan命令將轉(zhuǎn)儲(chǔ)表的所有內(nèi)容:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

有了這些數(shù)據(jù),我們就可以將其導(dǎo)出到HDFS了。HBase附帶了一個(gè)轉(zhuǎn)儲(chǔ)HBase表的org.apache.hadoop.hbase.mapreduce.Export類。以下代碼段顯示了使用Export類的示例。使用此命令,可以導(dǎo)出整個(gè)HBase表:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

Export類還支持只導(dǎo)出單個(gè)列族,還可以壓縮輸出:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

Export類以SequenceFile格式寫入HBase輸出,其中HBase行鍵使用org.apache.hadoop.hbase.io .ImmutableBytesWritable存儲(chǔ)在SequenceFile記錄鍵中,HBase值使用org.apache.hadoop.hbase.client.Result存儲(chǔ)在SequenceFile記錄值中.。

如果要在HDFS中處理導(dǎo)出的數(shù)據(jù),該怎么辦?以下列表顯示了如何讀取HBase SequenceFile并提取Avro記錄的示例。

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

代碼5.3 讀取HBase SequenceFile以提取Avro記錄

可以針對(duì)用于導(dǎo)出的HDFS目錄運(yùn)行代碼并查看結(jié)果:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

HBaseExportedStockReader類能夠讀取和轉(zhuǎn)儲(chǔ)HBase的Export類使用的SequenceFile內(nèi)容。

使用內(nèi)置的HBase Export類可以更輕松地將HBase中的數(shù)據(jù)導(dǎo)出到HDFS中。但是,如果不想將HBase數(shù)據(jù)寫入HDFS,而是想直接在MapReduce作業(yè)中處理它,該怎么辦?讓我們看看如何使用HBase作為MapReduce作業(yè)的數(shù)據(jù)源。

實(shí)踐:使用HBase作為MapReduce的數(shù)據(jù)源

內(nèi)置的HBase導(dǎo)出器使用SequenceFile輸出HBase數(shù)據(jù),除了Java之外的編程語言不支持它,并且不支持模式演變。它僅支持Hadoop文件系統(tǒng)作為數(shù)據(jù)接收器。如果想要更多地控制HBase數(shù)據(jù)提取,可能需要其他HBase工具。

問題

希望直接在MapReduce作業(yè)中對(duì)HBase進(jìn)行操作,而無需將數(shù)據(jù)復(fù)制到HDFS的中間步驟。

解決方案

HBase有一個(gè)TableInputFormat類,可以在MapReduce作業(yè)中使用,直接從HBase中提取數(shù)據(jù)。

討論

HBase提供了一個(gè)名為TableInputFormat的InputFormat類,它可以將HBase用作MapReduce中的數(shù)據(jù)源。以下代碼顯示了一個(gè)MapReduce作業(yè),它使用此輸入格式(通過TableMapReduceUtil.initTableMapperJob調(diào)用)從HBase讀取數(shù)據(jù)。

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

代碼5.4 使用MapReduce將HBase數(shù)據(jù)導(dǎo)入HDFS

可以按如下方式運(yùn)行此MapReduce作業(yè):

$ hip hip.ch6.hbase.ImportMapReduce --output output

快速查看HDFS,告訴MapReduce作業(yè)是否按預(yù)期工作:

怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS

此輸出確認(rèn)MapReduce作業(yè)按預(yù)期工作。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

當(dāng)前文章:怎么將HBase的數(shù)據(jù)導(dǎo)入HDFS-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article26/dsiijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)響應(yīng)式網(wǎng)站、網(wǎng)站改版App設(shè)計(jì)、定制網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司