大数据HDFS读写数据

本文由用户“ljg8432418”分享发布 更新时间:2020-06-16 09:26:25 举报文档

以下为《大数据HDFS读写数据》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

读:

步骤1:客户端调用FileSystem的get()方法得到一个实例fs(即分布式文件系统DistributedFileSystem),然后fs调用open()打开希望读取的文件;

步骤2:DistributedFileSystem(fs)通过使用RPC调用NameNode以确定文件起始block的位置。(Block位置信息存储在namenode的内存中)。对于每一个bolck,NameNode返回block所有复本的DataNode地址(并根据与client的距离排序)。

步骤3:DistributedFileSystem(fs).open()返回一个FSDataInputStream对象给client用来读数据。FSDataInputStream封装了分布式文件输入流(DFSInputStream)用于管理NameNode和DataNode的I/O. client对这个输入流调用read()方法。

步骤4:此输入流DFSInputStream has stored the datanode addresses for the first few blocks in the file, then connects to the first(closest) datanode for the first block in the file.通过 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 有权限新建文件,如果检查不通过,则创建失败并向client抛出IOException异常,否则namenode就会创建一条记录。

步骤3:然后DistributedFileSystem(fs)向client返回一个FSDataOutputStream(封装了DFSOutputStream)对象来写数据。在client写数据时,DFSOutputStream将它分成一个个的数据包并写入内部队列,称作数据队列(data queue)。

步骤4:DFSOutputStream会请求namenode在合适的datanodes(默认3个)上分配blocks来存储数据队列。3个datanodes形成一个管线DataStreamer将数据包流式的传输到管线中第一个datanode,第一个datanode存储数据包并发送到第二个datanode, 第二个datanode存储数据包并发送到第三个datanode。

步骤5:DFSOutputStream也维护了一个确认队列(ack queue),当收到管道中所有datanodes的确认信息后对应数据包才会从确认队列中删除。

步骤6:Client完成数据的写入后便对FSDataOutputStream调用close()方法。

步骤7:该操作将所有剩余的数据包写入管线,并等待确认,最后向namenode报告写完成。

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. 数据科学与大数据技术培养方案
  2. 大数据HDFS读写数据
  3. 大数据可视化分析 实训报告
  4. 3.2中位众数练习题
  5. 大数据对传统小数据的拓展及其区别与联系
  6. 20-21-1《数据库原理》实验报告及要求()
  7. 火车采集器说明文档
  8. HC***0 防火墙产品基础课件
  9. java学习
  10. 后疫情时代的经济学分析 ——中文
  11. 数据库复习知识点(1)
  12. 3.1数据编码第2课时-【新教材】教科版()高中信息技术必修一教案
  13. 裴庄产线自动化数据断网应急处置办法
  14. python笔记
  15. 大数据立法建议
  16. 条形统计图教学设计
  17. 数据分析实战EXCEL实现复购率计算

以上为《大数据HDFS读写数据》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览