Li'*_*Li' 10 java filesystems hadoop path 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>
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
现在/ user/Li /输出目录在哪里?
我试过了:
lis-macbook-pro:usr Li$ cd /user/Li/output
-bash: cd: /user/Li/output: No such file or directory
Run Code Online (Sandbox Code Playgroud)
所以我认为/ user/Li/output是相对路径而不是绝对路径.
然后我在/ Users/Li/File/Java/hdfstmp中搜索它.有两个文件夹:
DFS
mapred
但我仍然无法在/ Users/Li/File/Java/hdfstmp中找到/ user/Li/output.
Chr*_*ite 11
您的第一个调用hadoop fs -ls是一个相对目录列表,对于当前用户通常根植/user/${user.name}于HDFS中调用的目录.因此,您的hadoop fs -ls命令是列出相对于此位置的文件/目录 - 在您的情况下/user/Li/
您应该能够通过运行aboolute列表并确认内容/输出匹配来断言: hadoop fs -ls /user/Li/
由于这些文件位于HDFS中,因此您无法在本地文件系统中找到它们 - 它们作为块(对于真实文件)分布在群集节点上,并在NameNode中分布在元数据条目(对于文件和目录)中.
所有文件都存在于hdfs下,即Hadoop分布式文件系统.所以这些文件不存在于您的文件系统或目录结构中
在hdfs里面这些存储为
Path("hdfs://host:port/file"));
Run Code Online (Sandbox Code Playgroud)
端口的设置存在于hadoop $ HADOOP_HOME/etc/hadoop/core-site.xml配置目录下的xml文件中
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9010</value>
</property>
Run Code Online (Sandbox Code Playgroud)
您可以在命令行的帮助下查看hdfs下的文件
hdfs dfs -ls
Run Code Online (Sandbox Code Playgroud)
可以从命令行运行基本的linux命令
hdfs dfs -<Command>
Run Code Online (Sandbox Code Playgroud)
借助于此,您还可以创建dir删除文件或目录等