我想编写一个应用程序,该应用程序能够从大型生产系统的监视数据中生成报表并启用交互式数据分析(OLAP)。(我知道,前面有一些有问题的权衡决定,但让我们暂时搁置它们。)
我确定了基本技术栈的下列可能性:
根据我的研究,我倾向于认为Hadoop/HBase/Hive将是最常见的组合。但这只是基于一些论坛问题和产品介绍。
其他人能分享他对这个问题的一般看法吗?
或者更具体地回答以下问题:
发布于 2013-06-24 21:03:52
如果您要在与Hadoop相同的集群上运行HBase,那么您将真正减少MapReduce作业可用的内存。对于OLAP系统,您实际上并不需要HBase的随机读取/更新功能。您可以使用Flume或手动将数据加载到Hadoop集群中。设备监视数据根据时间进行分区,例如按日历日期进行分区。在将数据加载到可以映射到已分区的Hive表的目录结构中之后,可以使用HiveQL查询数据。对于最棘手的分析,您可以用Java编写MapReduce作业,也可以使用Pig。
问题是,响应不会立即出现。这对于广告库分析来说是可以的,但是如果你试图查看一些常用的预先确定的度量标准,可能会让你感到沮丧。在后一种情况下,您应该考虑预先计算这些度量,并将结果加载到内存缓存中,甚至在关系数据库中。我已经看到了在HBase中缓存的如此频繁使用的结果,为此,我无法克服将一半可用内存浪费在集群上的现象。
发布于 2013-06-25 19:43:17
国际水文学组织,
保持所有最近的进步,很难根据你的读写需求来决定是否使用HBase或Cassandra。您可以调优这些工具以适应您的读/写需求。在作出任何决定时,你应该考虑的事情不多了。
2-到目前为止,您似乎不需要任何DB。您可以将存储在HDFS中的数据映射到Hive表。然后在需要长时间运行批处理过程时运行Hive查询。如果您打算对数据的某些部分执行实时临时查询,则可以在相同的Hive表上使用Cloudera (当real-timeness很重要时)。黑斑羚使用相同的蜂巢元数据。所以你不用担心这个。
3-如果您计划在Hadoop平台上工作,那么HDFS+Hive+HBase+Pig就更好了。我并不是说卡桑德拉是坏的,但Hbase是发展起来的基础,用于Hadoop。
有很多‘酷’的东西在外面,但你最好保持低的数字。更多的工具意味着更多的配置、更多的设置和更多的管理(更令人头痛)。所以,只从那些真正需要的东西开始,添加一个特定的工具,只有当你认为它是真正需要的,或者它会给你一些额外的优势。但是你可能想看看像Impala, Storm, Flume, Spark/shark等工具。
HBase是构建在Hadoop集群之上的。毫无疑问,它会消耗一些内存,但这不应该成为你的应用程序的瓶颈。你只要调整好一切就行了。但是,如果您需要对数据进行随机的实时读/写访问,那么就去做吧。
https://stackoverflow.com/questions/17273089
复制相似问题