我试图理解如何构建一个大数据解决方案。我有400tb的历史数据,每小时插入1gb的数据。
由于数据是保密的,所以我在描述示例场景,数据包含银行分支机构中所有活动的信息。每一个小时,当新的数据被插入到hdfs中(没有更新)时,我需要找出有多少贷款被关闭,贷款被创建,帐户过期,等等(大约要执行1000个分析)。分析包括处理整个400tb的数据。
我的计划是使用hadoop+spark。但有人建议我使用hbase。通读所有的文件,我找不到明显的优势。
对于将增长到600tb的数据,最好的方法是什么
1用于分析的mr和用于查询的impala/hive
2spark用于分析和查询
三。hbase+mr用于分析和查询
提前谢谢
1条答案
按热度按时间mspsb9vt1#
关于hbase:
hbase是基于hdfs构建的数据库。hbase使用hdfs存储数据。基本上,hbase允许您更新记录,对单个记录进行版本控制和删除。hdfs不支持文件更新,因此hbase引入了一些您可以考虑的“虚拟”操作,并在请求数据时合并来自多个源(原始文件、删除标记)的数据。另外,作为键值存储的hbase正在创建索引以支持按键选择。
您的问题:
在这种情况下选择技术时,您应该考虑如何处理数据:在impala上进行单个查询(使用avro模式)可以比mapreduce(更不用说spark)快得多。当涉及缓存时,spark在批处理作业中会更快。
您可能对lambda体系结构很熟悉,如果不熟悉,请查看一下。我现在可以告诉你的是,你提到的第三种选择(仅适用于hbase和mr)不太好。我没有尝试impala+hbase,所以我不能说任何关于性能的东西,但是hdfs(普通文件)+spark+impala(使用avro)对我有用:spark为预定义的查询做报告(之后,数据存储在objectfiles中-不是人类可读的,但是非常快),impala为自定义查询。
希望至少有点帮助。