问候,
我一直在浏览本网站上的问题,但我没有找到任何相关问题。
我目前已经构建了一个Flex / PHP / MySQL应用程序,我从Hadoop集群中提取并转储到MySQL表。随着我的数据集不断增长,这有几个问题。
我正在寻找一个更强大的开源解决方案,因此开始研究HBase以及如何利用PHP或Java将我的数据提取到可视化应用程序。
你们有没有在Hadoop或HBase之上构建任何可视化平台?
谢谢!
答案 0 :(得分:4)
我不完全确定您是否指的是从HBase获取信息。我假设您要构建一个聚合应用程序,它可以“求和”,“计数”,“平均”等数据挖掘,就像对HBase中存储的数据进行操作一样,生成图形/可视化。
在这种情况下,具体答案取决于您尝试分析的数据的性质。一个这样的应用程序将来自StumpleUpon的http://opentsdb.net。
很容易在HBase上编写数据汇总程序,因为它可以通过MapReduce实现。 http://hbase.apache.org/docs/r0.89.20100726/apidocs/org/apache/hadoop/hbase/mapred/package-summary.html
在我们的组织中,我们使用Solr为财务报告执行查询和聚合功能,然后我们将它们存储在CMS中进行渲染。因此允许我们自定义相同数据集的渲染。如果您有兴趣将其存储在HBase + Solr上的CMS中,则以下内容将非常有趣 -
如果您希望访问您的数据就像访问持久存储并对ORM感兴趣那么您可以使用以下相关信息,请忽略它。以下内容复制自 - Java ORM for Hbase我的另一个答案。
我认为HBase的优势在于将动态列保持在静态列族中。根据我使用HBase开发应用程序的经验,我发现确定单元限定符和值并不像SQL那么容易。
例如,一本书的作者数量众多,具体取决于您的访问模式,作者编辑,应用层缓存实现,您可能希望选择将整个作者保存在book表中(即作者位于2表,作者表中)和书籍表)或只是作者ID。此外,作者集合可以作为XML / JSON保存到一个单元格中,也可以保存为单个作者的单个单元格。
有了这样的理解,我总结写出一个完整的ORM,比如Hibernate不仅非常困难,实际上也可能没有定论。所以我采用了一种不同的方法,更像是iBatis是Hibernate。
让我试着解释它是如何运作的。为此,我将使用here和here中的源代码。
就是这样。如何使用它们here。它基本上使用CommonReadDao,CommonWriteDao来读取和写入HBase的数据。常见的read dao实现了对查询的多线程行对象转换,多线程get by id,get by id以及像Hibernate Criteria这样的API通过Scan查询HBase(没有可用的聚合函数)。公共写入dao实现了常见的写入相关代码和一些附加功能,例如乐观/悲观锁定,单元覆盖/合并检查实体(非) - 存储,更新,删除等等。
这个ORM是为了我们的内部目的而开发的,我一直在我的脖子上,因此还不能做一些文档。但是,如果您有兴趣,请告诉我,我将为优先文档腾出时间。
答案 1 :(得分:0)
查看Metatron发现:https://github.com/metatron-app/metatron-discovery。他们将Druid和Hive用于其OLAP和数据存储。这是一个开放源码,因此您可以检查他们的代码。可能会有帮助。