LoginSignup
4
0

More than 5 years have passed since last update.

Sparkジョブ実行時にクラスローダーのトレースを有効にする

Last updated at Posted at 2016-12-07

Distributed computing (Apache Hadoop, Spark, ...) Advent Calendar 2016の七日目です。

障害のトラブルシューティングをしていると、「このプログラム、なんか変なライブラリ呼んでるんちゃうか」、と疑いをもつことがあります。たとえば、Sparkにおいてはドライバやエグゼキューターが変なクラスをロードして挙動がおかしくなっているようなケースです。

そんなときは、実行時に下記オプションを渡してあげましょう。

--conf "spark.executor.extraJavaOptions=-verbose:class" \
--conf "spark.driver.extraJavaOptions=-verbose:class"

すると、標準出力にクラスローダーのトレースが書き出されます。spark.driver.extraJavaOptionsは、クライアントモードで実行すればクライアントコンソールに、YARNのクラスタモードで実行すればApplicationMasterの標準出力が書き出し先となります。下記は、エグゼキューターの標準出力ログの一例です。

Log Type: stdout
Log Upload Time: Wed Dec 07 06:27:40 -0800 2016
Log Length: 1514211
[Opened /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Object from /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Serializable from /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.String from /usr/java/jdk1.8.0_60/jre/lib/rt.jar]
...

普段はまず(そして願わくば)使うことのないであろう機能の紹介でした。

参考
Apache Spark 1.6の公式設定ドキュメント
https://spark.apache.org/docs/1.6.1/configuration.html
Apache Spark 最新版の公式設定ドキュメント
http://spark.apache.org/docs/latest/configuration.html
SparkをYARN上で動かす際に参考にするClouderaのドキュメント
http://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_running_spark_on_yarn.html

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0