Как использовать GCS bucket в качестве источника файла рабочего процесса для Ooz ie в Dataproc - PullRequest
2 голосов
/ 15 апреля 2020

Мы переносим наш кластер EMR в Datapro c, и мы используем Ooz ie для запуска наших рабочих процессов. Первая проблема заключается в том, как загрузить workflow.xml из хранилища Cloud Storage. Мы привыкли делать это, используя S3:

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

Попытка использовать тот же подход в GCS не работает вообще

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

Когда я пытаюсь запустить задание Ooz ie, Я получил эту ошибку:

gs URI scheme not supported

Нужно ли вручную настраивать схему на Ooz ie? Я использую Datapro c действие инициализации для развертывания Ooz ie.

1 Ответ

2 голосов
/ 15 апреля 2020

Я воспроизвел вашу проблему. Кажется, Ooz ie действие init не поддерживает загрузку рабочего процесса. xml из 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 ) Перезапустите сервис Oooz ie с

sudo systemctl restart oozie.service
...