Sparkジョブ実行時にクラスローダーのトレースを有効にする
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
Author And Source
この問題について(Sparkジョブ実行時にクラスローダーのトレースを有効にする), 我々は、より多くの情報をここで見つけました https://qiita.com/d1ce_/items/ada379c50e5ddb982a6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .