Hadoop&Spark扫盲 2016-11-06 # Hadoop&Spark扫盲 最近在工作中使用Spark ,突然发现Hadoop ,HDFS,Hive ,Mapreduce等很多大家讨论火热的东西基本只听过名词。今天查了下相关东西,总结在此,如果我的博客帮助到了你,纯属偶然。 ## Hadoop  [Apache Hadoop](http://hadoop.apache.org/) 是受Google 的两篇Paper([Mapreduce](http://research.google.com/archive/mapreduce.html),[Google File System](http://research.google.com/archive/gfs.html))启发诞生的。最早在Nutch项目里,2006年移入Hadoop,命名也有传播很广的故事。 Hadoop 主要包括两步分,** Hadoop Distributed File System (HDFS)**和**Hadoop MapReduce**。很 明显了HDFS解决了存储,MapReduce 更多情况下是一个编程框架。入门者最开始使用MapReduce 的例子基本都是进行词频统计。使用Map进行分词,然后Reduce得到词频,从这个例子也大概可以理解下MapReduce 干的事情。 那经常听到的Hive,Hbase 又是什么鬼? [**Hive**](http://hive.apache.org/) 是建立在Hadoop 之上的数据仓库,可以通过Sql查询和实现一些MapReduce 操作。 [**Hbase**](http://hbase.apache.org/) 是建立在Hadoop之上的一种分布式非关系型数据库。模型也是产生于Google的一篇research [Bigtable: A Distributed Storage System for Structured Data](http://research.google.com/archive/bigtable.html) 。用过的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等多种语言。