1

以下のコマンドを使用して、Data proc クラスタを作成しています。

gcloud dataproc clusters create informetis-dev --initialization-actions “gs://dataproc-initialization-actions/jupyter/jupyter.sh,gs://dataproc-initialization-actions/cloud-sql-proxy/cloud-sql-proxy .sh,gs://dataproc-initialization-actions/hue/hue.sh,gs://dataproc-initialization-actions/ipython-notebook/ipython.sh,gs://dataproc-initialization-actions/tez/tez .sh,gs://dataproc-initialization-actions/oozie/oozie.sh,gs://dataproc-initialization-actions/zeppelin/zeppelin.sh,gs://dataproc-initialization-actions/user-environment/user -environment.sh,gs://dataproc-initialization-actions/list-consistency-cache/shared-list-consistency-cache.sh,gs://dataproc-initialization-actions/kafka/kafka.sh,gs:/ /dataproc-initialization-actions/ganglia/ganglia.sh,gs://dataproc-initialization-actions/flink/flink.sh」 --image-version 1.1 --master-boot-disk-size 100GB --master-machine-type n1-standard-1 --metadata "hive-metastore-instance=g-test-1022:asia-east1:db_instance" --num-preemptible -workers 2 --num-workers 2 --preemptible-worker-boot-disk-size 1TB --properties hive:hive.metastore.warehouse.dir=gs://informetis-dev/hive-warehouse --worker-machine -type n1-standard-2 --zone asia-east1-b --bucket info-dev

しかし、Dataproc は失敗ファイルに次のエラーがあり、クラスタを作成できませんでした:

cat + mysql -u hive -phive-password -e '' エラー 2003 (HY000): 'localhost' (111) で MySQL サーバーに接続できません + mysql -e 'CREATE USER '\''hive'\'' '\''hive-password'\'';' によって識別されます。エラー 2003 (HY000): 'localhost' 上の MySQL サーバーに接続できません (111)

誰かがこの失敗の背後にある考えを持っていますか?

4

3 に答える 3

2

初期化アクションのドキュメント--scopes sql-adminに記載されているフラグが欠落しているようです。これにより、CloudSQL プロキシが CloudSQL インスタンスへのトンネルを承認できなくなります。

さらに、スコープだけでなく、CloudSQL インスタンスを保持するプロジェクトで、デフォルトの Compute Engine サービス アカウントに適切なプロジェクト レベルの権限があることを確認する必要があります。通常、デフォルトのサービス アカウントはproject editorGCE プロジェクト内にあるため、同じプロジェクト内の CloudSQL インスタンスにアクセスするスコープと組み合わせると十分なはずsql-adminですが、別のプロジェクト内の CloudSQL インスタンスにアクセスしている場合は、 CloudSQL インスタンスを所有するプロジェクトで、そのサービス アカウントをプロジェクト エディターとして追加する必要があります。

デフォルトのコンピューティング サービス アカウントのメールアドレスは、Dataproc クラスタをデプロイするプロジェクトのIAM ページで「Compute Engine のデフォルト サービス アカウント」という名前で見つけることができます。<number>@project.gserviceaccount.com`のようになります。

于 2016-10-11T22:07:28.163 に答える
0

このようなもので Cloud SQL インスタンスを既に作成していると思いますよね?

gcloud sql instances create g-test-1022 \
  --tier db-n1-standard-1 \
  --activation-policy=ALWAYS

その場合、メタデータの引数のフォーマット方法にエラーがあるようです。あなたはこれを持っています:

--metadata "hive-metastore-instance=g-test-1022:asia-east1:db_instance”

残念ながら、ゾーンは (asia-east1ではなくasia-east1-b) 不完全なようです。

さらに、多くの初期化アクションを実行する場合は、かなり寛大な初期化アクションのタイムアウトを提供して、アクションのインストールに時間がかかる間、クラスターが何かが失敗したと見なさないようにする必要があります。次のように指定することで、これを行うことができます。

--initialization-action-timeout 30m

これにより、クラスターは初期化アクションのブートストラップに 30 分を与えることができます。

于 2016-10-11T19:25:12.747 に答える