首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提交有关dataproc的Presto作业

提交有关dataproc的Presto作业
EN

Stack Overflow用户
提问于 2019-08-27 09:50:31
回答 1查看 282关注 0票数 3

我试图在运行Presto的集群上提交一个带有postgresql连接器的dataproc作业。

集群被初始化如下:

代码语言:javascript
复制
gcloud beta dataproc clusters create ${CLUSTER_NAME} \
    --project=${PROJECT} \
    --region=${REGION} \
    --zone=${ZONE} \
    --bucket=${BUCKET_NAME} \
    --num-workers=${WORKERS} \
    --scopes=cloud-platform \
    --initialization-actions=${INIT_ACTION}

${INIT_ACTION}指向带有初始化操作的bash文件,该文件用于使用postgresql启动预置群集。

我做了而不是使用--optional-components=PRESTO,因为我需要--initialization-actions来执行非默认操作。同时拥有--optional-component--initialization-actions也不起作用。

当我尝试运行一个简单的任务时:

代码语言:javascript
复制
gcloud beta dataproc jobs submit presto \
  --cluster ${CLUSTER_NAME} \
  --region ${REGION} \
      -e "SHOW TABLES"

我得到以下错误:

代码语言:javascript
复制
ERROR: (gcloud.beta.dataproc.jobs.submit.presto) FAILED_PRECONDITION: Cluster 
'<cluster-name>' requires optional component PRESTO to run PRESTO jobs

还有其他方法来定义集群上的可选组件吗?

更新:

同时使用--optional-component--initialization-actions,如:

代码语言:javascript
复制
gcloud beta dataproc clusters create ${CLUSTER_NAME} \
    ...
    --scopes=cloud-platform \
    --optional-components=PRESTO \
    --image-version=1.3 \
    --initialization-actions=${INIT_ACTION} \
    --metadata ...

${INIT_ACTION}是从这个存储库复制的。只要稍微修改一下函数configure_connectors,就可以创建postgresql连接器。

在运行create群集时,会出现以下错误:

代码语言:javascript
复制
ERROR: (gcloud.beta.dataproc.clusters.create) Operation [projects/...] failed: Initialization action failed. Failed action 'gs://.../presto_config.sh', see output in: gs://.../dataproc-initialization-script-0_output.

错误输出记录为:

代码语言:javascript
复制
+ presto '--execute=select * from system.runtime.nodes;'
Error running command: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:8080

这让我相信我必须重写初始化脚本。

当我指定--optional-components=PRESTO时,最好知道哪个初始化脚本正在运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-31 01:19:30

如果您只想设置一个可选组件来使用Postgres端点,那么编写一个可选组件就很容易了。您只需添加目录文件并重新启动presto即可。

https://gist.github.com/KoopaKing/8e653e0c8d095323904946045c5fa4c2

是一个示例init动作。我已经用presto可选组件成功地测试了它,但它非常简单。你可以自由地拿出这个例子,并在你的GCS桶中分阶段。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57672011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档