【发布时间】:2012-11-01 19:15:22
【问题描述】:
我知道我们可以从普通的 java 应用程序中调用 map-reduce 作业。现在,在我的情况下,map-reduce 作业必须处理 hdfs 上的文件以及其他文件系统上的文件。在 hadoop 中,我们是否可以在访问其他文件系统的文件的同时使用 hdfs 上的文件。这可能吗?
所以基本上我的意图是我有一个大文件,我想把它放在 HDFS 中进行并行计算,然后将这个文件的块与其他一些文件进行比较(我不想放在 HDFS 中,因为他们需要一次作为全长文件访问。
【问题讨论】:
-
是的,这是可能的。我猜每个tasktracker都必须提供您的非hdfs文件。就像网络共享一样。
-
你能告诉我我们是怎么做的吗,我用谷歌搜索,我没有找到可以在 hadoop 中处理非 hdfs 文件的示例。非常感谢您的回复
-
如果您担心文件被拆分,您应该将它们放在 HDFS 上,但使用 FileInputFormat 的子类,当您启动 MapReduce 作业时不会拆分它们。
-
所以我想要做的是地图的输入将是一个大文件的块,并且这个文件的内容将与我计划保留它的文件进行比较文件系统。你的回答让我想到了另一个问题,能不能在map函数中直接访问hdfs中的文件,文件不会被拆分?