Hadoop命令

Fra*_*s S 6 hadoop microsoft-distributed-file-system

我在这个位置安装了Hadoop

在/ usr /本地/ Hadoop的$

现在我想列出dfs中的文件.我使用的命令是:

hduser @ ubuntu:/ usr/local/hadoop $ bin/hadoop dfs -ls

这给了我dfs中的文件

Found 3 items
drwxr-xr-x   - hduser supergroup          0 2014-03-20 03:53 /user/hduser/gutenberg
drwxr-xr-x   - hduser supergroup          0 2014-03-24 22:34 /user/hduser/mytext-output
-rw-r--r--   1 hduser supergroup        126 2014-03-24 22:30 /user/hduser/text.txt
Run Code Online (Sandbox Code Playgroud)

下次,我以不同的方式尝试了同样的命令

hduser @ ubuntu:/ usr/local/hadoop $ hadoop dfs -ls

它也给了我相同的结果.

有人可以解释为什么两个都在工作,尽管从不同的文件夹执行ls命令.我希望你们理解我的问题.只是解释我这两者之间的区别:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls
hduser@ubuntu:/usr/local/hadoop$ hadoop dfs -ls
Run Code Online (Sandbox Code Playgroud)

Sac*_*inJ 6

在unix中,可以通过两种方式执行可执行文件,方法是在系统可执行文件路径中给出绝对/相对路径或命令(路径应在PATH变量中指定)

当你执行时bin/hadoop dfs -ls应该在目录/ usr/local/hadoop里面.或者/usr/local/hadoop/bin/hadoop dfs -ls也会工作

unix中有一个环境变量PATH,它默认保存在可执行位置列表中,保留以下路径/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:.每当我们执行任何命令,如ls,mkdir等时,它都是从PATH变量中的一个位置获取的.当你给命令hadoop时(它将从路径/ usr/local/hadoop/bin /中获取).因为您在PATH变量中指定了路径/ usr/local/hadoop/bin /.使用以下命令检查PATH变量的值

echo $PATH
Run Code Online (Sandbox Code Playgroud)