13

最近我开始学习 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

地图红

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

4

2 回答 2

13

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

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

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

于 2013-11-13T00:14:47.023 回答
7

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

在 hdfs 内,这些存储为

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

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

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

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

hdfs dfs -ls

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

hdfs dfs -<Command>

借助它,您还可以创建 dir 删除文件或 dir 以及其他内容

于 2016-01-28T12:22:06.973 回答