Hadoop与Spark是当前两个流行的大数据架构,也是非常重要的开源技术。对于Hadoop与Spark,业内很多专业人士都进行了对比分析。中培伟业《大数据Hadoop与Spark架构应用实战》蒋老师在这里就Hadoop与Spark两大架构的认识发表了自己的看法。
Hadoop
Apache Hadoop 是受Google 的两篇Paper( Mapreduce , Google File System )启发诞生的。最早在Nutch项目里,2006年移入Hadoop,命名也成为行业内的一段谈资。
Hadoop 主要包括两步分,** Hadoop Distributed File System (HDFS) 和 Hadoop MapReduce**。很 明显了HDFS解决了存储,MapReduce 更多情况下是一个编程框架。入门者最开始使用MapReduce 的例子基本都是进行词频统计。使用Map进行分词,然后Reduce得到词频。
那经常听到的Hive,Hbase 是什么? Hive 是建立在Hadoop 之上的数据仓库,可以通过Sql查询和实现一些MapReduce 操作。 Hbase 是建立在Hadoop之上的一种分布式非关系型数据库。模型也是产生于Google的一篇research Bigtable: A Distributed Storage System for Structured Data 。用过的Cassandra也是一种Bigtable的实现。
你可能会听到 Hadoop YARN ,YARN 是作业管理框架,蒋老师认为MapReduce 是建立在YARN上的。
Spark
在Spark 出来之后看到有人说Spark会代替Hadoop 但经老师根据自己的认识给出了不同的观点。蒋老师指出, Spark 的重点在于数据的处理和计算能力,它并没有解决数据存储问题。换句话说它相当于Hadoop Mapreduce的升级版。通常Spark都是和Hadoop 一起使用的。因为Spark需要HDFS这样的存储系统,Spark又比Hadoop Mapreduce 更快,个人感觉Api更丰富,对于机器学习算法来说更友好。 当然Spark 可以不需要Hadoop ,Hadoop 也可以不需要Spark. Spark 还提供了Spark Sql, Spark Stream,Spark Mlib, Spark GraphX 一些丰富的功能,而且支持Java, Scala, Python,R等多种语言。