println
内のSpark
でジョブを実行しているときに、ScalaでEMR
呼び出しからのエラーログまたはメッセージを見つけることができません。
どこからアクセスできますか?
Spark job
をScala
に設定し、script-runner.jar
をEMR
に設定して、--deploy-mode
を使用してcluster
からyarn
に記述された--master
を送信します。それは仕事をうまく実行します。
ただし、Amazon EMR UI
にprintln
ステートメントが表示されず、「stderr、stdoutetc. Furthermore if my job errors I don't see why it had an error. All I see is this in the
stderr`がリストされています。
15/05/27 20:24:44 INFO yarn.Client: Application report from ResourceManager:
application identifier: application_1432754139536_0002
appId: 2
clientToAMToken: null
appDiagnostics:
appMasterHost: ip-10-185-87-217.ec2.internal
appQueue: default
appMasterRpcPort: 0
appStartTime: 1432758272973
yarnAppState: FINISHED
distributedFinalState: FAILED
appTrackingUrl: http://10.150.67.62:9046/proxy/application_1432754139536_0002/A
appUser: hadoop
`
糸上のクラスターのデプロイモードでは、Sparkドライバー、したがって実行されるユーザーコードはApplication Masterコンテナー内にあります。クラスターでEMRデバッグを有効にしたようですので、ログにもS3にプッシュされます。S3の場所でtask-attempts/<applicationid>/<firstcontainer>/*
。
クラスターのマスターノードにSSH接続すると、次の場所でstdout、stderr、syslog、およびコントローラーログを見つけることができます。
/mnt/var/log/hadoop/steps/<stepname>
spark-history-server
に必要なイベントログは、次の場所にあります。
hdfs:///var/log/spark/apps
emr-bootstrap を使用してジョブを送信する場合、--log-uri
を使用してログディレクトリをs3バケットとして指定できます。