Я не совсем уверен, имеете ли вы в виду получение информации из HBase или нет.Я предполагаю, что вы хотите создать агрегирующее приложение, которое выполняет «суммирование», «подсчет», «avg» и т. Д., Например, анализ данных, например, операции с данными, хранящимися в HBase, для генерации графиков / визуализаций.
В этом случаеконкретный ответ будет зависеть от характера данных, которые вы пытаетесь проанализировать.Одним из таких приложений будет http://opentsdb.net из StumpleUpon.
Его довольно легко записывать сумматоры данных на HBase, как это можно сделать с помощью MapReduce.http://hbase.apache.org/docs/r0.89.20100726/apidocs/org/apache/hadoop/hbase/mapred/package-summary.html
В нашей организации мы используем Solr для выполнения запросов и функций агрегирования финансовых отчетов, а затем храним их в CMS для рендеринга.Таким образом, мы можем настроить рендеринг для того же набора данных.Если вы заинтересованы в сохранении его в CMS на HBase + Solr, вам будет интересно следующее:
И если вы хотите получить доступ к своим данным так же, как и к постоянному хранилищу, и заинтересованы в ORM, вы можете сделать следующее, а в противном случае проигнорируйте его.Следующее скопировано из - Java ORM для Hbase Другой мой ответ.
Сила HBase, как я вижу, заключается в том, чтобы динамические столбцы содержались в семействах статических столбцов.Исходя из моего опыта разработки приложений на HBase, я обнаружил, что определить квалификаторы и значения ячеек не так просто, как в SQL.
Например, в книге столько авторов, сколько зависит от ваших шаблонов доступа, авторских правок, приложений.Реализация кэша слоя, вы можете выбрать сохранение всего автора в таблице книг (то есть автор находится в 2 таблицах, таблице авторов и таблице книг) или только в идентификаторе автора.Более того, коллекция авторов может быть сохранена в одной ячейке в виде XML / JSON или отдельных ячеек для отдельных авторов.
С этим пониманием я пришел к выводу, что написание полноценного ORM, такого как Hibernate, будет не только очень трудным, можетна самом деле не быть убедительным.Поэтому я выбрал другой подход, гораздо более похожий на iBatis и Hibernate.
Позвольте мнеПопробуй объяснить, как это работает.Для этого я буду использовать исходные коды от здесь и здесь .
- Первой и главной задачей является реализация интерфейса ObjectRowConverter, в данном случае SessionDataObjectConverter.Абстрактный класс содержит основные передовые практики, которые обсуждались и изучались сообществом HBase.Расширение в основном дает вам 100% контроль над тем, как преобразовать ваш объект в строку HBase и наоборот.Для этого единственного ограничения API является то, что ваши доменные объекты должны реализовывать интерфейс PersistentDTO, который используется внутри для создания Put, Delete, do byte [] для идентификации объекта и наоборот.
- Следующая задача - подключитьзависимости как сделано в HBaseImplModule.Пожалуйста, дайте мне знать, если вы заинтересованы, я сделаю инъекции зависимостей.
И это все.Как они используются, доступны здесь .Он в основном использует CommonReadDao, CommonWriteDao для чтения и записи данных в HBase и из него.Общий дао чтения реализует многопоточное преобразование строк в объекты по запросам, многопоточное получение по идентификаторам, получение по идентификатору и имеет свои критерии Hibernate, такие как API для запроса к HBase через сканирование (функции агрегации недоступны).Common dao реализует общий код, связанный с записью, с некоторыми дополнительными возможностями, такими как оптимистическая / пессимистическая блокировка, сущность переопределения / проверки слияния (не) -существование при сохранении, обновлении, удалении и т. Д.
Этот ORM был разработандля нашей внутренней цели, и я был по уши, и, следовательно, пока не могу сделать некоторые документы.Но если вам интересно, дайте мне знать, и я найду время для документации с приоритетом.