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
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
診断アーカイブの tar ファイルはローカル ディレクトリに保存されます。コマンドの出力には、tar ファイルを Cloud Storage バケットにアップロードする方法の説明と tar ファイルの場所が表示されます。
診断データの共有方法
アーカイブを共有するには:
- Cloud Storage からアーカイブをダウンロードし、ダウンロードしたアーカイブを共有します。または
- 他の Google Cloud ユーザーやプロジェクトにファイルへのアクセスを許可するようにアーカイブの権限を変更します。
例: 次のコマンドは、ユーザー jane@gmail.com
のアーカイブに読み取り権限を追加します。
gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=user-jane@gmail.com,role=roles/storage.legacyObjectReader
診断の概要とアーカイブ コンテンツ
diagnose
コマンドは、診断概要と、クラスタ構成ファイル、ログ、その他のファイルと情報を含むアーカイブ tar ファイルを出力します。アーカイブ tar ファイルは Cloud Storage の Dataproc ステージング バケットに書き込まれます。
診断概要: 診断スクリプトは収集したデータを分析し、診断アーカイブのルートに summary.txt
を生成します。この概要には、YARN、HDFS、ディスク、ネットワーク ステータスなどのクラスタのステータスの概要と、潜在的な問題を警告する警告が表示されます。
アーカイブ 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/ |