Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,其最核心的设计包括:HDFS和MapReduce
Hadoop的组成:
Hadoop目前主要包括Hadoop1.x和hadoop2.x,两种版本差距较大,目前常用的是Hadoop2.x版本,所以主要基于Hadoop2.x进行讲解
主要组成模块:
Hadoop Distributed File System(HDFS):分布式文件存储系统。
MapReduce:并行计算框架(可以自定义计算逻辑的部分)
Yet Another Resource Negotiator(YARN):另一种资源协调者(顾名思义,Hadoop1.x采用的不是这一个资源管理器)
各个组成模块的作用:
1. Job:由客户端向集群提交的一次计算任务。
2. Task:集群的最小可执行单位(一个Job将会分为多个Task执行)
3. ResourceManager(以下简称RM):管理整个集群的计算资源,主要用于为每一个Job分配计算资源(整个集群只有一个RM)
4. Container:资源分配单位,一个Container包括一些CPU和存储资源
5. NodeManager(以下简称NM):管理单台服务器的计算资源,类似RM的更细粒度实现(集群中每台服务器有一个NM)。
6. ApplicationMaster(以下简称AM):监控每一个Job的执行情况,包括资源申请、Task调度等。
Hadoop的核心就是HDFS和MapReduce,要想了解Hadoop,就必须知道HDFS和MapReduce.
HDFS的主要特点:
高容错性:数据自动保存多个副本(默认存3份),副本丢失后自动恢复
大数据处理:适合处理TB甚至PB级的数据;百万规模的文件数量;10K+节点规模
文件分块存储:HDFS会将一个完整的大文件平均分块存储到不同计算器上
流式文件访问:一次性写入,多次读取,保证数据一致性
廉价机器运行:HDFS可以应用在普通的PC机上,几十台廉价的计算机就可以构成一个大数据集群
MapReduce的主要特点:
1、适合数据复杂度运算
2、不适合算法复杂度的运算
3、不适合实时计算、流式计算、DAG有向图计算
加米谷学院是一家专注于大数据培训的机构,有意向的小伙伴欢迎来加米谷学院咨询。