【发布时间】:2020-01-31 15:14:03
【问题描述】:
阅读此 repo 下的说明:Google Cloud Storage and BigQuery connectors 我按照以下初始化操作创建了一个安装了特定版本的 Google Cloud Storage 和 BigQuery 连接器的新 Dataproc 集群:
gcloud beta dataproc clusters create christos-test \
--region europe-west1 \
--subnet <a subnet zone> \
--optional-components=ANACONDA,JUPYTER \
--enable-component-gateway \
--initialization-actions gs://<bucket-name>/init-scripts/v.0.0.1/connectors.sh \
--metadata gcs-connector-version=1.9.16 \
--metadata bigquery-connector-version=0.13.16 \
--zone europe-west1-b \
--master-machine-type n1-standard-4 \
--worker-boot-disk-size 500 \
--image=<an-image> \
--project=<a-project-id> \
--service-account=composer-dev@vf-eng-ca-nonlive.iam.gserviceaccount.com \
--no-address \
--max-age=5h \
--max-idle=1h \
--labels=<owner>=christos,<team>=group \
--tags=allow-internal-dataproc-dev,allow-ssh-from-management-zone,allow-ssh-from-management-zone2 \
--properties=core:fs.gs.implicit.dir.repair.enable=false
正如您应该看到的,我必须将外部依赖项添加到我自己的存储桶中:gs://init-dependencies-big-20824/init-scripts/v.0.0.1/connectors.sh。根据 scipt 的说明(我指的是connector.sh 脚本),我还必须在这个桶中添加以下罐子:
- gcs-connector-hadoop2-1.9.16.jar
- gcs-connector-1.7.0-hadoop2.jar
- gcs-connector-1.8.0-hadoop2.jar
- bigquery-connector-hadoop2-0.13.16.jar
脚本运行正常,集群创建成功。但是,通过Jupyter 使用PySpark 笔记本仍然会导致BigQuery“找不到类”异常。当我直接从终端运行PySpark 时也会发生同样的情况。我能够避免该异常的唯一方法是在我的集群的主节点中复制另一个jar(这次是spark-bigquery_2.11-0.8.1-beta-shaded.jar)并以以下方式启动PySpark:
pyspark --jars spark-bigquery_2.11-0.8.1-beta-shaded.jar
显然,这超出了目的。
我做错了什么?我考虑过更改connector.sh 脚本以包含另一个copy 函数,因此将spark-bigquery_2.11-0.8.1-beta-shaded.jar 复制到/usr/lib/hadoop/lib 下,所以我尝试手动复制此jar 并启动PySpark,但这仍然不起作用...
【问题讨论】:
标签: apache-spark pyspark google-cloud-dataproc