2013-12-20 79 views
0

我是全新的MapReduce編程和我的第一個MR代碼,我有這個問題。在我的映射器中,我需要訪問在主類中的映射器之前創建並填充的2D數組。我怎樣才能訪問它?我應該將它導出到txt並嘗試在映射器中讀取它嗎?如果是這樣,應該如何將其插入到映射器中?我不知道如何讓它可用?我的代碼是用Java編寫的。我們如何能夠將數組訪問到映射器中?

回答

2

你可以這樣做。

  1. 您創建的二維數組後,您可以將此文件加載到HDFS,然後使用DistributedCache在Java中M/R API在你的映射器/減速器代碼訪問此數據。看看這個:http://developer.yahoo.com/hadoop/tutorial/module5.html

  2. 如果你的數據不是太大,你有表示該數據是序列化和非常小的對象,你可以沿着通過作業配置通過。對其進行序列化並在配置中包含它的base64編碼版本。然後你可以在mapper/reducer中訪問這個數據:http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/conf/Configuration.html#set(java.lang.String,java.lang.String)

相關問題