hadoopmapreduce和rdf/xml文件

l3zydbqr  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(358)

所以我有十个不同的文件,每个文件都是这样的。

<DocID1>    <RDF Document>
<DocID2>    <RDF Document>
.
.
.
.
<DocID50000>    <RDF Document>

实际上每个文件大约有56000行。每行中都有一个文档id和一个rdf文档。
我的目标是作为输入键值对传入每个Map器,并为输出键值对发出多个。在reduce步骤中,我将把这些存储到一个配置单元表中。
我有几个问题要问,而且我对rdf/xml文件是完全陌生的。
我应该如何解析文档的每一行以分别传递给每个Map器?
有没有一种有效的方法来控制Map器输入的大小?

ulydmbyx

ulydmbyx1#

1-如果使用textinputformat,则会在每个Map器中自动获取1行(1个分割)作为值。将此行转换为字符串并执行所需的处理。或者,您可以通过使用 StreamXmlRecordReader . 您必须提供开始和结束标记,并且夹在开始和标记之间的所有信息都将被提供给Map器(在您的情况下) <DocID1> 以及 <RDF Document> ).

Usage :

hadoop jar hadoop-streaming.jar -inputreader "StreamXmlRecord,begin=DocID,end=RDF Document" ..... (rest of the command)

2-你为什么需要这个?您的目标是将一条完整的线提供给Map器。这是你正在使用的输入格式的工作。如果您仍然需要它,您必须为此编写自定义代码,对于这种特殊情况,这将有点棘手。

相关问题