1、Hadoop是什么?
1)是一个由Apache基金会开发的"分布式系统基础框架"。
2)主要解决,海量数据的"存储"和海量数据的"分析计算"问题。
3)广义来说,Hadoop通常是指一个更广泛的概念-->"Hadoop生态圈"。
2、Hadoop组件
目录
2.1、Yarn框架概述
- 另一种"资源协调者",是Hadoop的资源管理器。
"组件":
1)ResourceManager(rm):整个集群资源(内存、CPU)的老大。
2)NodeManager(nm):单个节点服务器的资源的老大。
// 任务在Container容器中运行
3)ApplicationMaster(am):单个任务运行的老大。
// Container容器放在NodeManager里
4)Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,
如内存、CPU、磁盘、网络等。
容器的"好处":
- 如果当前容器模拟的服务器被使用完之后,可以自动释放空间给NodeManager。
"注意":
1)客户端可以有多个。
2)集群上可以运行多个ApplicationMaster
3)每个NodeManager上可以有多个Container
2.2、HDFS框架概述
"HDFS"是什么?
- 简称HDFS,是一个"分布式文件系统"。
"组件":
1)NameNode(nn):"存储文件"的"元数据",如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),
以及每个文件的块列表和块"所在的DataNode"等。
2)DataNode(dn):在"本地文件系统存储文件"块数据,以及块数据的校验和。
// 在NameNode挂掉后,可以恢复部分NameNode数据
3)Secondary NameNode(2nn):"每隔一段"时间对"NameNode"元数据"备份"。
2.3、MapReduce概述
- MapReduce将计算过程分为了两个阶段:Map和Reduce
"Map阶段":并行处理输入的数据。
"Map特点":
- 独立工作,只负责检索自己的当前节点
"Reduce阶段":对Map结果进行汇总。