HIVE,HBASE,我必须用于我的数据分析

时间:2014-05-21 13:48:02

标签: mysql hadoop cassandra hive hbase

我有150 GB的MySQL数据,计划将MySQL替换为Casandra作为后端。 分析,计划使用Hadoop,HIVE或HBASE。 目前我有4台POC物理机。请有人帮我提出最有效的架构。 每天我将获得5 GB的数据。

  1. 每日状态报告我必须发送给每个客户。
  2. 必须根据要求提供分析报告:例如:1周报告或上个月的前2周报告。是否可以使用HIVe或HBASE立即生成报告?

  3. 我想使用Cassandra,Hadoop提供最佳性能。

1 个答案:

答案 0 :(得分:2)

Hadoop可以使用map reduce范例或其他方法处理您的数据,使用Spark等新兴技术。优点是可靠的分布式文件系统和数据局部性的使用,以将计算发送到具有数据的节点。

Hive是一种很好的类似SQL的处理文件的方式,每天生成一次报告。它的批处理和每天5个GB不应该产生很大的影响。虽然它具有很高的开销延迟,但如果你每天都这样做,就不应该成为一个问题。

HBase和Cassandra是NoSQL数据库,其目的是以低延迟提供数据。如果这是一项要求,您应该选择其中任何一项。 HBase使用DFS存储数据,Cassandra与Hadoop有良好的连接,因此从这两个来源运行的工作很简单。

对于基于请求的报告,指定日期范围,您应该以有效的方式存储数据,这样您就不必提取报告不需要的数据。 Hive支持分区,可以使用日期(即/<year>/<month>/<day>/)完成。使用分区可以显着优化您的作业执行时间。

如果您使用NoSQL方法,请确保rowkeys有一些日期格式作为前缀(例如20140521 ...),以便您可以选择以您想要的日期开头的那些。

您还应该考虑的一些问题是:

  • 您希望在群集中存储多少数据 - 例如去年180 天等等。这会影响节点/磁盘的数量。注意数据通常会被复制3次。
  • 你在HDFS中有多少个文件 - 当文件数量很高时, Namenode将在检索文件元数据时受到重创。一些 存在解决方案,例如复制的namenode或使用MapR Hadoop 不依赖于Namenode本身的发行版。