一、什么是Hadoop?
Hadoop是一个适合大数据的分布式存储和计算平台(框架平台/技术生态圈)
Hadoop生态圈技术栈 |
---|
Hadoop(HDFS + MapReduce + Yarn) |
Hive数据仓库工具 |
HBase海量列式非关系型数据库 |
Flume数据采集工具 |
Sqoop ETL工具 |
Kafka高吞吐消息中间件 |
. . . . . . . . |
二、Hadoop的特点
- 扩容能力(Scalable):Hadoop在计算机集群内分配数据并完成计算任务,集群可以方便的扩展到数以千计的节点;
- 低成本(Economical):Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低;
- 高效率(Efficient):Hadoop可以在节点之间动态并行的移动数据,使得速度非常快;
- 可靠性(Rellable):能够自动维护数据的多份复制(副本),并且在任务失败后能够自动的重新部署计算任务
三、Hadoop的发行版本
目前Hadoop发行版本非常多,由Cloudera发行版(CDH)、Hortonworks发行版、华为发行版、Intel发行版等,所有的这些发行版都是基于Apache Hadoop衍生出来的。
企业中主要要到三个版本分别是:Apache Hadoop版本(最原始的,所有发行版均基于这个版本进行改造)、Cloudera版本(Clouderas Distribution Including Apache Hadoop, 简称“CDH”)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”)
- Apache Hadoop 原始版本(学习阶段方便)
官网地址:http://hadoop.apache.org/
- 软件收费版ClouderaManager(生产环境强烈推荐)
官网地址:https://www.cloudera.com/
- 免费开源版本HortonWorks(已被ClouderaManager公司收购)
Apache Hadoop版本更迭
- 0.X版本系列:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.X以及2.X的版本
- 1.X版本系列:Hadoop版本中的第二代开源版本,主要修复0.X版本的一些bug等
- 2.X版本系列:架构产生了重大变化,引入了yarn平台等许多新特性
- 3.X版本系列:EC技术、Yarn的时间轴服务等新特性
四、Hadoop的劣势
- Hadoop不适用于低延迟数据访问;
- Hadoop不能高校存储大量小文件;
- Hadoop不支持多用户写入并任意修改文件。
五、Hadoop的组成
Hadoop = HDFS(分布式文件系统) + MapReduce(分布式计算框架) + Yarn(资源协调框架) +Common模块
1. hadoop HDFS:(HadoopDistrbute File System)一个高可靠、高吞吐量的文件系统
"分而治之"——数据切割、制作副本、分散存储
涉及到的几个角色(也是进程名,所在计算机节点名称)
NameNode(nn):Master节点,管理维护存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。
DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验。
2、Hadoop MapReduce:一个分布式的离线并行计算框架
拆解任务、分散处理、汇总结果
MapReduce计算 = Map阶段 + Reduce阶段
Map阶段就是“分”的阶段,并行处理输入数据;
Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总;
3、Hadoop YARN:作业调度与集群资源管理的框架
计算资源协调
涉及到的几个角色(也是进程名,所在计算机节点名称)
ResourceManager(rm):master ,处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
NodeManager(nm):每个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错;
Container:对任务运行环境的抽象,封装了CPU、内存等多维资源及环境变量、启动命令等任务运行相关信息
ResounceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。
4、Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)