2014-06-11 98 views
0

我正在開發一個情緒分析工具,它接收.txt文件中的內容,並且需要檢查字典中的單詞是肯定還是否定。我使用FileInputFormat.addInputPath(args [0])引用包含要分析的單詞的.txt文件。我試圖用字典的內容(.txt文件64KB)創建一個ArrayList,並將一個靜態對象傳遞給Mapper類中使用的類ReadDictionary。 在eclipse上運行它是好的,但是當我嘗試在Hadoop上運行時,出現一些錯誤。如何將字典(.txt文件64KB)的內容以有效的方式傳遞給映射類以在Hadoop(HDFS)上運行?Hadoop Mapper類中的參數

回答

0

org.apache.hadoop.mapreduce.Mapper類中,有一個setup方法,它在初始化Mapper時調用。

您可以保存你的字典在HDFS或本地或遠程的地方,你可以通過它的控制器(路徑,文件路徑,或遠程URL)作爲上下文參數。在您的setup impl中,您使用上下文參數實例化字典。字典對象將通過您的Mapper的生命留在記憶中。

您可以清理,如果需要的話,在cleanup方法。

1

您可以使用org.apache.hadoop.filecache.DistributedCache來緩存字典文件。

DistributedCache是​​一個Map-Reduce框架提供的緩存文件由應用程序需要(文字,檔案,罐等)的設施。

作業的所有任務都在該節點上執行之前,該框架將複製到從節點所需的文件。它的效率源自這樣一個事實,即每個作業只複製一次文件,並且能夠緩存從站上未歸檔的歸檔。

這是tutorial

相關問題