Разница между MapReduce для хранилища данных, такого как CouchDB, и Hadoop?

Недавно на вебинаре Couchbase они сказали, что Hadoop можно использовать для обработки больших файлов журналов, а Couchbase — для представления их на прикладном уровне. Они утверждали, что карта и сокращение Couchbase и Hadoop были разными и подходили для соответствующего упомянутого варианта использования. Я собирался использовать сокращение карты Couchbase для обработки большого количества файла журнала. Может ли кто-нибудь уточнить точную разницу между уменьшением двух карт? Есть ли в Hadoop какие-либо функции, которые делают его более подходящим для обработки больших файлов журналов?

Спасибо...


person Manoj    schedule 13.05.2012    source источник


Ответы (2)


Couchbase — одно из многих приложений для хранения данных NoSQL. Данные хранятся в парах «ключ-значение», при этом ключи индексируются для быстрого поиска.

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

Обычно вы используете что-то вроде Hadoop mapreduce для обработки больших файлов и обновления/заполнения хранилища NoSQL (например, Couchbase).

Использование хранилища данных NoSQL для обработки больших объемов данных, скорее всего, будет менее эффективным, чем использование MapReduce для выполнения той же работы. Но хранилище данных NoSQL сможет обслуживать веб-уровень значительно эффективнее, чем задание MapReduce (инициализация которого может занять десятки секунд, а выполнение — минуты/часы).

person Chris White    schedule 13.05.2012
comment
Разве функция уменьшения карты в Couchbase не используется для обработки файлов журнала и создания представлений? - person Manoj; 13.05.2012
comment
Я думаю, это то, что они имели в виду: Couchbase.com/docs/couchbase-manual-2.0/ вы можете использовать map-reduce для значений, хранящихся в Couchbase, но он больше ориентирован на значительно меньшие объемы данных, чем вы могли бы увидеть в традиционном задании Map Reduce. - person Chris White; 13.05.2012
comment
@ChrisWhite - ваша таксономия не совсем верна. CouchDB — это NOSQL, но то же самое относится и к Hadoop/HBase. HBase — это хранилище ключей/значений, как и HBase. Задание MapReduce может занять много времени, если набор данных большой. Это не займет много времени, просто будучи MapReduce. - person Cheeso; 29.06.2012
comment
@Cheeso - Где я сказал, что HBase не является хранилищем данных NoSQL - я сказал, что HDFS лучше подходит для обработки огромных объемов данных, тогда как NoSQL (HBase, Couchbase и другие) лучше подходят для более быстрого доступа к меньшим объемам данных. Выполнение полного сканирования большой таблицы NoSQL выполняется медленнее, чем M/R эквивалентных данных в HDFS. - person Chris White; 29.06.2012

Основное отличие в том, что Couchbase использует инкрементную карту/уменьшение и не будет сканировать весь набор данных, который вам нужен для обновления или удаления элементов. другое отличие заключается в величине «большой». если вам нужно один раз обработать сотни гигабайт журналов, то диванная база — не лучший выбор.

person avsej    schedule 13.05.2012
comment
Значит, диван не будет обновлять свой вид, когда вы удаляете документ? Странный. - person Robert Zaremba; 08.03.2013
comment
удаление документа также является изменением, поэтому, как только индексатор выберет это изменение, он создаст новый индекс, в котором документ будет удален. вы также можете управлять индексатором с помощью аргумента stale= view - person avsej; 08.03.2013