hdfs在哪里存储它的文件

ykejflvf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(1784)

这可能是非常基本的。相对于实际的文件系统,单节点hdfs在哪里存储文件?
我正在使用clouderavm学习hadoop。
例如,/home/cloudera中名为sample.txt的文件可以使用

hadoop fs -copyFromLocal /home/cloudera/sample.txt hdfs://localhost/user/cloudera/sample.txt

如果我使用linux搜索/user/cloudera目录,实际上没有这样的目录。
现在假设我更改了/home/cloudera/sample.txt的内容,这些更改不会反映在hdfs中存储的文件中。
我有两个问题:
相对于实际的文件系统,单节点hdfs在哪里存储文件?
为什么对原始文件所做的更改不会反映到hdfs上的文件中。

dffbzjpn

dffbzjpn1#

当您从本地文件系统(如您的示例所示)将数据加载到hdfs中时,hdfs会将其内容拆分为存储在文件系统中的数据块 dfs.datanode.data.dir (选自 hdfs-default.xml 配置文件)。元数据(包括每个文件的名称、时间戳等)由单独数据库中的name节点守护进程管理。您可以在datanode data dir中看到的文件结构与实际的hdfs文件系统结构没有任何关系。
当您更改刚上载到hdfs中的原始文件时,此更改显然对hdfs卷中存储的数据没有影响。这与您将文件从usb闪存驱动器复制到主目录相同,然后更改了usb上的原始文件,不知道为什么更改没有在您的homedir中传播。

sbtkgmzw

sbtkgmzw2#

hdfs数据块存储在${dfs.data.dir}中,默认情况下,它指向${hadoop.tmp.dir}/dfs/data。在linux系统中,hadoop.tmp.dir的值是/tmp。如果要覆盖默认值,请检查hdfs-default.xml文件。
我不知道你所说的“没有反映到hdfs中的文件”是什么意思。这些文件只是数据块,您不能仅仅读取它们,并且在通过这些数据块访问时希望它们具有与您的文件相同的内容hdfs://...

相关问题