Hadoop Mapper类中的参数



我正在开发一种情感分析工具,它可以从。txt文件中接收内容,并且需要在字典中检查该单词是积极的还是消极的。我使用FileInputFormat.addInputPath(args[0])来引用包含要分析的单词的.txt文件。我尝试用字典的内容创建一个ArrayList (.txt文件64KB),并将其传递给Mapper类中使用的类ReadDictionary的静态对象。在eclipse上运行它是可以的,但是当我尝试在Hadoop上运行时,我得到了一些错误。如何将字典的内容(.txt文件64KB)传递给map类以高效的方式在Hadoop (HDFS)上运行?

可以使用org.apache.hadoop.filecache.DistributedCache缓存字典文件

DistributedCache是Map-Reduce框架提供的一个工具,用于缓存应用程序所需的文件(文本,存档,jar等)。

在从属节点上执行作业的任何任务之前,框架会将必要的文件复制到从属节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从服务器上未归档的归档文件。

org.apache.hadoop.mapreduce.Mapper类中有一个setup方法,该方法在Mapper初始化时调用。

您可以将字典保存在HDFS,本地或远程某处,并且您可以将句柄(路径,文件路径或远程URL)作为上下文参数传递给它。在setup impl中,使用context参数实例化字典。在Mapper的整个生命周期中,字典对象都将留在内存中。

如果需要,您可以在cleanup方法中清除它。

相关内容

  • 没有找到相关文章

最新更新