【问题标题】:Google Dataproc Agent reports failure when using initialization scriptGoogle Dataproc 代理在使用初始化脚本时报告失败
【发布时间】:2015-09-28 14:54:42
【问题描述】:

我正在尝试使用初始化脚本设置集群,但出现以下错误: [错误的 JSON:JSON 解析错误:意外的标识符“Google”] 在日志文件夹中,初始化脚本输出日志不存在。 这似乎很奇怪,因为它似乎在过去一周工作,并且错误消息似乎与 init 脚本无关,而是与集群创建的输入参数有关。我使用了以下命令:

gcloud beta dataproc clusters create <clustername> --bucket <bucket> --zone <zone> --master-machine-type n1-standard-1 --master-boot-disk-size 10 --num-workers 2 --worker-machine-type n1-standard-1 --worker-boot-disk-size 10 --project <projectname> --initialization-actions <gcs-uri of script>

【问题讨论】:

  • 初始化脚本是否存在于项目无法访问的存储桶中?

标签: google-cloud-dataproc


【解决方案1】:

明显变了

#!/bin/sh 

#!/bin/bash

删除所有出现的“sudo”就可以了。

【讨论】:

    【解决方案2】:

    当初始化脚本位于运行集群的项目无权访问的 Cloud Storage (GCS) 存储桶中时,最常发生此特定错误。

    我建议仔细检查正在用于集群的项目是否具有对存储桶的读取权限。

    【讨论】:

    • 这不是问题,因为我使用以下命令:gcloud beta dataproc clusters create &lt;clustername&gt; --bucket &lt;bucketname&gt; --initialization-actions gs://&lt;bucketname&gt;/testinit.sh ... 即使脚本包含简单的 echo 命令,它仍然会失败。
    • 无论脚本多么简单,如果权限不起作用,您都会看到此错误。 :) 只是检查一下,权限不是问题,对吗?
    • 集群可以访问存储桶,因为它与用于创建集群的存储桶相同。创建集群后(有给定错误),我可以通过 ssh 从集群访问存储桶。我可以将文件从存储桶复制到集群。
    • 能否请您向我们发送一些集群中的日志?如果您同意,请尝试运行gcloud beta dataproc clusters diagnose my-cluster,其中my-cluster 是您的集群名称?您将获得一个文件位置 - 将其发送给我们 dataproc-feedback@google.com - 您还需要通过运行 gsutil -m acl ch -u google.com:R "&lt;path-to-file-in-bucket&gt;" 向我们 (Google) 授予权限
    • @James,我如何检查存储桶权限?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    相关资源
    最近更新 更多