我可以将本地文件的内容传递给hadoop管道作业吗

x4shl7ld  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(268)

我需要用本地文本文件中存储的信息初始化Map器中的对象。有没有这样的机制?

k3bvogb1

k3bvogb11#

在客户端本地存储文件。读取并序列化它,然后将其添加到job conf对象中。在mapper和reducer的setup方法中,从conf对象读取值并反序列化它。
conf对象只存储字符串。因此,在序列化时需要将其转换为字符串对象。

dy2hfwbg

dy2hfwbg2#

您可以将文件上载到hdfs,然后将其添加到分布式缓存中,从而使Map程序可以从工作目录加载该文件。
将本地文件上载到hdfs并将其放置在分布式缓存中由generic处理 -files 选项

hadoop pipes -files localfile.txt <other pipes options>

现在要在Map器中加载该文件,只需打开一个同名文件(localfile.txt)(可以假设该文件位于当前工作目录中)。

相关问题