快捷搜索:  汽车  科技

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)1.首先客户端HDFS Client 会创建一个Distributed FileSystem 这个对象 来做为hdfs的客户端 然后这个客户端Distributed FileSystem 会发送一个请求给namenode然后我们再去看文件下载的过程3.然后namenode上面记录的这个文件的blk_1这个块 可以看到记录了他存在了datanode1上面一份具体的块的数据 在datanode2上面存了一份具体的块的数据 在datanode3上面存了一份具体的块的数据4.然后同样namenode上面记录的这个文件的blk_2这个块 可以看到记录了他存在了datanode1上面一份具体的块的数据 在datanode2上面存了一份具体的块的数据 在datanode3上面存了一份具体的块的数据​

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)(1)

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)(2)

然后我们再来看下 这个客户端去从hadoop的hdfs上面读取数据的一个过程.

1.首先我们先看一下hadoop是怎么来存数据的.

2.首先对于namenode节点来说 我们说他存了元数据 比如他这里存了一个/usr/atguigu/ss.avi这个文件 注意他仅仅是存了一个元数据 比如名字 路径.

然后namenode还存了 比如我这个文件有两个block块 比如是blk_1 和blk_2 这两个块.然后为了安全起见 这个namenode也会把这两个块信息 存3个副本放起来.

3.然后namenode上面记录的这个文件的blk_1这个块 可以看到记录了他存在了datanode1上面一份具体的块的数据 在datanode2上面存了一份具体的块的数据 在datanode3上面存了一份具体的块的数据

4.然后同样namenode上面记录的这个文件的blk_2这个块 可以看到记录了他存在了datanode1上面一份具体的块的数据 在datanode2上面存了一份具体的块的数据 在datanode3上面存了一份具体的块的数据

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)(3)

hadoop处理大数据的意义(大数据之-Hadoop之HDFS读数据流程)(4)

然后我们再去看文件下载的过程

1.首先客户端HDFS Client 会创建一个Distributed FileSystem 这个对象 来做为hdfs的客户端 然后这个客户端Distributed FileSystem 会发送一个请求给namenode

这个请求中 包含了我要下载哪个文件

2.然后namenode收到请求以后 会返回给客户端 要下载的文件的路径 以及这个文件在哪个datanode上存放着呢

这个时候namenode会根据 机器离客户端的距离优先 然后再考虑机器的负载 把一个带有这个文件的 并且离客户端最近 并且负载最小的一个datanode返回过去.

3.然后客户端收到namenode返回的文件的元数据以后 然后创建一个FSDataInputStream 一个文件输入流 客户端发送读取请求给datanode1 比如datanode1是

namenode返回给客户端的读取第一个blk_1块的datanode服务器 然后去请求读取 namenode返回的那个比如blk_1这个块的数据

4.然后开始第一个blk_1块的数据传输.

5.客户端读取blk_1这个块的数据以后 然后再去读取blk_2这个块的数据去.

6.然后再去传输blk_2块的数据内容去.

然后传输完所有的块数据 这个文件就下载完了.



猜您喜欢: