從頭學習大數據培訓課程 NOSQL 資料庫 hbase(五)讀取 hbase 的 hfile 文件並生成 hive 使用的 orc 文件

1. 自定義inputformat實現

(1).首先繼承FileInputFormat

(2).然後再實現自己的RecordReader,繼承org.apache.hadoop.mapreduce.RecordReader

這裡不用寫因為在構造函數里已經初始化了

2. 思路分析

HFILE文件是按單列和row存儲成一行數據的,包括列的名稱、值、版本和值

寫MR任務讀取HFILE文件的基本思路分析

需求:把hfile中行列單存儲的數據合併成hive中使用的一行多列的數據結構

從集群中拿取hainiu_user_install_status中f列簇下的一個hfile文件做測試

hfile文件的位置

任務實現

根據hfile中數據存儲的格式實現HFileItem

再根據表的數據格式實現HFileRecord

mapper:

combiner:

reducer:

任務配置:

本地上生成的hfile文件

創建外部表指定本地文件路徑

結果

進階作業:

如何進行mr任務的全表掃描:

自己寫個讀取HDFS文件地址列表的方法,讀指定hbase表下的所有存放HFILE文件的目錄,這樣就可以使你的mr掃描該表下所有的hfile文件,從而達到通過hfile文件進行全表掃描數據的目的

海牛學院青牛原創:轉載請註明出處

推薦閱讀:

大數據時代的數據價值與利用
R語言 從入門到精通之一R語言初識

TAG:大數據時代 | 大數據 | HBase |