Hadoop 如何在HDFS中更新文件

Hadoop 如何在HDFS中更新文件,hadoop,hdfs,hadoop2,Hadoop,Hdfs,Hadoop2,我知道HDFS是一次写入,多次读取。 假设如果我想在HDFS中更新一个文件,有没有办法呢 提前谢谢你 如果要添加行,必须放置另一个文件并连接文件: hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile 要修改已写入文件的任何部分,您有三个选项: 从hdfs获取文件并在本地文件中修改其内容 hdfs-dfs-copyToLocal/hdfs/source/path/localfs/destination/path 或 hdfs-dfs-

我知道HDFS是一次写入,多次读取。
假设如果我想在HDFS中更新一个文件,有没有办法呢


提前谢谢你

如果要添加行,必须放置另一个文件并连接文件:

hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile
要修改已写入文件的任何部分,您有三个选项:

  • 从hdfs获取文件并在本地文件中修改其内容

    hdfs-dfs-copyToLocal/hdfs/source/path/localfs/destination/path

    hdfs-dfs-cat/hdfs/source/path |修改…

  • 使用处理技术更新为或,结果将显示为文件目录,您将删除旧文件。这应该是最好的办法

  • 安装NFS或Fuse,两者都支持追加操作

    :mountableHDFS,有助于使用mount命令将HDFS作为标准文件系统装载(在大多数Unix版本上)。安装后,用户可以使用标准Unix实用程序(如“ls”、“cd”、“cp”、“mkdir”、“find”、“grep”)对hdfs实例进行操作


  • 选项1:

    如果您只想附加到现有文件中

  • echo”“| hdfs dfs-appendToFile-/user/hduser/myfile.txt

  • hdfs dfs-appendToFile-/user/hduser/myfile.txt
    然后在终端上键入文本。输入完毕后,点击“Ctrl+D”

  • 选项2:

    将原始文件从HDFS获取到本地文件系统,对其进行修改,然后将其放回HDFS

  • hdfs-dfs-get/user/hduser/myfile.txt

  • vi myfile.txt
    #或使用任何其他工具对其进行修改

  • hdfs dfs-put-f myfile.txt/user/hduser/myfile.txt


  • 我知道这已经快一年了,但是对于任何可能正在寻找答案的人来说——在选项2中,放置一个已经存在的文件将导致错误。首先需要从HDFS中移动/重命名/删除该文件。您可以使用
    hdfs dfs-mv/home/hduser/myfile.txt/home/hduser/old_myfile.txt对其进行重命名,也可以简单地为
    put
    命令添加
    -f
    标志。最新答案;)