2016-07-16 27 views
0

我正在製作一個map reduce程序。我試圖傳遞參數的上下文配置中使用setLong方法降低方法,然後完成後在減速讀取它們的主要Hadoop從reducer傳遞變量到主

context.getConfiguration().setLong(key, someLong); 

作業完成之後我在主嘗試閱讀使用:

long val = job.getConfiguration().getLong(key, -1); 

但我總是得到-1。

當我嘗試閱讀減速機內部我看到值設置,我得到正確的答案。

我錯過了什麼?

謝謝

回答

2

您可以從主轉換配置映射任務或減少任務,但你不能把它翻譯回來。配置翻譯的過程是:根據你的主設置的配置MapReduce的客戶端上生成

  • 一個配置文件,它就會被推向只能由工作共享的HDFS路徑。該文件將只讀
  • 啓動映射或減少任務時,配置文件將從HDFS路徑中提取,並且任務將根據該文件初始化配置。

如果你想翻譯後的配置,你可以使用另一個HDFS文件:更新減速的文件,作業完成

3

後,您可以使用計數器閱讀:設置&更新他們的減速值和那麼你可以在你的客戶端應用程序(Main)中訪問它們。