Hadoop文件系统中目录的路径是什么?

时间:2013-11-12 19:52:28

标签: java hadoop path filesystems mahout

最近我开始学习Hadoop和Mahout。我想知道Hadoop文件系统目录中目录的路径。

在hadoop-1.2.1 / conf / core-site.xml中,我指定了:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/Users/Li/File/Java/hdfstmp</value>
  <description>A base for other temporary directories.</description>
</property>

在Hadoop文件系统中,我有以下目录:

lis-macbook-pro:Java Li$ hadoop fs -ls
Found 4 items
drwxr-xr-x   - Li supergroup          0 2013-11-06 17:25 /user/Li/output
drwxr-xr-x   - Li supergroup          0 2013-11-06 17:24 /user/Li/temp
drwxr-xr-x   - Li supergroup          0 2013-11-06 14:50 /user/Li/tweets-seq
-rw-r--r--   1 Li supergroup    1979173 2013-11-05 15:50 /user/Li/u.data

现在/ user / Li / output目录在哪里?

我试过了:

lis-macbook-pro:usr Li$ cd /user/Li/output
-bash: cd: /user/Li/output: No such file or directory

所以我认为/ user / Li / output是相对路径而不是绝对路径。

然后我在/ Users / Li / File / Java / hdfstmp中搜索它。有两个文件夹:

DFS

mapred

但我仍无法在/ Users / Li / File / Java / hdfstmp中找到/ user / Li / output。

2 个答案:

答案 0 :(得分:11)

您对hadoop fs -ls的第一次调用是一个相对目录列表,针对当前用户通常以HDFS中名为/user/${user.name}的目录为根。因此,您的hadoop fs -ls命令列出了相对于此位置的文件/目录 - 在您的情况下/user/Li/

您应该能够通过运行aboolute列表来确认这一点并确认内容/输出匹配:hadoop fs -ls /user/Li/

由于这些文件位于HDFS中,您将无法在本地文件系统中找到它们 - 它们作为块(用于实际文件)分布在群集节点上,并在NameNode中分布在元数据条目(用于文件和目录)中

答案 1 :(得分:6)

所有文件都存在于hdfs下,即Hadoop分布式文件系统。 所以这些文件不存在于您的文件系统或目录结构中

在hdfs中,这些存储为

Path("hdfs://host:port/file"));

端口的设置存在于hadoop配置目录下的xml文件中 $ HADOOP_HOME的/ etc / hadoop的/芯-site.xml中

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9010</value>
</property>

您可以在命令行的帮助下查看hdfs下的文件

hdfs dfs -ls

可以从命令行运行基本的linux命令

hdfs dfs -<Command>

借助于此,您可以创建dir删除文件或dir等其他东西