Экспорт данных из базы данных и запись в HDFS (hadoop fs) - PullRequest
1 голос
/ 10 июня 2011

Теперь я пытаюсь экспортировать данные из таблицы БД и записать их в hdfs.

И проблема в том, станет ли узел имени узким местом?и как механизм, назовет ли узел кэша срезом (64 МБ), а затем передаст его узлу данных?

И есть ли лучший способ, чем написать hdfs?потому что я думаю, что это не использует пареллизм.

Спасибо:)

1 Ответ

2 голосов
/ 10 июня 2011

Рассматривали ли вы использовать Sqoop. Sqoop можно использовать для извлечения данных из любой БД с поддержкой JDBC и помещения их в HDFS.

http://www.cloudera.com/blog/2009/06/introducing-sqoop/

Команда импорта Sqoop принимает количество выполняемых заданий карты (по умолчанию 1). Кроме того, при распараллеливании работы (задачи карты> 1) можно указать столбец разделения или Sqoop сделает предположение на основе ключа последовательности для таблицы. Каждый файл карты создаст отдельный файл для результатов в каталоге. NN не будет узким местом, если огромное количество созданных файлов не будет огромным (NN хранит метаданные о файлах в памяти).

Sqoop также может интерпретировать исходную БД (Oracle, MySQL или другие) и использовать специальные инструменты БД, такие как mysqldump и импорт, вместо канала JDBC для повышения производительности.

...