大数据笔记06:大数据之Hadoop的HDFS(文件的读写操作)
1. 首先我们看一看文件读取:
(1)客户端(java程序、命令行等等)向NameNode发送文件读取请求,请求中包含文件名和文件路径,让NameNode查询元数据。
(2)接着,NameNode返回元数据给客户端,告诉客户端请求的文件包含哪些块以及这些块位置(块在哪些DataNode中可以找到)。
比如:下面的数据块A在DataNode1、DataNode2、DataNode4中可以找到,这些信息就会反馈给客户端,这样客户端就知道数据块A可以在DataNode1、DataNode2、DataNode4中可以找到。
(3)接下来根据之前NameNode反馈的元数据,获知数据块的DataNode分布。这样的话,客户端就会去这些DataNode去读取Blocks,下载获取这些数据块,如下:

(4)组装数据块,形成完整的文件。
这样读取过程就完成了。
2. 接着我们看看文件的写入过程:
(1)先看看写入的总流程图,如下:

(2)写入数据第一步客户端拆分文件成块(固定大小,内容大小默认64M),客户端拆分完毕之后,通知NameNode。这个时候NameNode会返回当前在线而且拥有足够磁盘空间的DataNode的信息给客户端。客户端根据这个返回的DataNode信息,对块Blocks进行写入。注意块数据一块一块写入的,比如上面第一写入的数据块就是数据块C(写入到DataNode1)。DataNode1利用一个复制管道(流水线复制),把数据块C复制DataNode3、DataNode4上面。最后更新元数据,告诉NameNode已经完成创建一个新的数据块C的存在。
大数据笔记06:大数据之Hadoop的HDFS(文件的读写操作)的更多相关文章
- Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)
日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...
- Hadoop基础-HDFS的API常见操作
Hadoop基础-HDFS的API常见操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习HDFS时的一些琐碎的学习笔记, 方便自己以后查看.在调用API ...
- Hadoop之HDFS文件操作常有两种方式(转载)
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- Hadoop之HDFS文件操作
摘要:Hadoop之HDFS文件操作常有两种方式.命令行方式和JavaAPI方式.本文介绍怎样利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- 大数据笔记(二)——Apache Hadoop的体系结构
一.分布式存储 NameNode(名称节点) 1.维护HDFS文件系统,是HDFS的主节点. 2.接收客户端的请求:上传.下载文件.创建目录等. 3.记录客户端操作的日志(edits文件),保存了HD ...
- hadoop学习笔记(六):HDFS文件的读写流程
一.HDFS读取文件流程: 详解读取流程: Client调用FileSystem.open()方法: 1 FileSystem通过RPC与NN通信,NN返回该文件的部分或全部block列表(含有blo ...
- hadoop执行hdfs文件到hbase表插入操作(xjl456852原创)
本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info ...
- hadoop的hdfs文件操作实现上传文件到hdfs
这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...
- Hadoop学习-hdfs安装及其一些操作
hdfs:分布式文件系统 有目录结构,顶层目录是: /,存的是文件,把文件存入hdfs后,会把这个文件进行切块并且进行备份,切块大小和备份的数量有客户决定. 存文件的叫datanode,记录文件的切 ...
随机推荐
- C#串口控制
串行口是计算机的标准接口,现在的PC机(个人电脑)一般至少有两个串行口COM1和COM2.串行口应用广泛,在数据通信.计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息.本节通过几个 ...
- HTML cellpadding与cellspacing属性
单元格(cell) -- 表格的内容 单元格边距(表格填充)(cellpadding) -- 代表单元格外面的一个距离,用于隔开单元格与单元格空间 单元格间距(表格间距)(cellspacing) - ...
- python运维开发之第三天
一.第二天课程的复习总结 1.列表可以增删改查,元组是不可修改的列表,字符串是不可以修改的. 2.列表,元组是有序的,字典是无序的,字典的key唯一 3.列表字典可以嵌套列表,可以嵌套字典,可以嵌套多 ...
- ionic list item-radio checked
<div class="list"> <label class="item item-radio" ng-repeat="k in ...
- Coupons
uva10288:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&am ...
- haskell趣学指南笔记1
网址:http://learnyouahaskell.com/ 中文版:http://learnyouahaskell-zh-tw.csie.org/zh-cn/ready-begin.html 在 ...
- HDU4666 Hyperspace(曼哈顿)
题目链接. 分析: 这是多校的一个题,当时没做出来.学长说让用multiset. 用multiset将每一个数的1<<dim个状态全部保存.假设状态 i, 最远曼哈顿距离应当是 max[i ...
- poj1797 - Heavy Transportation(最大边,最短路变形spfa)
题目大意: 给你以T, 代表T组测试数据,一个n代表有n个点, 一个m代表有m条边, 每条边有三个参数,a,b,c表示从a到b的这条路上最大的承受重量是c, 让你找出一条线路,要求出在这条线路上的最小 ...
- 【转】掌握java枚举类型(enum type)
原文网址:http://iaiai.iteye.com/blog/1843553 1 背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...
- GCC依赖库顺序问题
今天在把linux下做的ipmsg移植到windows过程中,因为包含了一个开源库SimpleSocket,而这个库又引用了winsock2,没太注意就写下了下面的makefile: g++ -o t ...