2012-04-11 5 views
2

を削減地図でNutchのからフェッチのWebページの抽出:次のように分布する(展開)モードでNutchのクロール後フレンドリーフォーマット

bin/nutch crawl s3n://..... -depth 10 -topN 50000 -dir /crawl -threads 20 

私はマップ内でのコンテンツと一緒にフェッチされた各URLを抽出する必要が軽減フレンドリーなフォーマット。以下のreadsegコマンドを使用すると、内容がフェッチされますが、出力形式はマップの縮小に役立ちません。

bin/nutch readseg -dump /crawl/segments/* /output -nogenerate -noparse -noparsedata -noparsetext 

理想的には出力がこの形式である必要があります。これを実現する方法について

http://abc.com/1  content of http://abc.com/1 
http://abc.com/2  content of http://abc.com/2 

任意の提案ですか?

答えて

0

答えはnutchのソースコードを微調整することにあります。これは非常に簡単であることが判明しました。 SegmentReaderクラスインサイドapache-nutch-1.4-bin/src/java/org/apache/nutch/segment

SegmentReader.javaファイルにナビゲートすることはbin/nutch readsegコマンドが生成する人間が読める出力を生成するための責任がある方法reduceです。変数StringBuffer dumpを適切に変更します。これは、key変数で表される特定のURLの出力全体を保持します。

antを実行して新しいバイナリを作成し、さらにbin/nutch readsegを呼び出すと、カスタム形式で出力が生成されることを確認してください。

これらの文献には、コードをナビゲートして、非常に有用であった:
[1] http://nutch.apache.org/apidocs-1.4/overview-summary.html
[2]私はNutchののソースコードを修正することになった@TejasP答えをhttp://nutch.apache.org/apidocs-1.3/index-all.html

0

bin/nutch readsegコマンドは、人が判読可能な形式で出力し、縮小形式は出力しません。データは、マップリダクション形式でセグメントに格納されます。私はあなたが直接マップ縮小フォーマットでセグメンテーションからその情報を引き出すことができるとは思わない。あなたの懸念の

いくつかのオプション:

  1. セグメントは、MAP-短縮形式のファイルそのものです。それらを再利用できますか?
  2. readsegコマンドの出力は、小さなマップリダクションコードを書き込むことによってマップリダクション形式に変換できます。
+0

ザッツ – Sid

関連する問題