在 hdfs 文件系统中创建文件的标准方法是什么?

What's the standard way to create files in your hdfs filesystem?

我了解到我必须在 hdfs-site.xml 中配置 NameNode 和 DataNode 目录。这就是我在 NameNode 上的 hdfs-site.xml 配置:

<configuration>
 <property>
    <name>dfs.replication</name> 
    <value>3</value>
  </property>

 <property>
    <name>dfs.namenode.name.dir</name> 
    <value>file://usr/local/hadoop-2.6.0/hadoop_data/hdfs/namenode</value>
  </property>

 <property>
    <name>dfs.block.size</name> 
    <value>134217728</value>
  </property>
</configuration>

我在我的 DataNode 上做了几乎相同的事情,并将 dfs.namenode 更改为 dfs.datanode.

然后我通过

格式化了文件系统
hadoop namenode -format

一切似乎都没有错误地完成了。 然后我想使用以下方法在我的 HDFS 文件系统中创建一个目录:

hdfs dfs -mkdir test

我得到一个错误:

mkdir: `test': No such file or directory

我错过了什么或者从格式化到使用 HDFS 创建 files/directories 的常见过程是什么?

嗯,很简单。

hdfs dfs -mkdir /test

创建成功。

hdfs dfs -put myFile /test/myFile

同样有效。

创建目录:

hdfs dfs -mkdir directoryName

在目录中创建一个新文件

hdfs dfs -touchz directoryName/Newfilename

写入HDFS中新创建的文件

nano filename

保存Cntr+XY

从 HDFS 读取新创建的文件

nano fileName

hdfs dfs -cat directoryName/fileName

如果你想创建多个 sub-directories 那么你还应该使用 -p 标志:

hdfs dfs -mkdir -p /test/another_test/one_more_test

HDFS 是一个不 POSIX 兼容的文件系统,因此您不能直接在 HDFS 内部编辑文件,但是您可以使用以下命令将文件从本地系统复制到 HDFS:

hdfs dfs -put /path/in/source/system/filename /path/in/HDFS/system/destination