Spark ログ・レベル情報の構成
実行されるアプリケーションを確認し、 IBM Analytics Engine Spark アプリケーションが生成するログを使用して、存在する問題を識別します。 使用可能な標準ロギング・レベルは、ALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、および OFF です。 デフォルトでは、 Analytics Engine Spark アプリケーションは、spark ドライバーの場合は WARN ログ・レベル、spark 実行プログラムの場合は OFF になります。 関連メッセージを表示するようにロギング・レベルを構成し、詳細メッセージの数を減らすことができます。
IBM Analytics Engine ロギング構成は、Spark フレームワークのログ・レベル情報を構成します。 Spark アプリケーションで「logger.info()」、「logger.warn()」、「print ()」、「show ()」などのコマンドを使用してユーザー・コードによって書き込まれるログには影響しません。
オプションの構成
Spark アプリケーションのログ・レベルをセットアップするために、以下の IBM Analytics Engine ログを構成します。
- Spark ドライバー・ログ (
ae.spark.driver.log.levelを使用) - Spark 実行プログラムのログ (
ae.spark.executor.log.levelを使用)
IBM Analytics Engine インスタンスをプロビジョンするとき、または Spark アプリケーションをサブミットするときに、Spark 構成セクションでオプションを指定します。 以下の標準ログ・レベル値を指定できます。
- すべて
- トレース
- DEBUG
- 情報
- 警告
- エラー
- 致命的
- オフ
ドライバー・ログ・レベルのデフォルト値は WARN で、executor ログ・レベルは OFF です。
以下の 2 つの方法で構成を適用できます。
- インスタンス・レベルの構成
- アプリケーション・レベルの構成
インスタンス・レベルでの Spark ログ・レベル情報の構成
IBM Analytics Engine インスタンスのプロビジョニング時に、default_config 属性の下にログ・レベル構成を指定します。 詳しくは、 デフォルトの Spark 構成 を参照してください。
例:
"default_config": {
"ae.spark.driver.log.level": "WARN",
"ae.spark.executor.log.level": "ERROR"
}
アプリケーション・レベルでの Spark ログ・レベル情報の構成
ジョブのサブミット時に、 conf の下のペイロードにオプションを指定します。 詳しくは、 Spark アプリケーション REST API を参照してください。
例:
{
"conf": {
"ae.spark.driver.log.level":"WARN",
"ae.spark.executor.log.level":"WARN",
}
}
ユース・ケースの例
インスタンス・レベルでのログ・レベル Spark 構成の設定: このサンプル・ユース・ケースでは、 IBM Analytics Engine インスタンスをプロビジョンし、そのインスタンス内のすべてのアプリケーションがエラーでログに記録されるようにログ・レベルを構成するシナリオを検討します。
-
以下の構成をデフォルトの Spark 構成として設定します。
- ae.spark.driver.log.level = エラー
- ae.spark.executor.log.level = エラー
デフォルトの Spark 構成を設定すると、インスタンスにサブミットされたすべてのアプリケーションのログ・レベルが
ERRORに設定されます (サブミット時にアプリケーション・ペイロードで Spark 構成が指定されていない場合)。
ジョブ・レベルでのログ・レベル Spark 構成の設定: このサンプル・ユース・ケースでは、アプリケーションがあり、ログが INFO レベルでログに記録されるようにログ・レベルが構成されているシナリオを検討しています。 ペイロードで Spark 構成を指定できます。 以下のサンプル・ペイロードについて考えてみます。
{
"application_details": {
"application": "cos://<application-bucket-name>.<cos-reference-name>/my_spark_application.py",
"arguments": ["arg1", "arg2"],
"conf": {
"spark.hadoop.fs.cos.<cos-reference-name>.endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
"spark.hadoop.fs.cos.<cos-reference-name>.access.key": "<access_key>",
"spark.hadoop.fs.cos.<cos-reference-name>.secret.key": "<secret_key>",
"spark.app.name": "MySparkApp",
"ae.spark.driver.log.level":"INFO",
"ae.spark.executor.log.level":"INFO",
}
}
}
サンプル・ユース・ケース では、Spark アプリケーションは、インスタンス・レベルで設定されたログ・レベルの Spark 構成 (ERROR から INFO) をオーバーライドします。