hadoop简单介绍及架构设计

hadoop简单介绍及架构设计

集群

并行:提升速度的关键

计算向数据移动

分布式。分而治之。并行计算

HDFS

存储模型:字节

文件线性切割成块(Block):偏移量 offset (面对原文件的索引)

Block分散存储在集群节点中

单一文件Block大小一致,最后一块可能分配不均

副本:

副本分散在不同节点中------副本数不要超过节点数量

只支持一次写入多次读取,同一时刻只有一个写入者,Block的大小不会再次改变,可append追加数据,不能修改

block数据块,最大存储大小为128M,一个数据块只属于一个文件,每个块默认有三个副本,且互为副本

架构模型:主从

元数据:除了文件内容之外的。包含文件的名字,时间,所属用户,权限,文件大小等......

(主)NameNode节点保存文件元数据,接收客户端的读写请求:单节点 posix(虚拟文件系统,目录树,edits日志文件,Fsimage)基于内存存储:不会和磁盘发生交换,只存在内存中,但会使用磁盘做持久化,

(从)DataNode节点保存文件Block数据:多节点(保存数据)

DataNode保存的数据就是映射对应NameNode目录树上的数据,实时汇报block的信息(block列表:block偏移量),位置信息。

DataNode与Node保存心跳,保存Block列表 (客户端)HdfsClient先与NameNode交互元数据,与DataNode交互文件Block数据,会存储block的元数据信息文件

SNN(SecondaryNameNode)默认3600秒合并一次 :合并元数据文件(edtis和fsimage)她不是NN的备份,主要工作是帮助NN合并editslog,减少NN启动时间

Hadoop优点:高容错性,数据自动保存多个副本,副本丢失后,自动恢复。

适合批处理:移动计算而非数据,数据位置暴露给计算框架

适合大数据处理:GB.TB.PB级数据,百万规模以上的文件数量,10K+节点

可构建在廉价的机器上:通过多副本提高可靠性,提供容错和恢复机制。

缺点:低延迟数据访问,小文件存取,并发写入,文件随机修改。

1.客户端先向NN发送文件

2.namenode判断是否有上传权限(没有权限返回给客户端)

3.NN返回给客户端可以上传的datanode的列表

4.在客户端把文件切成多个数据块,读入数据队列中。

5.把数据队列中的packet写入第一个DN

一个block由多个packet(最大64K)组成

6.通过管道同步写入第二个DN,第三个DN(以packet为单位写入),每写一个会有一个是否写入成功的报告返回ack,统计一个block返回的ack,统计超过半数ack成功,产生副本,不成功的ack会循环写入直到成功。

7.block写完返回全部ack则结束。

1.客户端调用open函数发送请求给NN。

2.NN检查是否有读的权限

3.就近原则返回给客户端每个数据库所在的DN列表

4.就近原则选择第一个DN读取第一个block

5.把读取的block数据存到数据队列中

6.读取第二个block。。。。。。

塔式服务器 机架服务器 刀片服务器

HDFS文件权限POSIX

r:read,w:write,x:execute

原文地址:https://www.cnblogs.com/huzicourenao/p/11006045.html