大数据技术导论task02

第三章:Hadoop分布式文件系统

  • 跟普通文件系统相比,分布式文件系统的块不再是磁盘块的整数倍。块的大小可以通过配置参数来规定。
  • HDFS由n台运行着DataNode的机器和1台运行NameNode的机器构成。
  • 每个DataNode管理一部分数据,存储文件块数据,以及块数据的校验和。
  • NameNode负责管理整个HDFS集群的信息,存储元数据(元数据:比如文件名,文件目录结构,文件属性(生成时间、副本数量、文件权限等))、每个文件的块列表、块所在的DataNode等。
  • DataNode工作机制:
    1、DataNode负责存储管理用户的文件块数据,定期向NameNode汇报自身所持有的block信息(通过心跳报文信息上报)。
    2、Block保存在DataNode节点上,这部分数据并非保存在NameNode磁盘上,是在DataNode启动时上报给NameNode的,NameNode接收到之后,将这些信息保存在内存中。
  • 写数据流程:
    1、 客户端要向HDFS写数据时,首先要跟NameNode通信,请求上传文件。NameNode校验文件的路径、权限等。
    2、 NameNode返回是否可以上传。
    3、 若可以上传,客户端请求获取第一个最近的服务器的存储位置
    4、 客户端请求向该服务器上传数据,本质上是RPC调用(远程请求),建立pipeline,在该服务器收到请求后,又会继续调用后面的两个服务器,将整个pipeline建立完成,再逐级返回给客户端。
    5、 客户端开始向第一个服务器上传第一个block,先从磁盘上读取数据,放到本地内存缓存,以packet为单位,第一个服务器收到一个packet就会传给下一个,下一个再传给下下一个,第一个服务器每传一个packet会放入一个应答队列等待应答。
    6、 当一个block传输完成之后,客户端再次请求NameNode上传第二个block的服务器。
  • 读数据流程:
    1、 客户端跟NameNode通信,查询元数据,NameNode找到文件块所在的DataNode服务器。
    2、 挑选一台DataNode服务器(就近原则),请求建立socket流
    3、 DataNode开始发送数据(从磁盘里读取数据放入流中,以packet为单位来校验)
    4、 客户端以packet为单位来接收,先在本地缓存,然后写入目标文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值