我需要用本地文本文件中存储的信息初始化Map器中的对象。有没有这样的机制?
k3bvogb11#
在客户端本地存储文件。读取并序列化它,然后将其添加到job conf对象中。在mapper和reducer的setup方法中,从conf对象读取值并反序列化它。conf对象只存储字符串。因此,在序列化时需要将其转换为字符串对象。
dy2hfwbg2#
您可以将文件上载到hdfs,然后将其添加到分布式缓存中,从而使Map程序可以从工作目录加载该文件。将本地文件上载到hdfs并将其放置在分布式缓存中由generic处理 -files 选项
-files
hadoop pipes -files localfile.txt <other pipes options>
现在要在Map器中加载该文件,只需打开一个同名文件(localfile.txt)(可以假设该文件位于当前工作目录中)。
2条答案
按热度按时间k3bvogb11#
在客户端本地存储文件。读取并序列化它,然后将其添加到job conf对象中。在mapper和reducer的setup方法中,从conf对象读取值并反序列化它。
conf对象只存储字符串。因此,在序列化时需要将其转换为字符串对象。
dy2hfwbg2#
您可以将文件上载到hdfs,然后将其添加到分布式缓存中,从而使Map程序可以从工作目录加载该文件。
将本地文件上载到hdfs并将其放置在分布式缓存中由generic处理
-files
选项现在要在Map器中加载该文件,只需打开一个同名文件(localfile.txt)(可以假设该文件位于当前工作目录中)。