Интеграция Hadoop и MySQL - PullRequest
       34

Интеграция Hadoop и MySQL

14 голосов
/ 26 января 2011

Мы хотели бы внедрить Hadoop в нашей системе для повышения ее производительности.

Процесс работает следующим образом: Hadoop будет собирать данные из базы данных MySQL, а затем обрабатывать их.Затем выходные данные будут экспортированы обратно в базу данных MySQL.

Это хорошая реализация?Повысит ли это общую производительность нашей системы?Каковы требования и было ли это сделано раньше?Хороший учебник действительно поможет.

Спасибо

Ответы [ 5 ]

5 голосов
/ 26 января 2011

Sqoop - это инструмент, предназначенный для импорта данных из реляционных баз данных в Hadoop

https://github.com/cloudera/sqoop/wiki/

и видео об этом http://www.cloudera.com/blog/2009/12/hadoop-world-sqoop-database-import-for-hadoop/

2 голосов
/ 27 апреля 2013

Как уже упоминал Джо, Sqoop - это отличный инструмент экосистемы Hadoop для импорта и экспорта данных из баз данных SQL и в такие базы данных, как MySQl.

Если вам требуется более сложная интеграцияMySQL, включая, например, фильтрацию или преобразование, для этой проблемы следует использовать интеграционную инфраструктуру или пакет интеграции.Взгляните на мою презентацию " Большие данные за пределами Hadoop - Как интегрировать ВСЕ ваши данные " для получения дополнительной информации о том, как использовать интегрированные интегрированные среды с открытым исходным кодом и комплекты интеграции с Hadoop.

2 голосов
/ 26 января 2011

Hadoop используется для пакетных заданий, в основном на полуструктурированных данных большого размера. Пакетные в том смысле, что даже самые короткие задания имеют порядок величин минутС какой проблемой производительности вы сталкиваетесь?Основано ли это на преобразованиях данных или отчетности.В зависимости от этого эта архитектура может помочь или усугубить ситуацию.

1 голос
/ 27 января 2011

Хотя это не обычное использование hadoop. Это может иметь смысл в следующем сценарии:
а) Если у вас есть хороший способ разделить ваши данные на входы (например, существующее разделение).
б) Обработка каждого раздела относительно тяжелая. Я бы дал количество не менее 10 секунд процессорного времени на раздел.
Если оба условия соблюдены - вы сможете применить любое требуемое количество ресурсов процессора для обработки данных.
Если вы делаете простое сканирование или агрегирование - я думаю, что вы ничего не получите. С другой стороны - если вы собираетесь запускать несколько ресурсоемких алгоритмов на каждом разделе - тогда ваш выигрыш может быть значительным.
Я бы также упомянул отдельный случай - если ваша обработка требует массовой сортировки данных. Я не думаю, что MySQL будет хорош в сортировке миллиардов записей. Hadoop сделает это.

0 голосов
/ 26 января 2011

Я согласен с Саи.Я использую Hadoop с MySql только при необходимости.Я экспортирую таблицу в CSV и загружаю ее в HDFS для более быстрой обработки данных.Если вы хотите сохранить обработанные данные, вам нужно написать задание с одним редуктором, которое будет выполнять какие-то пакетные вставки для повышения производительности вставки. НО это действительно зависит от того, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...