Google Dataflow - Как указать TextIO в java при записи на предварительный сервер? - PullRequest
0 голосов
/ 14 сентября 2018

Google Dataflow - Как указать TextIO при записи на предварительный сервер из Dataflow? (При условии, что сервер On-prem подключен к GCP с помощью Cloud VPN)

pipeline.apply("Writer",TextIO.write().to("XXX.XXX.XXX.XXX://tmp/somedirectory/somefilename");

Работает ли предоставление локального IP-адреса и каталога, как описано выше, при запуске задания потока данных? Я попытался, и работа была успешно завершена с элементами, добавленными в сводку шагов, но я не вижу файлов, записанных на предварительном сервере. [Не уверен, имеет ли это какое-либо отношение к аутентификации на локальном сервере]

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Apache beam textio требует, чтобы файловая система была указана с префиксом схемы, например, file: // gs: // hdfs: //.без чего-либо из этого я считаю, что по умолчанию это локальный файл.

https://cloud.google.com/blog/products/data-analytics/review-of-input-streaming-connectors-for-apache-beam-and-apache-spark

Поэтому, учитывая, что указанное вами «имя файла» не имеет схемы, я подозреваю, что оно будет записано влокальный диск рабочих, который не очень полезен!

Итак, как подсказывает @ajp, вам нужно написать, например, в GCS, а затем заставить ваш предварительный сервер читать из GCS.- возможно, вы можете использовать сообщение pub / sub как сигнал локальному серверу, что результаты готовы

0 голосов
/ 04 января 2019

Использование IP-адреса и пути таким образом не будет работать с TextIO , оно будет работать только с путем к файлу, если вы запускаете конвейер локально.

Для удаленной передачи файлов на локальный сервер из Cloud Dataflow лучше всего сначала записать файлы в корзину Cloud Storage, например:

pipeline.apply(TextIO.Write.named("WriteFilesOnPremise")
   .to("gs://myPipelineBucket/onPremiseFiles")

Затем либо напрямую загружайте файлы из корзины в локальную файловую систему с локальной консоли с помощью команды gsutil , либо программно с помощью Cloud Storage Client Library , либо вы может смонтировать корзину как файловую систему с Cloud Storage FUSE в вашей локальной системе.

...