Hadoop (+ HBase / HDFS) против Mysql (или Postgres) - множество независимых структурированных данных для обработки и спросил

Здравствуйте, SO ,

Я хотел бы получить несколько идей / комментариев по следующим вопросам от вас, уважаемая и уважаемая группа.

У меня есть 100 миллионов записей, которые мне нужно обработать. Для этого у меня есть 5 узлов (в кластере камней). Данные очень структурированы и хорошо подходят для реляционной модели данных. Я хочу делать что-то параллельно, так как моя обработка занимает некоторое время.

Насколько я понимаю, у меня есть два основных варианта:

Установить mysql на каждый узел и разместить 20M записей на каждом. Используйте головной узел, чтобы делегировать запросы узлам и агрегировать результаты. Возможности запроса ++ , но я могу рискнуть некоторыми головными болями, когда приду к выбору стратегий разделения и т. д. (В. Это то, что они называют кластером mysql / postgres?). На самом деле плохая часть заключается в том, что обработка записей оставлена ​​на меня теперь (как распределять по машинам и т. Д.) ...

В качестве альтернативы установите Hadoop, Hive и HBase (обратите внимание, что это может быть не самый эффективный способ хранения моих данных, поскольку HBase ориентирован на столбцы) и просто определите узлы. Мы пишем все в парадигме MapReduce и, блин, живем долго и счастливо. Проблема здесь в том, что мы теряем возможности запросов «в реальном времени» (я знаю, что вы можете использовать Hive, но это не рекомендуется для запросов в реальном времени - что мне нужно) - поскольку у меня также есть несколько обычных запросов sql, которые нужно выполнять время от времени » выберите * из вина, где цвет = 'коричневый' ".

Обратите внимание, что теоретически - если бы у меня было 100 миллионов машин, я мог бы сделать все мгновенно, поскольку для каждой записи обработка не зависит от другой. Кроме того, мои данные доступны только для чтения. Я не предвижу никаких обновлений. Мне не нужно 100M записей на одном узле. Я не хочу, чтобы были избыточные данные (так как их много), поэтому храните их ОБЕИМ в mysql / postgres и Hadoop / HBase / HDFS. это не вариант.

Большое спасибо

9
задан MalteseUnderdog 3 February 2011 в 00:27
поделиться