02HDFS架构

https://www.cnblogs.com/zhoujingyu/p/5040957.html

https://blog.csdn.net/firstchange/article/details/78567456

 

HDFS数据存储元(block)

  - 文件被切分成固定大小的数据块

    • 默认数据块大小为64MB(Hadoop1.x),128MB(Hadoop2.x)可以配置
    • 若文件大小不到64MB,则单独存成一个block,大小是多少,占磁盘多少。

  - 一个文件存储方式

    • 按大小被切分成若干个block,存储到不同节点上
    • 默认情况下每个block都有三个副本

  - Block大小和副本数通过Clien端上传文件时设置,文件上传成功后副本数可以变更,Block Size不可变更

 

HDFS设计思想:

 

NameNode(NN):
  - NameNode主要功能:接受客户端的读写服务

  - NameNode保存metadata信息,包括:

    • 整个文件系统的目录信息
    • 文件owership(所有者)和permissions(权限)
    • 文件包含哪些block
    • 文件包含的Block保存在哪个DataNode(由DataNode启动时上报)

  - NameNode的metadata信息在启动后会加载到内存:

    • metadata存储到磁盘文件名为“fsimage” (持久化,文件的权限信息,包含哪些block块)
    • Block的位置信息不会保存到“fsimage”
    • edits记录对metadata的操作日志

    

SecondaryNameNode(SNN):

  - 它不是NameNode的备份(但可以做备份),它的主要工作是帮助NameNode合并edits log,减少NameNode启动时间

  - SecondaryNameNode执行合并时机:

    • 根据配置文件设置的时间间隔fs.checkpoint.period默认3600秒
    • 根据配置文件设置edits log大小fs.checkpoint.size规定edits文件的最大值,默认是64MB

SecondaryNameNode合并流程:

 

 

DataNode(DN):

  - 存储数据(block)

  - 启动DataNode线程的时候会向NameNode汇报block信息(block位置信息),保存到NameNode的metadata(fsimage文件)中

  - 通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其他DataNode,以保证每个文件的每个Block至少保存有3个副本

 

 

Block的副本放置策略:

 

HDFS写流程

 

HDFS读流程

 

HDFS文件权限:

  - 与Linux文件权限类似

    • r:read;w:write;x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容

  - 如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是张三

  - HDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁

 

安全模式:

  - namenode启动的时候,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作

  - 一旦在内存中成功建立文件系统元数据的映射,则创建一个新的fsimage文件(这个操作不需要SecondaryNameNode)和一个空的编辑日志

  - 此刻namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的(显示目录,显示文件内容等。写、删除、重命名都会失败)。

  - 在此阶段Namenode手机各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的,在一定比例(可以设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束

  - 当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中。

HDFS安装:

  完全分布式安装

      • 下载
      • 解压
      • 检查java和ssh的免密码登录
      • 修改core-site.xml
      • 修改hdfs-site.xml
      • 修改masters文件和slaves文件
      • 格式化namenode
      • start-hdfs.sh启动

转载于:https://www.cnblogs.com/xinmomoyan/p/10617195.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值