hadoop(三)进一步理解
HDFS的实现思想:
1.hdfs是通过分布式集群来存储文件,吧文件切分成block,存放在若干平台的datanode数据节点
2.hdfs文件系统的文件与block之间有映射关系,由namenode命名服务器管理
3.每一个block在集群中会存多个副本,好处是可以提高系统的可靠性,还可以提高系统的吞吐量
Map Reduce
- JobTracker
hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度
- TaskTracker
启动和管理Map和Reduce子任务的节点
NameNode和SecondaryNamenode
职责:1.维护元数据信息
2.维护hdfs目录树
3.响应客户端的请求
1、客户端上传文件时,NN首先往edits log文件中记录元数据操作日志
2、客户端开始上传文件,完成后返回成功信息给NN,NN就在内存中写入这次上传操作的新产生的元数据信息
3、每当editslog写满时,需要将这一段时间的新的元数据刷到fsimage文件中去
editslog与fsimage的合并是SecondaryNamenode去做的:
·fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。
·fs.checkpoint.size-规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。
Datanode
提供真实文件数据的存储服务。
·文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.
dfs.block.size
·不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间Replication。多复本。默认是三个。
hdfs-site.xml的cfs.replication属性来定义Block副本数,默认值3
YARN
yarn
MapReduce要运行job,yarn产生jobId,并把文件放入指定目录,之后分发到机器,并在各个节点上分配运行容器,产生一个主管进程appMaster,使得yarn的通用性很强,不仅仅支持MapReduce这种运算模型,也能支持