2015-11-05 4 views
1

Каковы преимущества Cassandra над HBase, когда дело доходит до рабочих мест MapReduce?Cassandra vs HBase for Hadoop jobs

У меня есть много небольших файлов, которые я бы хотел переместить из HDFS в базу данных и чтобы файлы были введены для заданий MapReduce. Я не беру все файлы, но для определенного пользователя, поэтому, возможно, всю строку, по крайней мере, для семейства столбцов. Я мог брать файлы с определенного периода.

Я знаю, что HBase является базой данных Hadoop, поэтому я ожидаю, что это интегрируется хорошо для того, что мне нужно, но я также прочитал, что Cassandra имеет гораздо лучшую производительность. Но я хотел бы знать, в чем ситуация, когда вы используете его в качестве входных данных для MapReduce вакансий. Является ли производительность все еще намного лучше, чем в случае HBase?

Я должен подчеркнуть, что я не ищу сравнение HBase и Cassandra вообще, но в конкретных случаях работы MapReduce. Вопросы, подобные this, не говорят конкретно о производительности в случае заданий MapReduce. Кроме того, я ищу новую информацию (вопрос, который я упомянул, с 2011 года, я считаю, что с тех пор, возможно, были некоторые изменения).

+0

Благодарим за предложение, но этот вопрос и ответы могут быть немного устаревшими (сколько изменений было внесено с 2011 года?). Кроме того, меня не интересует только сравнение баз данных в целом, но хотелось бы знать, какая из них имеет лучшую производительность в случае заданий MapReduce и информации об этом нет. – Marko

ответ

0

Обе базы данных имеют отличную производительность для чтения и записи. Возможно, HBase для массового чтения имеет несколько лучшие результаты, чем Cassandra. Но у меня есть два случая использования, когда HBase будет работать значительно быстрее, чем Cassandra, благодаря его дизайну.

Прежде всего, если вам нужно, чтобы карта уменьшала только часть данных на основе имен столбцов, например. html-страницы и некоторые анализируемые данные. Вы помещаете html в одно семейство столбцов, анализируемая информация в другом. Различные семейства столбцов лежат в разных файлах в HDFS, поэтому, чтобы читать только одно, вам не нужно читать другие. Это дает вам значительные преимущества в производительности, потому что, если вам понадобятся только разобранные данные только для чтения, которые занимают в несколько раз меньше места на диске, чем на html. В случае Cassandra вам понадобится прочитать целую таблицу.

Во-вторых, если вам нужна информация о доступе, упорядоченная ключом строки или некоторой частью таблицы на основе этого порядка, например. прочитайте страницу html из какого-либо домена. В случае HBase вы можете иметь ключ строки как сумму домена и URL. У HBase есть хороший балансир для случаев разрывов строк. Но у Cassandra нет или вы должны использовать какой-то трюк для балансировки в этом случае, или вам придется сканировать всю таблицу.

Надеюсь, что эти варианты использования дадут вам некоторую картину, когда лучше использовать HBase и когда Cassandra.

+0

Не могли бы вы объяснить, исходя из вашего опыта, почему существует ограничение на количество семейств столбцов в случае HBase? – Marko

+1

Вы можете прочитать информацию по следующей ссылке https://www.quora.com/How-many-column-families-does-HBase-support-in-a-single-table –

+0

Большое спасибо, у вас есть возвыситесь от меня за эту информацию. – Marko

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