4

これが私がやりたいことです。今、私は次のようなテキストファイルをいくつか持っています:

<page>
<url>xxx.example.com</url>
<title>xxx</title>
<content>abcdef</content>
</page>

<page>
<url>yyy.example.com</url>
<title>yyy</title>
<content>abcdef</content>
</page>

...

そして、マッパーで分割されたファイルを読み取り、それらをキーと値のペアに変換したいと考えています。ここで、各値は 1 つの<page> タグ内のコンテンツです。

私の問題は鍵についてです。URL はグローバルに一意であるため、キーとして使用できます。ただし、仕事の都合上、各キーと値のペアのキーとしてグローバルに一意の番号を生成したいと考えています。これが Hadoop の水平方向のスケーラビリティに何らかの形で反していることはわかっています。しかし、これに対する解決策はありますか?

4

2 に答える 2

0

これがあなたの質問に直接答えるかどうかはわかりません。しかし、私は入力ファイル形式を利用しています。

NLineInputFormatを使用して、各レコードが 6 行を含むように N = 6 を設定できます。

<page>
<url>xxx.example.com</url>
<title>xxx</title>
<content>abcdef</content>
</page>
.

各レコードで、マッパーはファイル内のオフセット位置を取得します。このオフセットは、レコードごとに一意になります。

PS: スキーマが修正されている場合にのみ機能します。複数の入力テキストファイルに対して適切に機能するかどうかは疑問です。

于 2013-05-26T11:18:27.730 に答える