我有150 GB的MySQL数据,计划将MySQL替换为Casandra作为后端。 分析,计划使用Hadoop,HIVE或HBASE。 目前我有4台POC物理机。请有人帮我提出最有效的架构。 每天我将获得5 GB的数据。
必须根据要求提供分析报告:例如:1周报告或上个月的前2周报告。是否可以使用HIVe或HBASE立即生成报告?
我想使用Cassandra,Hadoop提供最佳性能。
答案 0 :(得分:2)
Hadoop可以使用map reduce范例或其他方法处理您的数据,使用Spark等新兴技术。优点是可靠的分布式文件系统和数据局部性的使用,以将计算发送到具有数据的节点。
Hive是一种很好的类似SQL的处理文件的方式,每天生成一次报告。它的批处理和每天5个GB不应该产生很大的影响。虽然它具有很高的开销延迟,但如果你每天都这样做,就不应该成为一个问题。
HBase和Cassandra是NoSQL数据库,其目的是以低延迟提供数据。如果这是一项要求,您应该选择其中任何一项。 HBase使用DFS存储数据,Cassandra与Hadoop有良好的连接,因此从这两个来源运行的工作很简单。
对于基于请求的报告,指定日期范围,您应该以有效的方式存储数据,这样您就不必提取报告不需要的数据。 Hive支持分区,可以使用日期(即/<year>/<month>/<day>/
)完成。使用分区可以显着优化您的作业执行时间。
如果您使用NoSQL方法,请确保rowkeys有一些日期格式作为前缀(例如20140521 ...),以便您可以选择以您想要的日期开头的那些。
您还应该考虑的一些问题是: