Интеграция Hadoop и MySQL
Мы хотели бы внедрить Hadoop в нашу систему, чтобы улучшить ее производительность.
Процесс работает следующим образом:
Hadoop будет собирать данные из базы данных MySQL, а затем обрабатывать их.
Затем результат будет экспортирован обратно в базу данных MySQL.
Является ли это хорошей реализацией? Будет ли это улучшать общую производительность нашей системы?
Каковы требования и было ли это сделано раньше? Хороший учебник действительно поможет.
Спасибо
Ответы
Ответ 1
Хотя это не обычное использование хаопов. Это имеет смысл в следующем сценарии:
a) Если у вас есть хороший способ разбить ваши данные на входы (например, существующее разделение).
б) Обработка каждого раздела относительно тяжелая. Я бы дал количество не менее 10 секунд времени процессора на каждый раздел.
Если оба условия выполнены, вы сможете применить любое требуемое количество мощности ЦП для обработки данных.
Если вы делаете простое сканирование или агрегацию - я думаю, что вы ничего не получите. С другой стороны - если вы собираетесь запускать некоторые интенсивные алгоритмы процессора для каждого раздела, то в действительности ваш выигрыш может быть значительным.
Я бы также упомянул о отдельном случае - если для обработки требуется массивная сортировка данных. Я не думаю, что MySQL будет хорош в сортировке миллиардов записей. Hadoop сделает это.
Ответ 2
Sqoop - это инструмент, предназначенный для импорта данных из реляционных баз данных в Hadoop
https://github.com/cloudera/sqoop/wiki/
и видео об этом http://www.cloudera.com/blog/2009/12/hadoop-world-sqoop-database-import-for-hadoop/
Ответ 3
Hadoop используется для пакетных заданий, главным образом, для полуструктурированных данных большого размера. Пакет в том смысле, что даже самые короткие задания находятся в порядке величин минут. С какой проблемой вы столкнулись? Это основано на преобразовании данных или отчетности. В зависимости от того, что эта архитектура может помочь или ухудшить ситуацию.
Ответ 4
Как упоминалось Джо, Sqoop - отличный инструмент экосистемы Hadoop для импорта и экспорта данных из баз данных SQL и, MySQl.
Если вам нужна более сложная интеграция MySQL, включая, например, фильтрации или трансформации, то для этой проблемы вы должны использовать инфраструктуру интеграции или пакет интеграции. Взгляните на мою презентацию "" Большие данные за пределами Hadoop - как интегрировать ВСЕ ваши данные" для получения дополнительной информации о том, как использовать инфраструктуру интеграции с открытым исходным кодом и комплекты интеграции с Hadoop.
Ответ 5
Я согласен с Саи. Я использую Hadoop с MySql только тогда, когда это необходимо. Я экспортирую таблицу в CSV и загружаю ее в HDFS, чтобы быстрее обрабатывать данные. Если вы хотите сохранить свои обработанные данные, вам нужно будет написать однорежимное задание, которое будет делать какие-то batchinserts для улучшения производительности вставки.
НО, что действительно зависит от того, что вы хотите делать.