Simple Log Service を使用して、ACK 上の EMR で実行中の Spark ジョブからログを収集およびクエリできます。
前提条件
-
EMR on ACK コンソールで Spark クラスターを作成済みです。詳細については、「EMR on ACK の概要」をご参照ください。
-
Simple Log Service (SLS) を有効化済みです。詳細については、「Logtail を使用した ECS インスタンス上のテキストログの収集と分析」をご参照ください。
操作手順
-
Simple Log Service の Logtail コンポーネントを有効化します。詳細については、「ACK クラスターからのコンテナログの収集」をご参照ください。
説明Logtail がすでに有効化されている場合は、このステップをスキップしてステップ 2 に進んでください。
-
対応する Log Service プロジェクトのコンソールに移動します。
-
Container Service for Kubernetes コンソール にログインします。
-
Clusters ページで、対象のクラスター名をクリックするか、操作 列の Details をクリックします。
-
基本情報 ページの クラスターリソース エリアで、Log Service プロジェクト 行のリンクをクリックします。
対応する Log Service プロジェクトのコンソールが開きます。
-
-
Logstore タブで、2 つの Logstore を作成します。
この例では、2 つの Logstore の名前を spark-driver-log および spark-executor-log とします。詳細については、「Logtail を使用した ECS インスタンス上のテキストログの収集と分析」をご参照ください。
-
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 でジョブログをクエリできるようになります。