2014-01-29 4 views
1

Я хочу знать преимущества/недостатки использования кластера MySQL и использования инфраструктуры Hadoop. Какое лучшее решение. Я хотел бы прочитать ваше мнение.MySQL Cluster vs. Hadoop для обработки больших данных

Я думаю, что преимущества использования кластера MySQL являются:

  1. высокая доступность
  2. хорошая масштабируемость
  3. высокая производительность/в режиме реального времени доступа к данным
  4. вы можете использовать различное оборудование

И я не вижу недостатка! Есть ли недостатки, которые у Hadoop нет?

Преимущества Hadoop с улья сверху этого являются:

  1. также хорошая масштабируемость
  2. вы также можете использовать различное оборудование
  3. способность работать в гетерогенных средах
  4. параллельных вычислений с каркас MapReduce
  5. Улей с HiveQL

и недостатком является:

  1. нет доступа к данным в режиме реального времени. Для анализа данных может потребоваться несколько минут или часов.

На мой взгляд, для обработки больших данных кластер MySQL является лучшим решением. Почему Hadoop является святым граалем для обработки больших данных? Каково твое мнение?

ответ

3

Hadoop не является замена MySQL, так что я думаю, что у них есть свой собственный сценарий.

Каждое знает Hadoop лучше для пакетного задания или в автономных режиме вычислений, но также есть много связанных в реальное время продукта, например, HBase.

Если вы хотите выбрать автономную вычислительную схему &.

Я предлагаю Hadoop не кластер MySQL для автономного вычисления & хранения, из-за:

  1. Стоимость: очевидно, Hadoop кластера является более дешевым, чем MySQL кластера
  2. Масштабируемость: поддержка Hadoop более десяти тысяч машин в кластер
  3. экосистем: MapReduce, улей, свинья, sqoop и т.д.

Таким образом, вы можете выбрать Hadoop в автономном режиме вычислений & хранилище и MySQL как онлайн-калькулятор & хранения, вы также можете узнать больше от lambda architecture.

+0

Не могли бы вы объяснить, что вы подразумеваете под хаосом дешевле? Я понимаю, что есть бесплатная версия MySQL Cluster. – jsarma

3

Другой ответ хорош, но на самом деле не объясняет, почему hasoop более масштабируемо для хэширования данных в сети, чем кластеры MySQL. Hadoop более эффективен для больших наборов данных, которые должны быть распределены на многих машинах, поскольку он дает вам полный контроль над очерчиванием данных.

MySQL-кластеры используют автоматическое очертание, и он предназначен для случайного распространения данных, поэтому ни одна машина не попадает с большей нагрузкой. С другой стороны, Hadoop позволяет вам явно определить раздел данных, так что несколько точек данных, требующих одновременного доступа, будут находиться на одной машине, сводя к минимуму связь между машинами, необходимыми для выполнения работы. Это делает Hadoop лучше для обработки массивных наборов данных во многих случаях.

Ответ на вопрос this question имеет хорошее объяснение этого различия.

+0

Вы правы, любой случай, когда «случайный» будет приводить к случайной точке доступа к концентрации данных в конечном итоге, если данные о будущем не будут известны полностью. Вы можете так же легко очертить mySQL вручную (мы это сделаем), чтобы вы могли перемещать данные вокруг и т. Д. Вопрос до сих пор: зачем использовать hasoop поверх mySQL после того, как вы столкнулись со всей проблемой структурирования данных, чтобы получить их в mySQL (или БД, если на то пошло) в первую очередь? Похоже на кучу сканирующего стола. – Ross

4

Оба вышеупомянутых ответа пропускают огромную дифференциацию между mySQL и Hadoop. mySQL требует, чтобы вы хранили данные в определенном формате. Он любит сильно структурированные данные - вы объявляете тип данных каждого столбца в таблице и т. Д. Hadoop вообще этого не волнует.

Пример - если у вас есть миллиард текстовых файлов журнала, чтобы сделать анализ даже возможным для mySQL, вам нужно будет разобрать и загрузить данные сначала в таблицу mySQL, набирая каждый столбец на этом пути. С помощью hasoop и mapreduce вы определяете функцию, которая предназначена для сканирования/анализа/возврата данных из своего исходного источника - вам не нужна предварительная обработка ETL, чтобы получить ее предварительно структурированную.

Если данные уже структурированы и в mySQL - то (надеюсь) хорошо структурированы - зачем экспортировать его для анализа hadoop? Если это не так, зачем тратить время на данные ETL?

Смежные вопросы