Java大数据学习~Hadoop初识二读取与写入流程

昨天的文章我们简单的说了下Hadoop中HDFS的内容,今天我们来了解下HDFS的 都写入流程。当然该流程也是一个经常面试遇到的一个问题。

HDFS的 写入流程

在HDFS客户端想要往HDFS写入文件,流程如下

  1. 首先客户端发送请求,携带者配置文件信息,还有文件的路径
  2. 访问到NameNode后,NameNode根据文件路径,去查看该路径是否存在,不存在继续将文件进行Block切割还有DataNode信息。存在追缴内容到对应的文件上
  3. 客户端接收到NameNode信息后,根据返回的Block信息访问到最近的DataNode上,打开Socket链接,进行访问,然后一个DataNode会接着链接第二个DataNode,第二个会继续链接第三个将pipeline链接构成,再返回给客户端。
  4. client开始传输数据到最近的DataNode上传输第一个Block,按照一个包packet为64K的大小进行写入,在写入的时候会进行数据校验,防止数据写入出现错误的问题。然后形成链式操作到第三个datanode上结束。
  5. 一个Block传输完毕后,再回接着传输第二个Block。到对应的DataNode上。
  6. 整个流程就会循环的 执行,传输完毕整个文件。
  7. 最后关闭链接的访问,告知namenode完成任务。

HDFS的读取过程

  1. 客户端访问NameNode,根据发送的路径进行检查。
  2. 存在 ,返回给客户端Block还有存储的DataNode信息。不存在,返回给客户端异常信息
  3. 客户端根据发送的Block还有DataNode信息,与其建立Socket链接,DataNode开始发送数据,还是按照packet来作为单位进行校验。
  4. 本地客户端进行接收。先缓存下来、然后根据块进行数据汇总。完成读取操作。
  5. 最后关闭链接的访问。

原文发布于微信公众号 - LuckQI(YoungRUIQ)

原文发表时间:2018-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏破晓之歌

python,django,pip一些查看版本,升级版本的命令

4.1 ImportError No module named setuptools 请参考《ImportError No module named setu...

1153
来自专栏Hadoop实操

如何使用Sentry管理Hive外部表权限

使用如下命令在HDFS的根目录下创建Hive外部表的数据目录/extwarehouse

8578
来自专栏Netkiller

Apache Hbase 快速入门

本文节选自《Netkiller Database 手札》 ? 第 62 章 Apache Hbase 目录 62.1. 安装 Apache Hbase 62...

3396
来自专栏一名合格java开发的自我修养

3.sparkSQL整合Hive

  spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据。从Spark 1....

833
来自专栏Hadoop实操

如何重置Cloudera Manager的admin密码

如果你忘记Cloudera Manager的admin用户密码,需要重置。那么本文刚好能帮到你。

41010
来自专栏Hadoop实操

如何在Hive & Impala中使用UDF

本文档讲述如何开发Hive自定义函数(UDF),以及如何在Impala中使用Hive的自定义函数,通过本文档,您将学习到以下知识:

66416
来自专栏Hadoop实操

Avro序列化&反序列化和Spark读取Avro数据

本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFrame进行操作。

7899
来自专栏搜云库

使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试

什么是 Phoenix ? Apache Phoenix 是运行在Hbase之上的高性能关系型数据库,通过Phoenix可以像使用jdbc访问关系型数据库一样访...

2925
来自专栏bboysoul

磁盘分析工具Ncdu的简单使用和体验

因为我使用的是120g的固态硬盘,所以我的本地就不能存很多东西,经常要删除很多东西,所以看每个目录的大小就很重要,下面推荐一个磁盘分析工具Ncdu,这个工具是用...

541
来自专栏跟着阿笨一起玩NET

Remoting配置文件的用法

本文转载:http://www.cnblogs.com/rickie/archive/2004/10/10/50392.html

572

扫码关注云+社区