如何在Dataproc中将GCS存储桶用作Oozie的工作流文件源

时间:2020-04-15 16:16:35

标签: google-cloud-platform oozie google-cloud-dataproc oozie-workflow

我们正在将EMR集群迁移到Dataproc,并且依靠Oozie来运行我们的工作流程。第一个挑战是如何从Cloud Storage存储桶中加载workflow.xml。我们曾经使用S3来做到这一点:

oozie.coord.application.path=s3://my_workflow/workflows/daily

尝试在GCS上使用相同的方法根本不起作用

oozie.coord.application.path=gs://my_workflow/workflows/daily

当我尝试运行Oozie作业时,出现此错误:

gs URI scheme not supported

我是否必须在Oozie上手动配置方案?我正在使用Dataproc initialization action来部署Oozie。

1 个答案:

答案 0 :(得分:2)

我转载了您的问题。看来Oozie初始化操作尚不支持从GCS加载工作流。我认为您可以为init动作提交错误,但是现在您可能必须将文件放入HDFS。

关于此修复程序,它需要:

1)在/etc/oozie/conf/oozie-site.xml中,添加

<property>
  <name>oozie.service.HadoopAccessorService.supported.filesystems</name>     
   <value>hdfs,gs</value>
   <decscription>...</decscription>
</property>

2)在/etc/oozie/conf/hadoop-conf/core-site.xml中,添加

<property>
  <name>fs.AbstractFileSystem.gs.impl</name>
  <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
  <description>The AbstractFileSystem for gs: uris.</description>
</property>
<property>
  <name>google.cloud.auth.service.account.enable</name>
  <value>false</value>
  <description>
    Whether to use a service account for GCS authorization.
    Setting this property to `false` will disable use of service accounts for
    authentication.
  </description>
</property>

3)将gcs-connector.jar/usr/lib/hadoop/lib/复制到/usr/lib/oozie/lib

4)使用

重新启动Ooozie服务。
sudo systemctl restart oozie.service