2015-10-01 42 views
0

我在寫一個MR代碼以對HBASE和HDFS中可用的數據執行正則表達式模式匹配。 我的輸入文件是一個很大的CSV文件,它具有從HBASE獲取唯一數據的鍵。這個輸入文件可以有重複。將Hashmap作爲輸入映射到映射器而不是文件

我的問題 - 在我的Main類中 - 我想讀取輸入文件並執行一些處理,並在將數據提供給映射器類之前將其保存到散列映射中。 在我看到的所有例子中,我們只能輸入文件路徑作爲映射器類的輸入, 有沒有一種方法可以將映射器輸入到映射器而不是文件?

謝謝 Pranay維亞斯

回答

0

兩件事情: 地圖減輕其是否有在HDFS數據的作品。因此,您的最佳選擇是將您的地圖數據保存爲HDFS文件,並轉向縮小地圖。 但是,由於您的數據來自HBase,爲何不使用this,並讀取數據並對其執行正則表達式操作。讓我知道如果我錯過了什麼

+0

謝謝Ramzy,我必須處理輸入文件中的數據。爲輸入文件上的每條記錄獲取來自HBASE和HDFS的詳細信息,並執行正則表達式掃描。以下是我所做的 - 將此輸入文件傳遞給映射器類,並且映射器類內部讀取HBASE,HDFS並掃描文檔中的正則表達式。發佈正則表達式後,我更新了HBASe和SolR索引。 –

+0

由於我的輸入文件的大小非常小,無法創建多個映射器,所以我實現了基於輸入文件大小創建映射器數量的方法。根據大小和記錄數量,最多12個mapper和1個mapper的最小值。 –

+0

好的。可以有多種方式來做同樣的事情。如果你正在達到你需要的表現,那一切都好。但是,映射器的數量由框架根據輸入分割的數量決定。所以,除非你說「不要拆分」,或者寫了自己的記錄閱讀器,否則我不確定它是否是控制代碼中的映射器的好方法。 – Ramzy