我有150 GB的MySQL数据,计划将MySQL替换为Casandra作为后端。
分析,计划与Hadoop,HIVE或HBASE一起使用。
目前,我有4台用于POC的物理机。请有人帮助我提出最有效的架构。
每天我将获得5 GB的数据。
最佳答案
Hadoop可以使用Spark等新兴技术,通过map reduce范式或其他方法来处理数据。优点是可靠的分布式文件系统以及使用数据局部性将计算发送到具有数据的节点。
Hive是一种类似于SQL的好方法,每天处理一次文件并生成报告。它是批处理,每天增加5 GB应该不会产生很大的影响。虽然它具有较高的开销延迟,但是如果您每天执行一次,这应该不是问题。
HBase和Cassandra是NoSQL数据库,其目的是提供低延迟的数据。如果这是必要条件,则应选择其中任何一个。 HBase使用DFS来存储数据,而Cassandra具有与Hadoop的良好连接器,因此,运行这两个来源中消耗的作业很简单。
对于基于请求的报告,指定日期范围,您应该以一种有效的方式存储数据,这样就不必摄取报告不需要的数据。 Hive支持分区,可以使用日期(即/<year>/<month>/<day>/
)完成分区。使用分区可以极大地优化您的作业执行时间。
如果您使用NoSQL方法,请确保行键具有某种日期格式作为前缀(例如20140521 ...),以便您可以选择以所需日期开头的行。
您还应该考虑的一些问题是:
天等。这将影响节点/磁盘的数量。当心数据通常被复制3次。
Namenode在检索文件元数据时将受到重创。一些
存在解决方案,例如复制的名称节点或使用MapR Hadoop
本身不依赖Namenode的发行版。