1

我正在使用以下命令创建数据 proc 集群:

gcloud dataproc 集群创建 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 '' ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (111) + mysql -e 'CREATE USER '\''hive'\''由 '\''hive-password'\'';' 识别 错误 2003 (HY000): 无法连接到“本地主机”上的 MySQL 服务器 (111)

有没有人知道这个失败背后的想法?

4

3 回答 3

2

看起来您缺少初始化操作文档--scopes sql-admin中所述的标志,这将阻止 CloudSQL 代理能够授权其隧道进入您的 CloudSQL 实例。

此外,除了范围之外,您还需要确保默认的 Compute Engine 服务帐户在拥有您的 CloudSQL 实例的任何项目中都具有正确的项目级权限。通常,默认服务帐户是project editorGCE 项目中的一个,因此当与范围结合以访问同一项目中的 CloudSQL 实例时应该足够了sql-admin,但是如果您正在访问单独项目中的 CloudSQL 实例,您还将必须将该服务帐户添加为拥有 CloudSQL 实例的项目中的项目编辑器。

您可以在部署 Dataproc 集群的项目的IAM 页面下找到默认计算服务帐户的电子邮件地址,名称为“Compute Engine 默认服务帐户”;它应该类似于<number>@project.gserviceaccount.com`。

于 2016-10-11T22:07:28.163 回答
0

到您报告时,已检测到cloud sql 代理初始化操作存在问题。很可能是这样的问题影响了你。

如今,这应该不是问题。

于 2018-12-13T01:00:01.053 回答
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 回答