我有150gb的mysql数据,计划将mysql替换为casandra作为后端。分析,计划使用hadoop、hive或hbase。目前我有4台物理机用于poc。请有人帮我想出最有效的架构。每天我将获得5 gb的数据。每日状态报告我必须发送给每个客户。必须根据要求提供分析报告:例如:1周报告或上月前2周报告。是否可以使用hive或hbase立即生成报告?我想用cassandra和hadoop提供最好的性能。
oxiaedzo1#
hadoop可以使用map-reduce范式或其他新兴技术(如spark)来处理数据。其优点是有一个可靠的分布式文件系统,并使用数据局部性将计算发送到拥有数据的节点。hive是一种很好的类似sql的方法,可以处理文件并每天生成一次报告。这是批处理,每天多出5 gb应该不会产生太大影响。虽然它有很高的延迟开销,但是如果你每天做一次的话应该不会有问题。hbase和cassandra是nosql数据库,其目的是以低延迟服务数据。如果这是一个要求,你应该去任何这些。hbase使用dfs来存储数据,而cassandra有很好的hadoop连接器,因此运行使用这两个源的作业非常简单。对于基于请求、指定日期范围的报表,应该以有效的方式存储数据,这样就不必接收报表不需要的数据。hive支持分区,可以使用date(即。 /<year>/<month>/<day>/ ). 使用分区可以显著优化作业执行时间。如果您使用nosql方法,请确保行键具有某种日期格式作为前缀(例如20140521…),以便您可以选择以所需日期开始的行键。您还应考虑以下问题:您希望在群集中存储多少数据—例如,最近180天等。这将影响节点/磁盘的数量。注意数据通常被复制3次。在hdfs中有多少个文件-当文件数很高时,namenode在检索文件元数据时会受到很大的影响。存在一些解决方案,例如复制namenode或使用mapr hadoop发行版,这些发行版本身不依赖namenode。
/<year>/<month>/<day>/
1条答案
按热度按时间oxiaedzo1#
hadoop可以使用map-reduce范式或其他新兴技术(如spark)来处理数据。其优点是有一个可靠的分布式文件系统,并使用数据局部性将计算发送到拥有数据的节点。
hive是一种很好的类似sql的方法,可以处理文件并每天生成一次报告。这是批处理,每天多出5 gb应该不会产生太大影响。虽然它有很高的延迟开销,但是如果你每天做一次的话应该不会有问题。
hbase和cassandra是nosql数据库,其目的是以低延迟服务数据。如果这是一个要求,你应该去任何这些。hbase使用dfs来存储数据,而cassandra有很好的hadoop连接器,因此运行使用这两个源的作业非常简单。
对于基于请求、指定日期范围的报表,应该以有效的方式存储数据,这样就不必接收报表不需要的数据。hive支持分区,可以使用date(即。
/<year>/<month>/<day>/
). 使用分区可以显著优化作业执行时间。如果您使用nosql方法,请确保行键具有某种日期格式作为前缀(例如20140521…),以便您可以选择以所需日期开始的行键。
您还应考虑以下问题:
您希望在群集中存储多少数据—例如,最近180天等。这将影响节点/磁盘的数量。注意数据通常被复制3次。
在hdfs中有多少个文件-当文件数很高时,namenode在检索文件元数据时会受到很大的影响。存在一些解决方案,例如复制namenode或使用mapr hadoop发行版,这些发行版本身不依赖namenode。