Dataproc の診断クラスタ コマンド

「Dataproc クラスタ コマンドの診断の概要 | Google Cloud」

gcloud dataproc clusters diagnose コマンドを実行して、システム、Spark、Hadoop、Dataproc のログ、クラスタ構成ファイル、その他の情報を収集し、検証を行うことや、Google サポートに報告して Dataproc クラスタまたはジョブのトラブルシューティングに役立てることができます。このコマンドは、Cloud Storage の Dataproc ステージング バケット診断データと概要をアップロードします。

Google Cloud CLI の診断クラスタコマンドを実行する

診断アーカイブ ファイルの場所を作成して出力するには、gcloud dataproc clusters diagnose コマンドを実行します。

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    OPTIONAL FLAGS ...

メモ:

  • CLUSTER_NAME: 診断するクラスタの名前。
  • REGION: クラスタのリージョン(例: us-central1)。
  • OPTIONAL FLAGS:

    • --job-ids: このフラグを使用すると、デフォルトのログファイル(特定のジョブ ID のカンマ区切りのリスト用)に加えて、ジョブドライバ、Spark イベント、YARN アプリケーション、Spark Lense の出力ログを収集できます。MapReduce ジョブの場合、YARN アプリケーション ログのみが収集されます。YARN アプリケーション ログの収集のために、YARN ログ集計を有効にする必要があります。

    • --yarn-application-ids: このフラグを使用すると、デフォルトのログファイル(特定の YARN アプリケーション ID のカンマ区切りのリスト用)に加えて、ジョブドライバ、Spark イベント、YARN アプリケーション、Spark Lense の出力ログを収集できます。YARN アプリケーション ログの収集のために、YARN ログ集計を有効にする必要があります。

    • --start-time: --end-time: 両方のフラグを使用して、診断データの収集の時間範囲を %Y-%m-%dT%H:%M:%S.%fZ 形式で指定します。期間を指定すると、その期間の Dataproc の自動スケーリング ログを収集することもできます(デフォルトでは、診断データには Dataproc の自動スケーリングログが収集されません)。

    • --tarball-accessGOOGLE_DATAPROC_DIAGNOSE 診断 tar ファイルを Google Cloud サポートチームに送信するか、アクセス権を提供するには、このフラグを使用します。また、Google Cloud サポートチームに次のように情報を提供してください。

      • 診断 tar ファイルの Cloud Storage パス、または
      • クラスタ構成バケット、クラスタ UUID、診断コマンドのオペレーション ID

クラスタ マスターノードから診断スクリプトを実行する(必要な場合)

クラスタがエラー状態であり、Dataproc サーバーからの診断タスクを受け入れられない場合は、gcloud dataproc clusters diagnose コマンドが失敗するか、タイムアウトする可能性があります。診断コマンドを実行する代わりに、SSH を使用してクラスタ マスターノードに接続し、診断スクリプトをダウンロードして、マスターノードでスクリプトをローカルに実行することもできます。

gcloud compute ssh HOSTNAME
gsutil cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh

診断アーカイブ tar ファイルはローカル ディレクトリに保存されます。コマンド出力には、tar ファイルの場所と Cloud Storage バケットへのアップロード方法に関する手順が tar ファイルの場所とともに一覧表示されます。

診断データを共有する方法

アーカイブを共有するには:

例: 次のコマンドは、test-project でアーカイブに読み取り権限を追加します。

gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}

診断の概要とアーカイブの内容

diagnose コマンドは、診断の概要と、クラスタ構成ファイル、ログ、その他のファイルと情報を含むアーカイブ tar ファイルを出力します。アーカイブ tar ファイルは、Cloud Storage の Dataproc ステージング バケットに書き込まれます。

診断の概要:診断スクリプトは、収集されたデータを分析し、診断アーカイブのルートに summary.txt を生成します。この概要には、YARN、HDFS、ディスク、ネットワーク ステータスなどのクラスタのステータスの概要が表示され、潜在的な問題を知らせる警告が表示されます。

Archive tar ファイル: 以降のセクションでは、診断アーカイブ tar ファイルに含まれるファイルと情報を一覧表示します。

デーモンとサービスの情報

実行されるコマンド アーカイブ内の場所
yarn node -list -all /system/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning /system/hdfs-nodes.log
hdfs dfs -du -h /system/hdfs-du.log
service --status-all /system/service.log
systemctl --type service /system/systemd-services.log
curl "http://${HOSTNAME}:8088/jmx" /metrics/resource_manager_jmx
curl "http://${HOSTNAME}:8088/ws/v1/cluster/apps" /metrics/yarn_app_info
curl "http://${HOSTNAME}:8088/ws/v1/cluster/nodes" /metrics/yarn_node_info
curl "http://${HOSTNAME}:9870/jmx" /metrics/namenode_jmx

JVM の情報

実行されるコマンド アーカイブ内の場所
jstack -l "${DATAPROC_AGENT_PID}" jstack/agent_${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTO_PID}" jstack/agent_${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVER_PID}" jstack/driver_${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENT_PID}" jinfo/agent_${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTO_PID}" jinfo/agent_${PRESTO_PID}.jstack
jinfo "${JOB_DRIVER_PID}" jinfo/agent_${JOB_DRIVER_PID}.jstack

Linux システムの情報

実行されるコマンド アーカイブ内の場所
df -h /system/df.log
ps aux /system/ps.log
free -m /system/free.log
netstat -anp /system/netstat.log
sysctl -a /system/sysctl.log
uptime /system/uptime.log
cat /proc/sys/fs/file-nr /system/fs-file-nr.log
ping -c 1 /system/cluster-ping.log

ログファイル

含まれる項目 アーカイブ内の場所
ファイル名に次の接頭辞が付いた /var/log のすべてのログ:
cloud-sql-proxy
dataproc
druid
gcdp
google
hadoop
hdfs
hive
knox
presto
spark
syslog
yarn
zookeeper
ファイルはアーカイブの logs フォルダに配置され、元のファイル名が保持されます。
クラスタ内の各ノード(マスターとワーカー)の Dataproc ノード起動ログ。 ファイルはアーカイブの node_startup フォルダに配置されます。このフォルダには、クラスタ内のマシンごとに個別のサブフォルダが含まれています。
journalctl -u google-dataproc-component-gateway からのコンポーネント ゲートウェイのログ /logs/google-dataproc-component-gateway.log

構成ファイル

含まれる項目 アーカイブ内の場所
VM メタデータ /conf/dataproc/metadata
/etc/environment の環境変数 /conf/dataproc/environment
Dataproc のプロパティ /conf/dataproc/dataproc.properties
/etc/google-dataproc/ 内のすべてのファイル。 /conf/dataproc/
/etc/hadoop/conf/ 内のすべてのファイル。 /conf/hadoop/
/etc/hive/conf/ 内のすべてのファイル。 /conf/hive/
/etc/hive-hcatalog/conf/ 内のすべてのファイル。 /conf/hive-hcatalog/
/etc/knox/conf/ 内のすべてのファイル。 /conf/knox/
/etc/pig/conf/ 内のすべてのファイル。 /conf/pig/
/etc/presto/conf/ 内のすべてのファイル。 /conf/presto/
/etc/spark/conf/ 内のすべてのファイル。 /conf/spark/
/etc/tez/conf/ 内のすべてのファイル。 /conf/tez/
/etc/zookeeper/conf/ 内のすべてのファイル。 /conf/zookeeper/