我的机器上安装了hadoop(单节点)。我如何与hdfs进行交互?
我认为使用hadoop fs mkdir创建一个目录会使该目录中的所有内容都在hdfs中,但我可以使用普通的linux命令交互写入该目录。也许我完全误解了文件系统是如何工作的,但我认为它只是附加的,只能使用它的api来访问。
答案 0 :(得分:3)
Hadooop有三种类型的安装:
在前两种模式下安装了HDFS。但在第三种模式下,HDFS不存在,但是模拟了。您可以调用“$ hadoop fs -ls”之类的命令,但它可以与您的本地文件系统一起使用,而不是使用hdfs。
此外,HDFS不是全功能文件系统。要与它进行交互,您应该使用视图中的命令:
等
HDFS无法安装到您的linux文件系统(至少没有其他软件),并且支持有限的命令。您也无法使用“cp”命令将文件放入hdfs。你应该使用
hadoop fs -put local_file_or_directory
要将文件从hdfs复制到本地文件系统,您应该使用:
hadoop fs -get filename
答案 1 :(得分:1)
HDFS是OS文件系统之上的文件系统,每个文件系统都在其自己的命名空间中运行。因此,HDFS命名空间在OS命名空间中不可见。使用hadoop fs commands与HDFS命名空间进行交互。
元数据(文件夹,每个文件夹中的文件,文件夹到块映射)存储在NameNode的fsImage中。 offline image viewer可用于查看NameNode上fsImage文件的内容。