当前位置: 首页 > 知识库问答 >
问题:

使用Spark BigQuery连接器旋转Dataproc集群

徐佐
2023-03-14

阅读此repo:Google Cloud Storage和BigQuery connectors下的说明,我按照以下初始化操作创建了一个新的Dataproc集群,其中安装了特定版本的Google Cloud Storage和BigQuery connector:

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。含蓄的迪尔。修理启用=错误

正如您应该能够看到的,我必须将外部依赖项添加到我自己的桶中:gs://init-依赖项-big-20824/init-cript/v.0.0.1/connectors.sh。根据senct的说明(我指的是connector.sh脚本),我还必须在这个桶中添加以下jars:

  • gcs-connector-hadoop2-1.9.16。罐子
  • gcs-connector-1.7.0-hadoop2。罐子
  • gcs-connector-1.8.0-hadoop2。罐子
  • bigquery-connector-hadoop2-0.13.16。罐子

脚本工作正常,集群创建成功。但是,通过Jupyter使用PySpark笔记本仍然会导致BigQuery“未找到类”异常。当我直接从终端运行PySpark时也会发生同样的情况。我能够避免该异常的唯一方法是在集群的主节点中复制另一个jar(这次是spark-bigquery\u 2.11-0.8.1-beta-shaded.jar),并使用以下命令启动PySpark

pyspark --jars spark-bigquery_2.11-0.8.1-beta-shaded.jar

显然,这超出了目的。

我做错了什么?我考虑改变connector.sh脚本,以包括另一个复制函数,所以在/usr/lib/hadoop/lib下复制spark-bigquery_2.11-0.8.1-beta-shaded.jar,所以我试着复制这个jar在那里手动并启动PySpark,但这仍然不起作用...

共有2个答案

呼延学
2023-03-14

使用包含依赖项的Google公共火花库

--jars "gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar

或者

--jars "gs://spark-lib/bigquery/spark-bigquery-latest.jar

取决于Dataproc集群部署时使用的Scala版本

这对我来说很好用。

毕嘉
2023-03-14

连接器初始化操作仅适用于GoogleCloudDataproc/Hadoop连接器中的Hadoop云存储和BigQuery连接器。

如果使用Spark,通常不应该使用BigQuery connector for Hadoop,因为Spark BigQuery connector存储库中有更新的BigQuery connector for Spark,您已经使用--jars参数添加了它。

要在群集创建期间安装Spark BigQuery连接器,您需要编写自己的初始化操作,将其复制到群集节点上的/usr/lib/火花/jars/目录中。请注意,您不需要复制连接器初始化操作中的所有代码,只需将Spark BigQuery连接器阴影罐从您的云存储桶复制到/usr/lib/Spark/jars/目录:

gsutil cp gs://path/to/spark-bigquery-connector.jar /usr/lib/spark/jars/

更好的方法可能是将Spark BigQuery连接器与其他依赖项一起嵌入到应用程序发行版中。

连接器初始化操作现在支持Spark BigQuery连接器,并可用于在群集创建期间在Dataproc群集上安装Spark BigQuery连接器:

REGION=<region>
CLUSTER_NAME=<cluster_name>
gcloud dataproc clusters create ${CLUSTER_NAME} \
    --region ${REGION} \
    --initialization-actions gs://goog-dataproc-initialization-actions-${REGION}/connectors/connectors.sh \
    --metadata spark-bigquery-connector-version=0.15.1-beta
 类似资料:
  • 有一个简单的JS代码,可以呈现非常基本的Mandelbrot分形。 任务是沿其轴以随机角度旋转此分形。它不应该是画布旋转或它的图像数据,但我必须调整初始的分形公式来做到这一点。 例如,如果角度为45度或以弧度为单位的PI/4,则输出应如下所示 我试过玩没有任何成功。

  • 问题内容: 我正在创建跨浏览器兼容的旋转(ie9+),并且在jsfiddle中有以下代码 CSS和HTML非常简单,仅用于演示: 使用时旋转有效,但使用时无效; 为什么会这样,有没有办法解决? 谢谢。 问题答案: CSS转换尚无法与jQuery动画化。您可以执行以下操作: 而且,顺便说一句:您不需要在jQuery 1.7+之前为CSS3转换添加前缀 更新资料 您可以将其包装在jQuery插件中,以

  • 我在Google Cloud DataProc上创建了一个3节点(1个master,2个workers)的Apache Spark集群。当通过ssh与主服务器连接时,我可以向集群提交作业,但是我不能让它远程工作。我找不到任何关于如何做到这一点的文档,除了AWS上的一个类似问题,但这对我不起作用。 以下是我正在尝试的

  • 我刚开始使用PDFBox。我需要的是将图像旋转添加到退出的PDF中!我知道如何添加图像,但我的问题是如何旋转图像!我看到了一些关于AffineTransform和Matrix的信息,但我不知道那是什么以及它是如何工作的! 我真的很感谢通过一些样本代码,并提前感谢你! 致敬

  • 我一直在使用spring integration,我想连接多个ftp服务器来从远程位置检索文件,谁能给我一个好的例子,如何使用spring integration连接多个ftp服务器 先谢谢你,Udeshika

  • 我正在构建一个名为“id”的查询参数,它是一个列表,所以我有类似于localhost:8080/application?id=1 (我知道我的方法不够,我需要写第一个?id=) 方法 我的问题是:为什么我收到这个错误在Collectors.joining(" 我正在使用OpenJDK