在hadoop中实时处理非常大的数据集

时间:2015-03-16 10:07:03

标签: hadoop apache-spark hbase

我正在努力了解如何构建大数据解决方案。我有400TB数据的历史数据,每小时插入1GB数据。

由于数据是保密的,我正在描述示例场景,数据包含银行分行中所有活动的信息。每隔一小时,当新数据被插入(没有更新)到hdfs时,我需要找到关闭的贷款数量,创建的贷款,账户到期等等(大约1000个分析要执行)。分析涉及处理整个400TB的数据。

我的计划是使用hadoop + spark。但是我被建议使用HBase。阅读所有文件,我无法找到明确的优势。

将数据增长到600TB的最佳方法是什么? 1.用于分析的MR和用于查询的impala / hive 2.用于分析和查询的星火 3. HBase + MR用于分析和查询

提前致谢

1 个答案:

答案 0 :(得分:4)

关于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用于自定义查询。

希望它至少有一点帮助。