博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDFS中的读写数据流
阅读量:5999 次
发布时间:2019-06-20

本文共 820 字,大约阅读时间需要 2 分钟。

hot3.png

1.文件的读取:

    首先、客户端铜鼓调用FileSystem对象中的open()函数读取它需要的数据。FileSystem是HDFS中DistributeFileSystem的一个实例。DistributeFileSystem会通过RPC协议调用NameNode来确定请求文件所在的位置,对于每个返回的块都包换块所在的DataNode地址,随后这些返回的DataNode会按照Hadoop定义的集群拓扑结构得出客户端的距离。然后再进行排序,如果客户端本身就是一个DataNode那么它将从本地读取文件。这里要关注的一个设计要点是,客户端通过NameNode引导获取最合适的DataNode地址,然后直接连接DataNode读取数据。这种设计的好处,这可以使HDFS扩展到更大规模的客户端并行处理。这是因为数据的流动所有的DataNode之间分散进行的,同时NameNode的压力也变小。

2.文件写入

①客户端通过调用DistributeFileSystem对象中的Create()创建一个文件,通过RPC()调用在NameNode的文件系统命名空间中创建一个新文件。

②NaneNode会通过多种验证保证新的文件不存在文件系统中,并且确保请求客户端有创建按文件的权限。如果成功distributeFileSystem返回一个FSDataOutputStream给客户端写人数据

③当客户端写入数据时,DFSoutputStream会将文件分割成包,然后放入内部队列,DataStreamer,作用是请求NameNode为新的文件包分配合适的DataNode存放副本。

④DFSoutputStream同时也会保存在一个包的内部队列,用来等待管道中的DataNode返回确认信息。

《hadoop实战第二版》…
机械工业出版社
…..
陆嘉恒著;

转载于:https://my.oschina.net/u/782865/blog/126504

你可能感兴趣的文章
lvreduce -L 1000M /dev/vg0/lv0 表示最后缩减至多大,不是减少了多大
查看>>
ES 自动恢复分片的时候不恢复了是磁盘超过了85%,然后不恢复了 ES可以配置多个数据目录...
查看>>
linux查杀病毒的几个思路
查看>>
宽带速度
查看>>
构建之法阅读笔记5
查看>>
Android判断网络连接状态
查看>>
leetcode_1033. Moving Stones Until Consecutive
查看>>
logback logback.xml常用配置详解(二)<appender>
查看>>
js常用的函数库
查看>>
Sqlserver 数据库安全
查看>>
netstat命令简单使用
查看>>
Python标示符命名规则
查看>>
SSL certificate problem unable to get local issuer certificate解决办法
查看>>
20145209 刘一阳 《网络对抗》实验四:恶意代码分析
查看>>
个人学期总结
查看>>
CodeForces 985E Pencils and Boxes
查看>>
为什么Elasticsearch查询变得这么慢了?
查看>>
Cetos 中添加bbr服务
查看>>
win7_64位操作系统安装python3.6.3遇到的问题和解决方法
查看>>
html5笔记
查看>>