Карта Кассандры уменьшает поддержку

Недавно я столкнулся со случаем, когда Кассандра идеально подходит для хранения событий, основанных на времени, с настраиваемыми ttls для каждого типа события (другим решением было бы сохранить его в hadoop и вести учет вручную (ttls и прочее, IMHO очень сложная идея) или переключиться на hbase). Вопрос в том, насколько хорошо поддержка Cassandra MapReduce работает из коробки без редакции Datastax Enterprise.

Кажется, что они много вложили в CassandraFS, но я спрашиваю себя, активно ли поддерживается и масштабируется ли обычный Pig CassandraLoader (поскольку он, кажется, не делает ничего, кроме итерации по строкам в срезах). Работает ли это для сотен миллионов строк?


person Tobias    schedule 01.11.2012    source источник


Ответы (2)


Вы можете сопоставить / уменьшить, используя случайный разделитель, но, конечно, ключи, которые вы получаете, находятся в случайном порядке. вы, вероятно, захотите использовать CL = 1 в cassandra, чтобы вы не читали каждый раз с 2 узлов при выполнении map / reduce, хотя он должен читать локальные данные. Однако я не использовал Pig.

person Dean Hiller    schedule 01.11.2012
comment
Поддержка Pig для Cassandra использует ColumnFamilyInputFormat и -OutputFormat. Итак, все, что вы можете или не можете делать в картах hadoop, достаточно хорошо соответствует тому, что вы можете и не можете делать с Cassandra и Pig. - person Chris Gerken; 02.11.2012
comment
и действительно ли это быстро при использовании случайного разделителя? Я думаю, он просто делает что-то вроде этого? stackoverflow.com/questions/8418448/ - я однажды попытался выполнить итерацию CF строки размером 100 миллионов вручную, но на самом деле она так и не запустилась после отправки первого запроса rangelicequery. - person Tobias; 02.11.2012
comment
эта ссылка не похожа на map / reduce, поскольку map / reduce реализует Mapper и Reducer или что-то в этом роде ... Мне нужно снова настроить его в ближайшее время, и у меня нет кода из моего предыдущего проекта ... да, это быстро, так как все они работают параллельно ... запуск медленный, как и hadoop, поскольку он доставляет код на каждый трекер задач. - person Dean Hiller; 02.11.2012
comment
Hadoop и fast на самом деле несовместимы. Такова природа последовательных сканирований. Но сканирование C * выполняется быстрее, чем HBase, если вам от этого легче: vldb.org/pvldb/ vol5 / p1724_tilmannrabl_vldb2012.pdf - person jbellis; 04.11.2012
comment
Я понял природу Hadoops & Batches. Я просто попытался перебрать все строки (100 000 000 строк) в cassandra cassandra cf (random partitioner), что заняло много времени, и я прервался. Я просто спрашивал себя, использует ли Map Reduce через hadoop те же механизмы. - person Tobias; 08.11.2012
comment
сколько серверов вы используете для обработки 100000000 строк? Чем больше серверов, тем быстрее .... на один сервер потребуется время. - person Dean Hiller; 08.11.2012

Почему не hbase? Hbase больше подходит для данных таймсерий. Вы можете легко разместить миллиарды строк в очень маленьком кластере и получать до 500 тысяч строк в секунду в маленьком трехузловом кластере (до 50 МБ / с) с включенным WAL. У Кассандры есть несколько недостатков:

  1. В cassandra вы фактически ограничены количеством ключей (представьте, что в случае миллиардов строк ваш ремонт будет работать вечно). Таким образом, вы создадите схему, которая будет «сегментировать» ваше время, скажем, на 1 час, а фактическая временная метка будет размещена в виде столбцов. Но такая схема плохо масштабируется из-за высокого риска «огромных колонн».
  2. Другая проблема - вы не можете сопоставить диапазон данных в cassandra, за исключением того, что вы используете упорядоченный разделитель, что вообще не вариант из-за его неспособности хорошо сбалансировать.
person octo    schedule 01.11.2012
comment
Это потому, что я уже использую кассандру в проекте и не очень хочу внедрять новые технологии ... - person Tobias; 01.11.2012
comment
Хорошая точка зрения. Если можно обрабатывать все данные постоянно - это должно сработать, но если объем данных будет расти, я рекомендую пересмотреть вариант использования более приспособленного для хранения рабочей нагрузки mapreduce. - person octo; 01.11.2012
comment
Что это за чушь? Многие (большинство?) Кластеры Cassandra достаточно хорошо поддерживают миллиарды строк. Вы упомянули о ремонте, но он, конечно, тоже распространяется. - person jbellis; 04.11.2012
comment
Это правда, что Cassandra не рекомендует полагаться на глобальное упорядочение для вашей модели данных, но это не большой недостаток, особенно со встроенной поддержкой Cassandra для индексов столбцов (которые также поддерживаются в map / reduce). - person jbellis; 04.11.2012