hadoopMap器类中的java参数

bmvo0sr5  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(363)

我正在开发一个情感分析工具,它从一个.txt文件接收内容,并且需要检查字典中的单词是肯定的还是否定的。我使用fileinputformat.addinputpath(args[0])引用包含要分析的单词的.txt文件。我试图用字典的内容(.txt文件64kb)创建一个arraylist,并将它作为一个静态对象传递给mapper clas中使用的类readdictionary。在eclipse上运行它是可以的,但是当我尝试在hadoop上运行时,会出现一些错误。如何将字典(.txt文件64kb)的内容有效地传递给map类,以便在hadoop(hdfs)上运行?

tpgth1q7

tpgth1q71#

你可以用 org.apache.hadoop.filecache.DistributedCache 缓存字典文件。
distributedcache是MapReduce框架提供的一种工具,用于缓存应用程序所需的文件(文本、存档、jar等)。
在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。
这是教程。

j7dteeu8

j7dteeu82#

org.apache.hadoop.mapreduce.Mapper 同学们,有一个 setup 方法,当 Mapper 已初始化。
您可以将字典保存在hdfs中,或者本地保存,或者远程保存,并且可以将句柄(路径、文件路径或远程url)作为上下文参数传递给它。在你的 setup impl,使用context参数示例化字典。dictionary对象将在您的整个生命周期中保留在内存中 Mapper .
如果需要的话,你可以把它清理干净 cleanup 方法。

相关问题