温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
本节课我们来讨论一下HDFS数据上传的过程。HDFS是hadoop的分布式文件系统,全称是hadoop distributed file system. 这里可以把HDFS看成是一个网盘,通过数据的上传和数据的下载,我们可以把海量的数据以文件形式存储在HDFS中。下面具体讨论一下HDFS数据上传的过程。HDFS是客户端、服务器端架构,Name node是HDFS的主节点,负责接收客户端的请求,数据最终会以数据块的形式存储在data notde上。这里为了方便说明,一共有三个data notde客户端执行命令上传一个文件,如A点MP4,假设文件大小为200兆,该文件会被切分成数据块的形式,最终保存在data notde上。在默认的情况下,HDFS的数据块大小是128兆。注意,数据块是一个逻辑大小,它和物理大小不是一一对应的。在H。
01:00
DFS内部会由file system对象负责执行该命令。第一步,File system对象会创建DFS client对象。第二步,由DFS client对象与name node建立RPC连接,并请求name node生成文件的原信息。这里的RPC全称是remote procedure Co, 中文是远程过程调用。第三步,Name notde负责生成文件的原信息。原信息中包含如下内容,如文件名大小、数据块个数以及数据块的存储位置。由于上传的A点MP4文件大小为200兆,因此原信息中包含两个数据块的位置信息。第4步,Name node将生成的源信息返回给file system对象。第5步,由file system对象创建输出流output stream对象。第6步,Output stream对象根据第4步得到的原信息把第一个数据块上传到data node1上。第7步和第8步,当成功上传了第一个数据块后,HDFS.
02:00
自动触发数据块的水平复制,将第一个数据块复制到data notde2和data notde3上,从而满足冗誉度的要求。第9步,Output stream对象通过使用循环把第二个数据块进行上传,上传成功后再循环执行第7步和第8步,直到把所有的数据块上传到HDFS。从这个过程中可以看出,当name node返回文件的源信息后,整个上传的过程是客户端与data node直接进行操作,这个操作过程是不需要通过name node的。理解了这个过程后,对进一步查看HDFS源码是非常有帮助的,因为这个过程中涉及的对象都是源码中的类。现在你已经知道HDFS数据上传的过程了,那你知道HDFS数据下载的过程吗?欢迎评论区留言讨论好了记得点加号关注赵玉强老师。
我来说两句