Получение по запросу данных из MySQL в Hadoop

Я просто начинаю с изучением Hadoop, и я задаюсь вопросом следующее: предположите, что у меня есть набор больших производственных таблиц MySQL, которые я хочу проанализировать.

  1. Кажется, что я должен вывести все таблицы в текстовые файлы, чтобы принести им в файловую систему Hadoop - это корректно, или является там некоторым способом, которым Hive или Свиньей или независимо от того, что может получить доступ к данным из MySQL непосредственно?
  2. Если я вывожу все производственные таблицы в текстовые файлы, я должен волноваться о влиянии на производственные показатели во время дампа? (Это зависит, на каком механизме устройства хранения данных таблицы используют? Что я делаю раз так?)
  3. Лучше вывести каждую таблицу в единственный файл или разделить каждую таблицу на 64 МБ (или независимо от того, что мой размер блока), файлы?
5
задан grautur 19 June 2010 в 08:04
поделиться

2 ответа

Импорт данных из mysql можно сделать очень легко. Я рекомендую вам использовать дистрибутив hadoop от Cloudera, с ним поставляется программа под названием 'sqoop', которая предоставляет очень простой интерфейс для импорта данных прямо из mysql (другие базы данных также поддерживаются). Sqoop можно использовать с mysqldump или обычным запросом mysql (select * ...). С этим инструментом нет необходимости вручную разбивать таблицы на файлы. Но для hadoop гораздо лучше иметь один большой файл.

Полезные ссылки:
Руководство пользователя Sqoop

10
ответ дан 13 December 2019 в 19:21
поделиться

2)
Так как я не знаю вашей среды, я буду осторожен, сторона - ДА, беспокойтесь о влиянии на производительность.

В зависимости от частоты и количества записываемых данных вы можете обнаружить, что они обрабатываются за приемлемое время, особенно если вы просто записываете новые / измененные данные. [в зависимости от сложности ваших запросов]

Если вам не требуется реальное время или у ваших серверов обычно есть периоды, когда они не используются (в ночное время?), тогда вы можете создавать файлы в это время.

В зависимости от того, как у вас настроена среда, вы можете реплицировать / регистрировать доставку на определенные серверы баз данных, единственная задача которых - создавать ваши файлы данных.


3)
Нет необходимости разделять файл, HDFS позаботится о разделении файла данных на блоки и репликации по кластеру. По умолчанию он автоматически разбивается на блоки данных по 64 МБ.
см. - Apache - Архитектура HDFS

re: Ответ Войтека - SQOOP щелчок (не работает в комментариях)

Если у вас есть дополнительные вопросы или конкретная информация о среде, дайте нам знать HTH Ральф

1
ответ дан 13 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: