Linux 如何在我的系统上找到Hadoop hdfs目录?
如何在我的系统上找到Hadoop HDFS目录? 我需要这个来运行以下命令-Linux 如何在我的系统上找到Hadoop hdfs目录?,linux,azure,hadoop,hdfs,hortonworks-data-platform,Linux,Azure,Hadoop,Hdfs,Hortonworks Data Platform,如何在我的系统上找到Hadoop HDFS目录? 我需要这个来运行以下命令- hadoop dfs -copyFromLocal <local-dir> <hdfs-dir> 在hdfs-site.xml中,我发现以下条目- <property> <name>dfs.datanode.data.dir</name> <value>/hadoop/hdfs/data</value>
hadoop dfs -copyFromLocal <local-dir> <hdfs-dir>
在hdfs-site.xml中,我发现以下条目-
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/hdfs/data</value>
<final>true</final>
</property>
仅供参考-我正在azure服务器上的hortonworks沙盒上执行所有这些操作。您的方法是错误的,或者可能理解是错误的
dfs.datanode.data.dir是存储数据块的位置
如果键入hdfs dfs-ls/
,您将获得hdfs中的目录列表。然后,您可以使用-copyFromLocal
或-put
将文件从本地传输到hdfs,或使用-mkdir
创建新目录
有关更多信息,请参阅下面的链接
如果您运行:
hdfs dfs -copyFromLocal foo.txt bar.txt
然后,本地文件foo.txt将被复制到您自己的hdfs目录/user/popeye/bar.txt
(其中popeye
是您的用户名)。因此,以下操作实现了相同的效果:
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
在将任何文件复制到hdfs之前,请确保首先创建父目录。您不必将文件放在这个“主”目录中,但(1)最好不要将“/”与各种文件混在一起,(2)遵循此约定将有助于防止与其他用户发生冲突。根据第一个答案,我将为Hadoop 1.x
-
假设您在伪分布模型上运行此脚本,您可能会得到一个或两个用户列表(NameNodes)-
在我们的完全分发模型中,首先您拥有执行这些操作的管理员权限,并且将有N个NameNodes(用户)列表
现在我们来谈谈我们的观点-
首先访问Hadoop主目录,然后从那里运行此脚本-
bin/hadoop fs -ls /
结果会是这样-
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
因此这里xuiob78126arif
是我的名字节点(master/user),名字节点(user)目录是-
/user/xuiob78126arif/
现在,您可以转到浏览器并搜索地址-
http://xuiob78126arif:50070
从那里可以获得集群摘要、NameNode存储等
注意:如果DataNode中至少存在任何文件或目录,则脚本仅在一种情况下提供结果,否则您将获得-
ls: Cannot access .: No such file or directory.
因此,在这种情况下,您首先通过bin/hadoop fs-put
然后运行bin/hadoop fs-ls/
脚本
现在我希望,您已经了解了您的问题,谢谢。找到HDFS目录并确保您已深入到hadoop安装的目录。如果bin/hadoop fs-ls/
显示无o/p,则表示“/”为hdfs目录。使用mkdir
为map reduce作业创建一个新目录[例如:hdfs-mkdir/user/
]。在此之后,put或copyfromLocal
命令将起作用
这是我通过艰苦的努力学会的。我希望像我这样呆头呆脑的人会觉得这很有帮助你是说我应该尝试复制popeye目录中的文件?我使用了“hdfs dfs-ls/”命令,并且我能够将文件复制到该命令列出的目录中。
http://xuiob78126arif:50070
ls: Cannot access .: No such file or directory.