Cloud Dataproc クラスタの診断

ログと構成情報は、クラスタやジョブのトラブルシューティングに役立ちます。ただし、ログファイルと構成ファイルは数が多く、調べるために各ファイルを収集するには時間がかかります。この問題に対処するため、Cloud Dataproc クラスタでは Cloud SDK を介して特別な diagnose コマンドをサポートしています。このコマンドによって、重要なシステム、Spark、Hadoop、Cloud Dataproc のログが収集されてアーカイブが作成され、クラスタに接続された Cloud Storage バケットにアーカイブがアップロードされます。

診断コマンドの使用

Cloud SDK の diagnose コマンドは Cloud Dataproc クラスタで使用できます(Cloud Dataproc および Cloud SDK をご覧ください)。

Cloud SDK をインストールして構成すると、次に示すようにクラスタで gcloud dataproc clusters diagnose コマンドを実行できます。cluster-name はクラスタの名前に、region はクラスタのリージョンに(例: --region=us-central1)それぞれ置き換えます。

gcloud dataproc clusters diagnose cluster-name \
    --region=region \
    ... other args ...

このコマンドにより、データが格納されたアーカイブの名前と場所が出力されます。

...
Saving archive to cloud
Copying file:///tmp/tmp.FgWEq3f2DJ/diagnostic.tar ...
Uploading   ...23db9-762e-4593-8a5a-f4abd75527e6/diagnostic.tar ...
Diagnostic results saved in:
gs://bucket-name/.../cluster-uuid/.../job-id/diagnostic.tar
    ...
この例では、bucket-name はクラスタに接続された Cloud Storage バケット、cluster-uuid はクラスタの一意の ID(UUID)、job-id は diagnose コマンドを実行したシステムタスクに属する UUID です。

Cloud Dataproc クラスタを作成すると、自動的に Cloud Storage バケットが作成され、クラスタに関連付けられます。診断コマンドにより、このバケットにアーカイブ ファイルが出力されます。Cloud Dataproc によって作成されたバケットの名前を確認するには、Cloud SDK の clusters describe コマンドを使用します。クラスタに関連付けられたバケットが configurationBucket の横に表示されます。

gcloud dataproc clusters describe cluster-name
  clusterName: cluster-name
  clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec6e0eac
  configuration:
  configurationBucket: dataproc-edc9d85f-12f9-4905-ba4c-eaa8dfac5824-us
  ...

診断で収集されたデータの共有

diagnose コマンドで生成されたアーカイブを共有するには、次の 2 通りの方法があります。

  1. Cloud Storage からファイルをダウンロードし、ダウンロードしたアーカイブを共有します。
  2. 他の Google Cloud Platform ユーザーやプロジェクトにファイルへのアクセスを許可するようにアーカイブの権限を変更します

たとえば、次のコマンドでは test-project の診断アーカイブに読み取り権限が追加されます。

gsutil -m acl ch -g test-project:R path-to-archive

診断コマンドの出力に含まれる項目

diagnose コマンドでは、クラスタの次の設定ファイル、ログ、出力がアーカイブ ファイルに格納されます。上記のように、アーカイブ ファイルは Cloud Dataproc クラスタに関連付けられた Cloud Storage バケットに配置されます。

デーモンと状態情報

実行されるコマンド アーカイブ内の場所
yarn node -list -all /system/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning /system/hdfs-nodes.log
service --status-all /system/service.log
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 内のすべてのログ:
gcs
google
gcdp
hadoop
hdfs
hive
spark
syslog
yarn
ファイルはアーカイブの logs フォルダに配置され、元のファイル名が保持されます。
クラスタ内の各ノード(マスターとワーカー)の Cloud Dataproc ノード起動ログ。 ファイルはアーカイブの node_startup フォルダに配置されます。このフォルダには、クラスタ内のマシンごとに個別のサブフォルダが格納されています。

構成ファイル

含まれる項目 アーカイブ内の場所
/etc/hadoop/conf/ 内のすべてのファイル ファイルはアーカイブの hadoop_conf フォルダに配置され、元のファイル名が保持されます。