簡體   English   中英

帶有RDF / XML文件的Hadoop MapReduce

[英]Hadoop MapReduce with RDF/XML files

所以我有十個不同的文件,每個文件看起來像這樣。

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

每個文件實際上有約56,000行。 每行和一個RDF文檔中都有一個文檔ID。

我的目標是傳遞給每個映射器作為輸入鍵值對,並為輸出鍵值對發出多個。 在reduce的步驟中,我會將它們存儲到Hive表中。

我有幾個入門問題,我對RDF / XML文件是完全陌生的。

  1. 我應該如何解析文檔的每一行以分別傳遞給每個映射器?

  2. 有沒有一種有效的方法來控制映射器的輸入大小?

1-如果使用的是TextInputFormat,則將在每個映射器中自動獲得1行(1分割)作為值。 將此行轉換為String並執行所需的處理。 或者,您可以通過使用StreamXmlRecordReader來使用Hadoop Streaming API。 您必須提供start和end標記,並且夾在start和tag之間的所有信息都將饋送到映射器(在您的情況下<DocID1><RDF Document> )。

Usage :

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

2-為什么需要那個? 您的目標是向映射器提供一條完整的行。 這就是您正在使用的InputFormat的工作。 如果仍然需要它,則必須為此編寫自定義代碼,對於這種特殊情況,這將有些棘手。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM