赞
踩
Hadoop的核心组件有HDFS、MapReduce和Yarn,以及其他常用组件如:HBase、Hive、Hadoop Streaming、Zookeeper等。具体如下图:
Zookeeper:分布式协同服务。主要解决分布式下数据管理问题:统一命名、状态同步、集群管理、配置同步等。
Hdfs架构设计图及各主要模块和运行流程:
Hdfs主要有:namenode:管理元数据,DataNode:储存数据,client 和客户端交互。有两个模块 一个是读文件 一个是写文件。
读文件的流程:client 接收到请求,client 请求namenode获取文件的位置,然后client读取DataNode上的数据,在客户端处理好之后给用户。
写文件的流程:client接收到请求,client 请求namenode询问应该把数据放到哪里。然后client流式储存这个数据到block上,然后这个数据复制到备份机上,备份机存好之后。另外一台备份机上再存储一次。
1 冗余备份 2 跨机架副本存放 3 心跳检测 4 数据完整性检测 5 安全模式 6 核心文件备份 7 空间回收。
Hdfs dfs -ls
Hdfs dfs -put
Hdfs dfs -mkdir
Hdfs dfs -get
Hdfs dfs -help
Hdfs dfs -cat
Hdfs dfs -rm
Hdfs dfs -text
Hdfs dfs -touch
Hdfs dfs -cp
文件格式:文件格式按面向的存储形式不同,分为面向行和面向列的两大类文件格式。
压缩格式:压缩格式按其可切分计算性,分为可切分计算和不可切分计算两种
MapReducer的流程:Pre-map 对数据进行切割,分成多个split。Map 把数据转换成K,V形式,然后进行partition分区并且排序,然后进行combine本地聚合,然后到shuffle ,拷贝map节点的数据,然后进行文件合并,然后sort排序,然后到reducer阶段,对数据聚合,然后输出到hdfs上。
流程图如下:
在平台上运行 yarn jar testhdfs-jar-with-dependencies.jar 类名 +文件地址;
1向“外”横向扩展,而非向“上”纵向扩展
2失效被认为是常态
3移动计算,把处理向数据迁移(数据本地性)
4顺序处理数据、避免随机访问数据
5推测执行
6平滑无缝的可扩展性
7为应用开发隐藏系统底层细节
Yarn双层调度架构设计图及各模块的主要作用和运行流程:
Yarn 主要是由resourcemanager,nodemanager,applicationmaster和container组成。
Resourcemanager的作用有:1处理客户端的请求,2监控nodemanager,3启动applicationmaster。4资源分配与调度。
Nodemanager的主要作用有:1管理单个节点上的资源,2处理resourcemanager的命令,3处理applicationmaster的命令。
Applicationmaster的作用有:1向resourcemanager汇报心跳,2向resourcemanager申请资源,开启任务,3 Applicationmaster负责task的管理。
Container的作用有:1是yarn中资源的抽象,Applicationmaster和task都运行在这里。要注意的是:使用Container可能会导致数据出现不一样的情况。
运行流程图如下:
1先进先出:排队进行任务的处理,先到先做
2容器调度器:允许多用户共享整个集群,每个用户或组织分配专门的队列,不支持抢占式。队列内部默认使用FIFO,也支持Fair调度
3公平调度器:目标是为所有用户分配公平的资源。也支持多用户共享集群,也可划分多队列。队列内部不是FIFO,而是采用公平分配的方式。
同时启动多个RM,基于Zookeeper实现HA避免单点故障,但同时只有一个是active状态
ApplicationMaster挂掉后,由ResourceManager负责重启。ResourceManager的ApplicationsManager模块会保存已经完成的Task,重启后无需重新运行。ApplicationMaster需要处理内部任务的容错问题,如Task Failure。
若包含Task计算任务执行失败后,ApplicationMaster决定处理方法。若包含AM任务,则由RM重启一个新的Container运行AM。
通过心跳把信息反馈给AM,或者心跳超时被AM感知,由AM通过重试恢复Task。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。