Доступ к корзине из кластера данных - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь получить доступ к данным, хранящимся в хранилище Google, из кластера Dataproc. Тем не менее, до сих пор, даже если я объявляю мои файлы корзины общедоступными, мои задания завершаются с ошибкой, что файл не существует. Я рассмотрел попытку смонтировать ведро в папку на моих компьютерах кластера. С этой целью я успешно установил пакет gcsfuse в своем скрипте инициализации, и когда я ssh в кластере, я могу успешно использовать gcsfuse для добавления файлов в мою корневую папку. Однако при выходе из ssh моя работа все еще утверждает, что локальная папка не существует. Как я могу решить эту проблему для доступа к файлам в общедоступной корзине из моего кластера Dataproc?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

По моему опыту, если вы отправите свою работу таким образом, файл должен быть доступен внутри вашей работы в Dataproc:

gcloud dataproc jobs submit spark \
--cluster cluster_name \
--region europe-west1 \
--class your_java_class \
--jars your_jars \
--files gs://bucket_name/file_name.csv

Таким образом, код * file_name.csv 'может быть доступен для кода внутри вашей работы, и вам не нужно делать ничего лишнего. Тем не менее, я думаю, что таким образом файлы на самом деле физически копируются на ваши машины. Это работает для меня, так как мне нужны только небольшие файлы. Если вы действительно хотите сохранить файлы в своем хранилище и получить к ним прямой доступ, возможно, лучше использовать подход Hadoop.

Я думаю, что это гораздо проще сделать из сценария, а не из консоли UI, так как мне не удалось заставить его работать через консоль UI.

0 голосов
/ 30 апреля 2018

В Dataproc с использованием Spark или Hadoop канонический способ доступа к GCS - через разъем GCS для Hadoop. В заданиях Spark и Hadoop вы должны иметь доступ к GCS как gs://[bucket]/[some/object/path].

Этот метод должен работать для чтения ввода в задания с помощью методов SparkContext, подклассов Hadoop MapReduce FileInputFormat и API-интерфейсов Hadoop FileSystem.

...