[英]Arguments in Hadoop Mapper Class
我正在开发一种情感分析工具,该工具可以从.txt文件接收内容,并且需要检查字典中的单词是肯定还是否定。 我使用FileInputFormat.addInputPath(args [0])引用包含要分析的单词的.txt文件。 我试图用字典的内容(.txt文件64KB)创建一个ArrayList并将其静态对象传递给Mapper类别中使用的Class ReadDictionary。 可以在eclipse上运行它,但是当我尝试在Hadoop上运行时会出现一些错误。 如何以有效的方式将字典的内容(.txt文件64KB)传递给映射类以在Hadoop(HDFS)上运行?
您可以使用org.apache.hadoop.filecache.DistributedCache
来缓存字典文件。
DistributedCache是Map-Reduce框架提供的一种工具,用于缓存应用程序所需的文件(文本,档案,jar等)。
在作业的任何任务在该节点上执行之前,该框架会将必要的文件复制到该从节点上。 其效率源于以下事实:每个作业仅复制一次文件,以及缓存未在从属服务器上存档的存档的能力。
这是本教程 。
在org.apache.hadoop.mapreduce.Mapper
类中,有一个setup
方法,该方法在初始化Mapper
时调用。
您可以将字典保存在HDFS中,也可以保存在本地或远程某个地方,还可以将句柄作为上下文参数传递给它(路径,文件路径或远程URL)。 在您的setup
,您可以使用context参数实例化字典。 字典对象将在Mapper
整个生命周期中保留在内存中。
您可以根据需要使用cleanup
方法对其进行cleanup
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.