HDFS文件在线编辑的实现思路

今天思考到一个问题,HDFS文件怎么实现的在线编辑?

hdfs 有个 -put 命令,允许携带一些参数完成特殊的需求:

  1. 上传文件
    hdfs dfs -put
  2. 在文件中追加
    hdfs dfs -appendToFile
  3. 强制更新
    hdfs dfs -put -f

首先上传了一个文件到HDFS上:hdfs dfs -put test1File /haddop/test1File

然后需要在这个文件中进行内容追加:hdfs dfs -appendToFile test2File /hadoop/test1File

最后需要重置hdfs上的文件内容:hdfs dfs -put -f test1File /hadoop/test1File

下面是测试的过程:

[hdfs@potter hdfs]$ cat test1File 
hello
[hdfs@potter hdfs]$ cat test2File 
Hey
[hdfs@potter hdfs]$ hdfs dfs -mkdir hdfs://cluster:8020/data/test11
[hdfs@potter hdfs]$ hdfs dfs -put test1File hdfs://cluster:8020/data/test11/
[hdfs@potter hdfs]$ hdfs dfs -cat hdfs://cluster:8020/data/test11/test1File
hello
[hdfs@potter hdfs]$ hdfs dfs -appendToFile test2File hdfs://cluster:8020/data/test11/test1File
[hdfs@potter hdfs]$ hdfs dfs -cat hdfs://cluster:8020/data/test11/test1File
hello
Hey
[hdfs@potter hdfs]$ hdfs dfs -put -f test1File hdfs://cluster:8020/data/test11/test1File
[hdfs@potter hdfs]$ hdfs dfs -cat hdfs://cluster:8020/data/test11/test1File
hello

最后,在线编辑文件的方式,可以通过覆盖命令实现:hdfs dfs -put -f <修改过的文件> <线上已经存在的文件>

你可能感兴趣的:(HDFS,hadoop)