写路径hdfs

kokeuurv  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(462)

介绍
这个问题的后续问题。
一个文件已提供给hdfs,并随后被复制到三个datanode。如果要再次提供相同的文件,hdfs表示该文件已经存在。
根据这个答案,一个文件将被分割成64mb的块(取决于配置设置)。文件名和块的Map将在namenode中创建。这个 NameNode 知道在哪 DataNodes 某个文件的块驻留。如果再次提供相同的文件 NameNode 知道hdfs上存在此文件的块,并将指示该文件已存在。
如果文件的内容被更改并再次提供 NameNode 更新现有文件或检查是否仅限于 mapping of filename to blocks 尤其是 filename ? 哪个流程对此负责?
哪个进程负责将文件拆分为块?
写入路径示例:
根据本文档,hbase的写入路径如下:

可能的写入路径hdfs:
提供给hdfs的文件,例如。 hadoop fs -copyFromLocal ubuntu-14.04-desktop-amd64.iso / 文件名已签入 FSImage 是否已经存在。如果是这样的话 file already exists is displayed 文件拆分为 blocks 64mb(取决于配置设置)。 Question: Name of the process which is responsible for block splitting? 阻碍 replicatedDataNodes (可以配置复制因子)
将文件名Map到namenode中editlog中存储的块(元数据)
问题
你觉得 HDFS' Write Path 看起来像?

44u64gxh

44u64gxh1#

如果文件内容被更改并再次提供,namenode是否更新现有文件,或者检查是否仅限于将文件名Map到块,尤其是文件名?
不,它不会更新文件。name节点只检查路径(文件名)是否已经存在。
hdfs的写路径是什么样子的?
shvachko等人的文章“hadoop分布式文件系统”对此进行了详细的解释,特别是阅读第2.c节(并查看图1):
当客户端写入时,它首先要求namenode选择datanodes来承载文件第一个块的副本。客户机在节点之间组织管道并发送数据。当第一个块被填满时,客户机请求选择新的datanodes来承载下一个块的副本。一个新的管道被组织起来,客户端发送文件的更多字节。每个块的数据节点选择可能不同。客户机、namenode和datanode之间的交互如图1所示
注:基于本文的书章也可以在网上找到。与相应的图(纸上的图1和书上的图8.1)的直接链接在这里。

相关问题