Как скопировать файл из корзины GCS в Dataproc в HDFS с помощью облака Google? - PullRequest
0 голосов
/ 30 января 2019

Я загрузил файл данных в корзину GCS моего проекта в Dataproc.Теперь я хочу скопировать этот файл в HDFS.Как я могу это сделать?

1 Ответ

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

Для одного «маленького» файла

Вы можете скопировать один файл из Google Cloud Storage (GCS) в HDFS, используя команду hdfs copy.Обратите внимание, что вам нужно запустить это из узла в кластере:

hdfs dfs -cp gs://<bucket>/<object> <hdfs path>

Это работает, потому что hdfs://<master node> является файловой системой по умолчанию.При желании вы можете явно указать схему и NameNode:

hdfs dfs -cp gs://<bucket>/<object> hdfs://<master node>/<hdfs path>

Обратите внимание, что объекты GCS используют схему gs:.Пути должны отображаться так же, как и при использовании gsutil.

Для «большого» файла или большого каталога файлов

Когда вы используете hdfs dfs, данные передаются через вашместная машина.Если у вас есть большой набор данных для копирования, вы, вероятно, захотите сделать это параллельно в кластере, используя DistCp:

hadoop distcp  gs://<bucket>/<directory> <HDFS target directory>

Обратитесь к документации DistCp для получения подробной информации.

Подумайте над тем, чтобы оставить данные в GCS

Наконец, вы можете оставить свои данные в GCS.Поскольку соединитель GCS реализует интерфейс распределенной файловой системы Hadoop, он может использоваться в качестве замены для HDFS в большинстве случаев.Заметными исключениями являются случаи, когда вы полагаетесь на (большинство) элементарных операций с файлами / каталогами или хотите использовать приложение, чувствительное к задержке, например HBase . Руководство по миграции HDFS Dataproc дает хороший обзор миграции данных.

...