1. 程式人生 > >使用MapReduce結合HBase Filter過濾資料

使用MapReduce結合HBase Filter過濾資料


需求:讀取hbase資料,根據某一些條件,過濾掉不符合情況的行,實現資料在伺服器端的過濾。

解決方法:通過翻閱《HBase權威指南》發現,實現這個需求有以下幾種方法

①  使用行過濾器(RowFilter),基於行健來過濾資料。通過比較返回比符合條件的行健。

②  單列值過濾器(SingleColumnValueFilter),此過濾器使用的情況比較多。可以用一列的值決定是否一行資料被過濾。

問題:使用SingleColumnValueFilter組成一個FilterList來過濾資料,實現資料在伺服器端的過濾,但是當資料量非常大的情況下,如何結合MapReduce實現資料的查詢。

解決方法:過濾器在宣告SCAN時進行定義,得到的是一整行的資料,而不是自己需要的那一列。使其在Map端得到自己需要的某一列的值。

程式碼: