我可以将本地文件的内容传递给Hadoop Pipes作业

时间:2012-10-10 02:23:04

标签: hadoop hadoop-streaming

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

2 个答案:

答案 0 :(得分:0)

您可以将文件上传到HDFS,然后将其添加到分布式缓存中,使映射器可以从工作目录加载。

将本地文件上传到HDFS并将其放在分布式缓存中由通用-files选项

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

现在要在映射器中加载文件,只需打开一个同名文件(localfile.txt)的文件(你可以假设它在当前的工作目录中)。

答案 1 :(得分:0)

将文件本地存储在客户端上。读取并序列化它并将其添加到Job conf对象。 在mapper和reducer的设置方法中,从conf对象中读取值并对其进行反序列化。

COnf对象只存储字符串。因此,您需要在序列化时将其转换为String对象。