Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题,广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈,进入官网
Hadoop的优势
- 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性:能够自动将失败的任务重新分配
Hadoop的组成部分
在 Hadoop1.x 时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大;在Hadoop2.x时代,增加了Yarn,Yarn只负责资源的调度,MapReduce只负责运算变化;
Hadoop3.x在组成上没有变化
HDFS
Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。主要组成:
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
- DataNode(dn):在本地文件系统存储文件块数据以及块数据的校验和
- Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份
YARN
Yet Another Resource Negotiator,简称 YARN,资源协调者,是 Hadoop 的资源管理器
- ResourceManager(RM):整个集群资源(内存、CPU等)的老大
- NodeManager(NM):单个节点服务器资源老大
- ApplicationMaster(AM):单个任务运行的老大
- Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等
MapReduce
MapReduce 将计算过程分为两个阶段:Map 和 Reduce
- Map 阶段并行处理输入数据
- Reduce 阶段对 Map 结果进行汇总