我已经创建了2个数据处理集群。要求是使用1个配置单元存储,并且两个集群都可以访问。第一个是具有--scopes = sql-admin的ETL集群,第二个是ML用户--scopes = cloud-platform的ETL集群。使用ETL集群创建的数据库和表不能被ML集群访问。如果必须在每个群集中添加--scopes = sql-admin,可以提供任何帮助。
ETL群集创建命令:
gcloud dataproc clusters create amlgcbuatbi-report \
> --project=${PROJECT} \
> --master-machine-type n1-standard-1 --worker-machine-type n1-standard-1 --master-boot-disk-size 50 --worker-boot-disk-size 50 \
> --zone=${ZONE} \
> --num-workers=${WORKERS} \
> --scopes=sql-admin \
> --image-version=1.3 \
> --initialization-actions=gs://dataproc-initialization-actions/cloud-sql-proxy/cloud-sql-proxy.sh \
> --properties=hive:hive.metastore.warehouse.dir=gs://gftat/data \
> --metadata="hive-metastore-instance=$PROJECT:$REGION:metaore-dev001"
输出:
0: jdbc:hive2://localhost:10000/default> show databases;
+------------------+
| database_name |
+------------------+
| default |
| gcb_dw |
| l1_gcb_trxn_raw |
+------------------+
ML群集创建命令:
gcloud dataproc clusters create amlgcbuatbi-ml \
> --project=${PROJECT} \
> --master-machine-type n1-standard-1 --worker-machine-type n1-standard-1 --master-boot-disk-size 50 --worker-boot-disk-size 50 \
> --zone=${ZONE} \
> --num-workers=${WORKERS} \
> --scopes=cloud-platform \
> --image-version=1.3 \
> --optional-components=PRESTO \
> --initialization-actions=gs://dataproc-initialization-actions/cloud-sql-proxy/cloud-sql-proxy.sh \
> --initialization-actions=gs://dataproc-initialization-actions/presto/presto.sh \
> --metadata="hive-metastore-instance=$PROJECT:$REGION:metaore-dev001"
输出:在这里我看不到数据库和表。
0: jdbc:hive2://localhost:10000/default> show databases;
+----------------+
| database_name |
+----------------+
| default |
+----------------+
--initialization-actions
标志需要用逗号分隔的列表,而不是重复该标志以将多个初始化操作附加到列表。尝试
--initialization-actions=gs://dataproc-initialization-actions/cloud-sql-proxy/cloud-sql-proxy.sh,gs://dataproc-initialization-actions/presto/presto.sh
而不是两个单独的--initialization-actions
标志。