各种大数据框架近几年发展得如火如荼,比如Hadoop, MapReduce,Hive, Hbase, Storm, Spark, Flink, Kylin 等,各个框架的角色是怎么样的?如何配合起来使用?本文将从时间顺序上逐个说明。
首先要介绍一下Hadoop,现在Hadoop分为3部分,分别是HDFS,Yarn和Mrv2
近几年大数据潮流的推进,是需求和技术相互促进的结果,对大数据需求最强烈公司非Google这个互联网巨头莫属,所以Google率先攻克了大数据处理的技术难题,满足了它自己的业务需要。Google采用的方法是“分布式计算”,用大量的普通服务器组成集群,并发处理数据;
Google总结自己的经验,发了3篇论文,被称为大数据的三大论文。开源社区基于论文中的设计思路,实现了Hadoop开源软件,让更多的中小公司可以低成本地运用大数据,然后进一步引出更多的大数据需求。
多机并行处理的思想由来已久,但是实现一个多机协同的并行处理程序难度非常高,Hadoop开源软件拆除了这个障碍。目前Hadoop被称为一个“生态”,相关的软件项目繁多,通常情况下,大家说的Hadoop,指的是提供海量数据存储能力的HDFS,管理大量机器运算资源的Yarn以及一个编程框架MapReduce。有了这些工具,普通水平的程序员也可以轻松处理TB级别的数据。
上图的App指的是一个具体的任务,比如运行一个word count,在大数据集上对某个列进行排序等。
HDFS:
HDFS的设计思路主要有三点:一是普通服务器的硬性故障是常态,而不是“异常”,所以分布式文件系统要有自动化的容错性;二是和Linux或者Windows的文件系统相比,分布式文件系统存储的文件要大得多,所以存储粒度大