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-access
=GOOGLE_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 ファイルの場所とともに一覧表示されます。
診断データを共有する方法
アーカイブを共有するには:
- Cloud Storage からアーカイブをダウンロードし、ダウンロードしたアーカイブを共有します。
- 他の Google Cloud ユーザーやプロジェクトにファイルへのアクセスを許可するようにアーカイブの権限を変更します。
例: 次のコマンドは、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/ |