このトピックでは、Simple Log Service を使用して Spark ジョブのログを収集する方法について説明します。
前提条件
EMR on ACK コンソールで Spark クラスターを作成済みであること。 詳細については、「EMR on ACK の使用開始」をご参照ください。
Simple Log Service (SLS) を有効化済みであること。 詳細については、「クイックスタート: Logtail を使用した ECS テキストログの収集と分析」をご参照ください。
手順
Simple Log Service の Logtail コンポーネントを有効にします。 詳細については、「ACK クラスターからコンテナーログを収集する」をご参照ください。
説明Simple Log Service の Logtail コンポーネントがすでに有効になっている場合は、このステップをスキップしてステップ 2 に進みます。
Simple Log Service のプロジェクトコンソールに移動します。
[クラスターリスト] ページで、対象クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。
[基本情報] ページの [クラスターリソース] エリアで、[Log Service プロジェクト] 行のリンクをクリックします。
プロジェクトコンソールが開きます。
[Logstores] タブで、2 つの Logstore を作成します。
この例では、2 つの Logstore に spark-driver-log と spark-executor-log という名前を付けます。 Logstore の作成方法の詳細については、「1. プロジェクトと Logstore の作成」をご参照ください。
spark-driver-log Logstore で、次の操作を実行します。
Logtail 構成を作成します。 データソースには、Kubernetes - 標準出力を選択します。 構成中に、既存の Kubernetes マシングループを選択します。
で既存の Kubernetes マシングループを選択します。
エディターモードに切り替えて、次の内容を入力します。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-driver" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }
spark-executor-log Logstore で、ステップ 4 の操作を繰り返しますが、次の内容を入力します。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-executor" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }Logstore のインデックスを有効にします。 詳細については、「インデックスの作成」をご参照ください。
これらのステップを完了すると、SLS でジョブログをクエリできます。