2011-07-21 3 views
2

ここでは、EC2/S3/EMR/Rを使用して何かを正常に実行したいと考えています。 https://gist.github.com/406824ストリーミングコマンドが失敗しました! Elastic Map Reduce/S3とRを使用するとエラーが発生する

ジョブはストリーミングステップで失敗します。

コントローラ:

2011-07-21T19:14:27.711Z INFO Fetching jar file. 
2011-07-21T19:14:30.380Z INFO Working dir /mnt/var/lib/hadoop/steps/1 
2011-07-21T19:14:30.380Z INFO Executing /usr/lib/jvm/java-6-sun/bin/java -cp /home/hadoop/conf: /usr/lib/jvm/java-6-sun/lib/tools.jar:/home/hadoop:/home/hadoop/hadoop-0.20-core.jar:/home/hadoop/hadoop-0.20-tools.jar:/home/hadoop/lib/*:/home/hadoop/lib/jetty-ext/* -Xmx1000m -Dhadoop.log.dir=/mnt/var/log/hadoop/steps/1 -Dhadoop.log.file=syslog -Dhadoop.home.dir=/home/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,DRFA -Djava.io.tmpdir=/mnt/var/lib/hadoop/steps/1/tmp -Djava.library.path=/home/hadoop/lib/native/Linux-i386-32 org.apache.hadoop.util.RunJar /home/hadoop/contrib/streaming/hadoop-streaming.jar -cacheFile s3n://emrexample21/calculatePiFunction.R#calculatePiFunction.R -input s3n://emrexample21/numberList.txt -output s3n://emrout/ -mapper s3n://emrexample21/mapper.R -reducer s3n://emrexample21/reducer.R 
2011-07-21T19:16:12.057Z INFO Execution ended with ret val 1 
2011-07-21T19:16:12.057Z WARN Step failed with bad retval 
2011-07-21T19:16:14.185Z INFO Step created jobs: job_201107211913_0001 

標準エラー出力:

Streaming Command Failed! 

標準出力:

packageJobJar: [/mnt/var/lib/hadoop/tmp/hadoop-unjar2368654264051498521/] [] /mnt/var/lib/hadoop/steps/2/tmp/streamjob1658200878131882888.jar tmpDir=null 

のsyslog:

2011-07-21 19:50:29,539 INFO org.apache.hadoop.mapred.JobClient (main): Default number of map tasks: 2 
2011-07-21 19:50:29,539 INFO org.apache.hadoop.mapred.JobClient (main): Default number of reduce tasks: 15 
2011-07-21 19:50:31,988 INFO com.hadoop.compression.lzo.GPLNativeCodeLoader (main): Loaded native gpl library 
2011-07-21 19:50:31,999 INFO com.hadoop.compression.lzo.LzoCodec (main): Successfully loaded & initialized native-lzo library [hadoop-lzo rev 2334756312e0012cac793f12f4151bdaa1b4b1bb] 
2011-07-21 19:50:33,040 INFO org.apache.hadoop.mapred.FileInputFormat (main): Total input paths to process : 1 
2011-07-21 19:50:35,375 INFO org.apache.hadoop.streaming.StreamJob (main): getLocalDirs(): [/mnt/var/lib/hadoop/mapred] 
2011-07-21 19:50:35,375 INFO org.apache.hadoop.streaming.StreamJob (main): Running job: job_201107211948_0001 
2011-07-21 19:50:35,375 INFO org.apache.hadoop.streaming.StreamJob (main): To kill this job, run: 
2011-07-21 19:50:35,375 INFO org.apache.hadoop.streaming.StreamJob (main): UNDEF/bin/hadoop job -Dmapred.job.tracker=ip-10-203-50-161.ec2.internal:9001 -kill job_201107211948_0001 
2011-07-21 19:50:35,376 INFO org.apache.hadoop.streaming.StreamJob (main): Tracking URL: http://ip-10-203-50-161.ec2.internal:9100/jobdetails.jsp?jobid=job_201107211948_0001 
2011-07-21 19:50:36,566 INFO org.apache.hadoop.streaming.StreamJob (main): map 0% reduce 0% 
2011-07-21 19:50:57,778 INFO org.apache.hadoop.streaming.StreamJob (main): map 50% reduce 0% 
2011-07-21 19:51:09,839 INFO org.apache.hadoop.streaming.StreamJob (main): map 100% reduce 0% 
2011-07-21 19:51:12,852 INFO org.apache.hadoop.streaming.StreamJob (main): map 100% reduce 1% 
2011-07-21 19:51:15,864 INFO org.apache.hadoop.streaming.StreamJob (main): map 100% reduce 3% 
2011-07-21 19:51:18,875 INFO org.apache.hadoop.streaming.StreamJob (main): map 100% reduce 0% 
2011-07-21 19:52:12,454 INFO org.apache.hadoop.streaming.StreamJob (main): map 100% reduce 100% 
2011-07-21 19:52:12,455 INFO org.apache.hadoop.streaming.StreamJob (main): To kill this job, run: 
2011-07-21 19:52:12,455 INFO org.apache.hadoop.streaming.StreamJob (main): UNDEF/bin/hadoop job -Dmapred.job.tracker=ip-10-203-50-161.ec2.internal:9001 -kill job_201107211948_0001 
2011-07-21 19:52:12,456 INFO org.apache.hadoop.streaming.StreamJob (main): Tracking URL: http://ip-10-203-50-161.ec2.internal:9100/jobdetails.jsp?jobid=job_201107211948_0001 
2011-07-21 19:52:12,456 ERROR org.apache.hadoop.streaming.StreamJob (main): Job not Successful! 
2011-07-21 19:52:12,456 INFO org.apache.hadoop.streaming.StreamJob (main): killJob... 
はここでエラーログです
+2

ねえ、それはあなたもリンクされている良い外観のコードです。エラーのない方法はありません! :) –

答えて

6

私はあなたが実行しようとしているコードの作成者です。それはRとEMRに関する概念の証明として書かれました。このメソッドを使用して本当に便利なコードを作ることは非常に難しいです。そのメソッドが正しく機能するために必要なすべての手作業でEMRにRコードを送信することは、面倒な苦痛の練習です。

私は後でSegue packageを書いて、S3へのすべてのビットのロードと、Hadoopノード上のRバージョンの更新を行っています。 Jeffry BreenはSegueの使用についてblog postと書いています。それを見て、それが使いやすいかどうかを見てください。

編集:

私は、少なくともEMR/HadoopのストリーミングでRコードをデバッグするには、いくつかのヒントを与えるべきである:

1)HadoopのログからRコードをデバッグすることは不可能に近い気です。私の経験では、EMRクラスターをセットアップしてログインし、R内から手動でコードを実行する必要があります。これは、定義されたキーを使用してクラスターを開始する必要があります。私は一般に、デバッグと非常に小さなデータセットの使用のために、単一のノードクラスタでこれを行います。デバッグするだけで複数のノードを起動する意味がありません。

2)EMRノード上のR内で対話形式でジョブを実行するには、Hadoopノードの/ home/hadoop /ディレクトリに入力ファイルが必要です。これを実行する最も簡単な方法は、クラスタまで必要なファイルをscpにすることです。

3)前1 & 2をやってに、ローカルで同じ方法

4)あなたはRコードはうまくいくと思うならば、あなたはHadoopのマシン上でこれを行うことができるはずを使用してコードをテスト

cat numberList.txt | ./mapper.R | sort | ./reducer.R 

と実行する必要があります。マッパーやレデューサーを使用していない場合は、catで置き換えることができます。この例ではnumberList.txtを使用しています。これは入力ファイル名であるgithubのコードです。

+0

ありがとうございました!私はSegueとブログ記事をチェックアウトします。デバッグ情報も間違いなく参考になるでしょう。 – tcash21

関連する問題