質問

私はスパークに新しいです。これで、yarn(2.0.0-cdh4.2.1)でspark0.9.1を実行できます。しかし、実行後にログはありません。

次のコマンドは、sparkの例を実行するために使用されます。ただし、通常のMapReduceジョブのように、履歴サーバーにはログが見つかりません。

SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./spark-example-1.0.0.jar \
--class SimpleApp --args yarn-standalone  --num-workers 3 --master-memory 1g \
--worker-memory 1g --worker-cores 1

どこでlogs/stderr/stdoutを見つけることができますか?

設定を設定する場所はありますか?私はコンソールからの出力を見つけました:

14/04/14 18:51:52:ApplicationMasterのコマンド:$JAVA_HOME/bin/java-server-Xmx640M-Djava.io.tmpdir=$PWD/tmp org.アパッチスパーク展開します。糸。アプリケーションマスター--クラスSimpleApp--jar。/spark-example-1.0.0.jar--args'yarn-standalone'--worker-memory1024--worker-cores1--num-worker3 1> <LOG_DIR>/標準出力2> <LOG_DIR>/stderr

この行では、注意してください 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr

LOG_DIRはどこに設定できますか?

他のヒント

次のコマンドを使用してログにアクセスできます

yarn logs -applicationId <application ID> [OPTIONS]

一般的なオプションは次のとおりです:

  • appOwner <Application Owner> -AppOwner(指定されていない場合は現在のユーザーとみなされます)
  • containerId <Container ID> -ContainerId(ノードの場合は指定する必要があります アドレスが指定されています)
  • nodeAddress <Node Address> -形式のNodeAddress nodename:port (コンテナidが指定されている場合は指定する必要があります)

例:

yarn logs -applicationId application_1414530900704_0003                                      
yarn logs -applicationId application_1414530900704_0003 myuserid

// the user ids are different
yarn logs -applicationId <appid> --appOwner <userid>

答えのどれも、ログを探すために(それらが部分的にしているが)それを一緒に置いているので、それをクリスタルクリアすることはありません。

ログアグリゲーションがオンの場合(yarn.log-glaggation-enable yarn-site.xmlを使用すると)、この

を実行します。
yarn logs -applicationId <app ID>
.

しかし、これがオンになっていない場合は、データノードマシンに移動して

を調べる必要があります。
$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/
.

Application_1474886780074_XXXXはアプリケーションID

です。

ログに記録:

/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout
.

ログは、スパークジョブが実行されているすべてのノードにあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top