1、 Hadoop介绍
从狭义上来说,Hadoop是指适合海量数据分布式存储和分布式计算的平台,它有三大核心组件:
HDFS(分布式文件系统):解决海量数据的存储。
YARN(作业调度和集群资源管理的框架):解决资源任务调度。
MAPREDUCE(分布式运算编程框架):解决海量数据计算。
从广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
目前的Hadoop已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多,其中不乏一些非Apache主管的项目,这些项目对HADOOP是很好的补充或者更高层的抽象。比如:
HDFS:分布式文件系统
MAPREDUCE:分布式运算程序开发框架
HIVE:基于HADOOP的分布式数据仓库,提供基于SQL的查询数据操作
HBASE:基于HADOOP的分布式海量数据库
ZOOKEEPER:分布式协调服务基础组件
Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
Oozie:工作流调度框架
Sqoop:数据导入导出工具(比如用于mysql和HDFS之间)
Flume:日志数据采集框架
Impala:基于Hadoop的实时分析
2、Hadoop的优点:
高扩展性(Scalable):Hadoop是在可用的计算机集群间分配数据并完成计算任务,可以方便的扩展到数以千计的节点中。
成本低(Economical):Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。
高效率(Efficient):在MapReduce的思想下,通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。
高可靠性(Rellable):能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。
3、Hadoop 1.x 和2.x的区别:
Hadoop1.0:由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成。
Hadoop 2.0:则包含一个支持NameNode横向扩展的HDFS,一个资源管理系统YARN和一个运行在YARN上的离线计算框架MapReduce。相比于Hadoop1.0,Hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。
4 Hadoop集群简介
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
HDFS集群负责海量数据的存储,集群中的角色主要有:
NameNode、DataNode、SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:
ResourceManager、NodeManager
MapReduce是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。