Справка, касающаяся баз данных SQL, таких как hadoop, hbase и т. Д. - PullRequest
3 голосов
/ 02 января 2011

Я новичок в распределенных базах данных NoSQL, таких как Hadoop, Cassandra и т. Д. У меня есть несколько вопросов, по которым я обращаюсь к экспертам:

  1. Можете ли вы перечислить проблемы / проблемы, с которыми обычно сталкиваются при переходе от нынешней обычной базы данных, такой как MySQL, к этим большим базам данных на основе кластера?
  2. В чем заключаются трудности, если таковые имеются, когда нужно адаптироваться к более новой версии этих проектов с открытым исходным кодом?
  3. Можете ли вы перечислить вещи, которые обычно хранятся / хранятся в memcached для быстрого рендеринга страницы?
  4. Как я могу понять исходный код проектов с открытым исходным кодом, чтобы я мог опираться на него и, возможно, вернуть сообществу?

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

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Мой опыт:

  1. Основной задачей было бы думать в терминах No-SQL, если исходить из реляционного фона. Например, HBase (построенный на Hadoop DFS) будет выдавать вам только возрастающий порядок, если вы хотите выполнить поиск в порядке убывания, вам нужно будет поддерживать обратный индекс; то есть ID 1 указывает на книгу A, а обратный индекс (макс. - 1) указывает на 1. Документация - это проблема, но сообщество, как и все OSS, очень важно. Вместе с Git и Jersey я бы сказал, что сообщество HBase чрезвычайно полезно, так что оно компенсирует отсутствие документации, а документация на HBase постоянно улучшается. Еще одной проблемой будет поиск. Мы часто используем SQL RDBMS для поиска, HBase, например, совсем не подходит для этой цели. Рекомендуется использовать другое программное обеспечение для поиска при использовании HBase для надежного хранения, например, Эластичный поиск, Apache Solr, Apache Lucene и т. Д.
  2. Это на самом деле зависит от проекта к проекту, в случае HBase Есть улучшения в основном с 0.20.X до 0.90.X (его выпуск является выдающимся). AFAIK Формат хранилища данных не меняется, ни API резко, но, как и любой основной OSS с основной версией, изменяет API, но с небольшими изменениями API-изменений нет. Хотя не так много опыта в обновлении, но из моего небольшого приключения в этом я заметил, что нет проблем с получением данных.
  3. Это сложно и во многом зависит от типа рассматриваемого здесь приложения. Как вы упомянули memcached, я хотел бы поделиться опытом, который мы сейчас переживаем. Мы не используем HBase для любого поиска, кроме прямого поиска первичного ключа. Все остальные поиски проходят через Apache Solr (который основан на Lucene). Таким образом, результат поиска кэшируется Solr. На прикладном уровне, поскольку мы используем Java, мы используем Ehcache для хранения необработанных объектов. В веб-кэшировании мы используем Varnish Cache , используя ESI, мы разделили страницу на пользовательский контент, например, вход в систему, выход из системы, учетная запись, корзина и т. д., а также общий контент, например новости, события, продукты и т. д. достичь высокой пропускной способности.
  4. Я бы хотел согласиться с Марком Тоцци в этом.
0 голосов
/ 03 января 2011

Я могу предложить несколько мыслей:

1: Документация и примеры были серьезной проблемой для моих проектов, использующих Hadoop и связанных с ним проектов.По сравнению с MySQL часто бывает трудно найти, какие функции доступны и как их использовать.Списки рассылки оказали большую помощь в этом отношении.Научиться мыслить с точки зрения пакетной обработки и «полного сканирования таблиц» также было корректировкой, и привыкнуть к программированию Map Reduce нетривиально, хотя есть много инструментов, которые могут оградить вас от написания необработанного сокращения карты.

2: Большая часть базы кода Hadoop & friends по-прежнему в основном альфа-версия, и иногда многое меняется от версии к версии.Вы определенно захотите, чтобы тестовый кластер сначала выполнил обновление и посмотрел, что сломалось.Драматические изменения API не являются неожиданными при обновлении.

3: я специально не работал с memcached, и я использую Hadoop для обработки ETL на сервере, а не для рендеринга страниц.Здесь я не могу вам помочь.

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

...