大数据:Hadoop2.x---HDFS介绍

HDFS

  • Hadoop建议存储大文件,如果是大量的小文件,会消耗大量内存。同时map任务的数量是由splits来决定的,所以用MapReduce处理大量的小文件时,就会产生过多的map任务线程管理开销将会增加作业时间。处理大量小文件的速度远远小于处理同等大小的大文件的速度。

NameNode

  • 整个文件系统的管理节点,维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。
  • 运行时所有数据都保存到内存,整个HDFS可存储的文件数受限于NameNode的内存大小
  • 一个Block在NameNode中对应一条记录(一般一个block占用150字节)
  • 接收用户的操作请求
  • 元数据文件包括:保存在linux的文件系统 tmp/dfs/...
              fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
              edits:操作日志文件。
              fstime:保存最近一次checkpoint的时间
  • 元数据存储细节

  • 工作流程:NameNode始终在内存中保存metedata,用于处理“读请求”,到有“写请求”到来时,NameNode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回 

Secondary NameNode

  • 定时与NameNode进行同步(定期合并文件系统镜像和编辑日志,然后把合并后的传给NameNode,替换其镜像,并清空编辑日志,类似于CheckPoint机制),但NameNode失效后仍需要手工将其设置成主机
  • Hadoop会维护一个fsimage文件==metedata镜像,fsimage与NameNode内存中的metedata不同步,而是自动每隔一段时间通过合并edits文件来更新内容。

 

  • lfs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。 l
  • lfs.checkpoint.size    规定edits文件的最大值,一旦超过则强制checkpoint,不管时间间隔。默认大小是128M

 DataNode

  • 保存具体的block数据,负责数据的读写操作和复制操作,DataNode启动时会向NameNode报告当前存储的数据块信息,后续也会定时报告修改信息,DataNode之间会进行通信,复制数据块,保证数据的冗余性.
  • 分块存储 block块:基本存储单位 128M,默认副本3份
  • 同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值