hadoop命令

p8ekf7hl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(26)|浏览(497)

我在这个位置安装了hadoop
/usr/local/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

下一次,我以不同的方式尝试了相同的命令
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
whhtz7ly

whhtz7ly1#

两个命令都在做同样的事情。
检查/etc/bashrc或/root/.bashrc
在那里,您将找到hadoop\ home set,bin path与path变量一起添加。设置此选项时,我们将能够在命令行的任何位置执行hadoop命令。没有其他用途。。!!!

e7arh2l6

e7arh2l62#

很可能你已经出口了
路径变量中的$hadoop\u home/bin。
如果它是emr,那么它就是export hadoop\u prefix=/usr/lib/hadoop export path=$path:$hadoop\u prefix/bin
你可以查看路径并找出答案

jmo0nnb3

jmo0nnb33#

在hadoop安装过程中的某个时刻,您可以配置hdfs文件系统。最后,您可以使用hdfs namenode-format格式化它。从这一点上说,dfs不是指您自己的文件系统,而是指hdfs文件系统。当您执行hadoopdfs-ls时,它会在hdfs文件系统上显示用户的主目录。当您执行命令时,从主机文件系统的哪个位置开始并不重要,因为它没有被使用。
但是,不配置hdfs是可能的,它将使用本地文件系统。无论哪种方式,hadoop dfs-ls都会显示用户主目录的内容。
注意,如果删除用户目录/user/hduser并执行hadoop dfs-ls,则会出现错误,因为用户目录不存在。
资料来源:https://amodernstory.com/2014/09/23/installing-hadoop-on-mac-osx-yosemite/

另一个:

aelbi1ox

aelbi1ox4#

在这两种情况下,您得到了相同的结果,因为您已经在bashrc文件中设置了hadoop\u home/bin,您可以通过sudo nano~/.bashrc检查条目,我们这样做是因为无论当前文件目录如何,都可以方便地从终端执行命令
如果从bashrc文件中删除hadoop\u home/bin条目,将不会得到相同的结果

z9smfwbn

z9smfwbn6#

它之所以能工作,是因为您没有执行shell“ls”命令,而是将“ls”作为参数传递给命令“hadoop”,所以在这两种情况下,都会执行具有相同参数的同一确切命令,即“hadoop dfs-ls”,唯一的变化是,在一种情况下,您正在使用path对其进行限定,而在另一种情况下,您没有这样做,因为“hadoop”必须在$path环境变量中设置。

bwleehnv

bwleehnv7#

查找与 hadoop 命令,运行:

which hadoop

这将打印出 hadoop 使用的命令。

lo8azlld

lo8azlld8#

这是因为bashrc linux env安装程序

  1. export HADOOP_PREFIX=/usr/local/hadoop/ 2) export PATH=$PATH:$HADOOP_PREFIX/bin 完成此操作后,我们需要运行命令
exec bash
gzszwxb4

gzszwxb49#

安装hadoop时,它的二进制文件会添加到/usr/bin文件夹中。
文件夹/bin、/sbin、/usr/bin中的任何二进制文件都可以从unix中的任何路径和用户获得。证明:1:https://askubuntu.com/questions/571617/what-is-the-purpose-of-the-bin-directory
要补充的是,folders/bin和/sbin等之间存在差异,这里解释了这些差异(https://askubuntu.com/questions/308045/differences-between-bin-sbin-usr-bin-usr-sbin-usr-local-bin-usr-local)

elcex8rz

elcex8rz10#

这与操作系统有关,与hadoop无关。
当您在没有显式路径的情况下运行命令时,操作系统将搜索路径变量中的位置。在安装hadoop的过程中,必须在用户配置文件(.bashrc或.profiles)中设置以下变量

export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$HADOOP_INSTALL/bin:$PATH

因此,每当你键入以下内容时,它都会签入 $HADOOP_INSTALL/bin 因为您已经在os path变量中设置了此路径。

hadoop dfs -ls

当您键入以下内容时,它将使用代码段中的当前文件夹路径 /usr/local/hadoop 就在你现在的文件夹下面 bin/hadoop 文件

bin/hadoop dfs -ls

因此,在这两种情况下,它都使用同一个文件执行,但在一种情况下通过path变量对其进行标识,在另一种情况下通过当前目录内容路径(绝对路径)对其进行标识。

w7t8yxp5

w7t8yxp511#

这是因为在配置hadoop时设置了path变量。path包含到hadoop主页的路径,所以即使您没有指定/bin路径,它也会从path变量中获取它。

cotxawn7

cotxawn712#

hadoop可执行文件位于/bin/文件夹中,因此只要将/bin/hadoop/设置为$path中的'hadoop'变量,它就是完全相同的命令。您可以在 ~/.bashrc 文件。从根目录中尝试cat.bashrc,以便查看。

ehxuflar

ehxuflar13#

当您以hadoop用户身份登录时,只需在终端中键入hado,然后按tab键,您将得到hadoop,这意味着您的hadoop安装程序工作正常。。所以你的~./bashrc文件也被正确设置了。。这意味着,当您从任何目录结构hadoopdfs-ls/使用此命令时,它将为您提供hdfs中存在的所有文件的列表

smtd7mpg

smtd7mpg14#

必须给出绝对路径,后跟bin/hadoop dfs-ls

Absolute_path/bin/hadoop dfs -ls
lskq00tm

lskq00tm15#

只需在.bashrc文件中设置所有hadoop、yarn和其他路径。它会从任何地方跑出来。
标准hadoop>bin/hadoopfs-ls有关hadoop的更多详细信息,请参阅下面的hadoop论坛。
http://tekzak.com/forum/viewforum.php?f=2&sid=5d01e2e3c27aebc6e7ee95447ef328a4

相关问题