私は初めての EMR/Hadoop ユーザーであり、初めての Apache Nutch ユーザーです。Apache Nutch 2.1 を使用してスクリーン スクレイピングを実行しようとしています。Hadoop で実行したいのですが、独自のクラスターをセットアップしたくありません (一度に 1 つの学習曲線)。だから私はEMRを使っています。そして、S3を出力(および必要な入力)に使用したいと思います。
Nutch のセットアップ wiki を読んでいます。
http://wiki.apache.org/nutch/NutchTutorial
http://wiki.apache.org/nutch/NutchHadoopTutorial
そして、ナッツの基本を理解するのに非常に役立ちました。ソースから Nutch をビルドし、いくつかの正規表現を事前に構成してから、Hadoop に適した jar を残すことができることに気付きました。
$NUTCH_HOME/runtime/deploy/apache-nutch-2.1.job
ほとんどのチュートリアルは、クロール コマンドの実行で終了します。Hadoop の例では、次のようになります。
hadoop jar nutch-${version}.jar org.apache.nutch.crawl.Crawl urls -dir crawl -depth 3 -topN 5
ローカル展開の例では、次のようになります。
bin/nutch crawl urls -dir crawl -depth 3 -topN 5
私の質問は次のとおりです。apache-nutch-2.1.job を EMR で実行するにはどうすればよいですか? 私がそれを渡す引数は何ですか?上記の Hadoop クロールの例では、「urls」ファイルはすでにシード URL を持つ hdfs にあります。EMR でこれを行うにはどうすればよいですか? また、最終出力を HDFS ではなく S3 にするには、コマンドラインで何を指定すればよいですか?