HDFS

2018-07-28  本文已影响0人  第三个账号
优点:
高可靠

缺点:
不适合低延迟数据访问
不适合大量小文件存储
不适合并发写入,文件随机修改

HDFS分为三个节点
NameNode:
    存储元数据(文件所有者,权限)
    保存文件,block,DataNode之间的映射关系
    元数据保存在内存之中
    元数据存储到磁盘文件名微fsimage
    block的位置信息不保存到fsimage.
    edits记录堆元数据的操作日志。
    处理客户端的读写服务
SecondNameNode:
    帮助NameNode合并edits文件到fsimage.
    默认3600秒或者文件大小超过64M,进行edits文件合并。
    fs.checkpoint.period,  fs.checkpoint.size
DataNode:
    存储文件内容
    文件内容保存在磁盘
    维护block id到DataNode本地文件的映射关系
    向NameNode发送心跳保持联系(3秒),如果NameNode10分钟没有收到心跳,则认为改DataNode已经失效。

block副本存放策略:
    第一个副本:存放在上传文件的DateNode上。如果是集群外提交,则随机挑选一台磁盘不太满,cpu不太忙的节点。
    第二个副本:放置在与第一个副本不同机架的节点上。
    第三个副本:与第二个副本相同机架的节点上。
    更多副本:随机节点

HDFS读流程
客户端通过NameNode访问HDFS
![Kazam_screenshot_00000.png](https://img.haomeiwen.com/i13257943/ef370b13f03dd699.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

HDFS文件写入流程
![Kazam_screenshot_00002.png](https://img.haomeiwen.com/i13257943/c15f218ec3ba0faa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    客户端提交文件信息到NameNode
    NameNode返回DateNode,block信息给客户端
    客户端向DateNode写入block
    DateNode负责副本的复制
    副本复制完成,通知客户端block写入完成
    当所有block都写入完成后,客户端通知NameNode文件写入完成。

HDFS数据存储单元block
文件被切分成固定大小的数据块
    默认64M,可配置。
    若文件大小不到64M,则单独存成一个block
文件存储方式
    按大小切分成若干block,存储到不同节点上
     默认每个block都有3个副本
block大小和副本数通过客户端上传文件时设置。文件上传成功后,文件副本数可变更,block 大小不可变更。

HDFS安全模式:
    文件的block位置信息由DataNode上报给NameNode.当HDFS文件系统重启动时,NameNode会重新接受DataNode上报文件block位置信息。在此期间,HDFS处于安全模式。安全模式下不可写入文件。

HDFS文件权限
    r,w,x
    阻止好人做错事,而不是阻止坏人做坏事
上一篇下一篇

猜你喜欢

热点阅读