hadoop输入格式为hadoop流。 Wikihadoop输入格式

时间:2013-06-14 15:05:36

标签: hadoop hadoop-streaming

我想知道hadoop和hadoop流的InputFormats之间是否存在任何差异。 hadoop流的输入格式是否也适用于hadoop,反之亦然? 我问这个是因为我找到了wikipedia转储文件的特殊输入格式,即wikihadoop InputFormat。有人写道,它是hadoop流的输入格式?为什么只有hadoop流媒体?而不是hadoop?

贝斯茨

3 个答案:

答案 0 :(得分:0)

据我所知,Hadoop流作业与用Java编写的常规MapReduce作业之间的输入处理方式没有区别。

StreamWikiDumpInputFormat的继承树是......

* InputFormat
  * FileInputFormat
    * KeyValueTextInputFormat
      * StreamWikiDumpInputFormat

由于它最终实现了InputFormat,因此可以在常规MapReduce作业中使用

答案 1 :(得分:0)

否.. MR作业的类型(流式传输或java)不是使用(或开发)InputFormat的标准。 InputFormat只是一个InputFormat,可用于流式和java MR作业。它是您要处理的数据类型,基于您使用(或开发)InputFormat。 Hadoop原生提供不同类型的InputFormats,通常足以满足您的需求。但有时你的数据处于这样一种状态,即这些InputFormats都不能处理它。

话虽如此,仍然可以使用MR处理该数据,这就是您最终编写自己的自定义InputFormat的地方,就像您在上面指定的那样。

我不知道为什么他们如此强调Hadoop Streaming。它只是一个Java类,可以完成InputFormat应该执行的所有操作,并实现使其有资格执行此操作的所有内容。 @climbage对此也提出了非常有效的观点。因此,它可以用于任何MR作业,流媒体或java。

答案 2 :(得分:0)

通常的输入格式与为hadoop流式开发的格式之间没有区别。

当作者说为Hadoop Streaming开发格式时,她唯一意味着她的输入格式会生成带有有意义的toString方法的对象。就是这样。

例如,当我在Hadoop Streaming中开发用于输入格式的输入格式时,我尝试避免使用BinaryWritable并使用Text。