如何在我的系统上找到hadoop hdfs目录?我需要这个来执行以下命令-
hadoop dfs -copyFromLocal <local-dir> <hdfs-dir>
在这个命令中,我不知道我的hdfs目录。
不确定它是否有用,但我运行了以下命令并得到了这个输出-
hdfs dfs -ls
-rw-r--r-- 3 popeye hdfs 127162942 2016-04-01 19:47 .
在hdfs-site.xml中,我发现了以下条目-
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/hdfs/data</value>
<final>true</final>
</property>
我试图运行以下命令,但它给出了错误-
[root@sandbox try]# hdfs dfs -copyFromLocal 1987.csv /hadoop/hdfs/data
copyFromLocal: `/hadoop/hdfs/data': No such file or directory
仅供参考-我正在azure服务器上的hortonworks沙盒上执行所有这些操作。
4条答案
按热度按时间zdwk9cvp1#
根据第一个答案,我正在详细阐述
Hadoop 1.x
-假设您在伪分布模型上运行这个脚本,您可能会得到一个或两个用户列表(namenodes)-
在我们的完全分发模型中,首先您拥有执行这些操作的管理员权限,并且将有n个namenodes(用户)列表。
现在我们来谈谈我们的观点-
首先到达hadoop主目录,然后从那里运行这个脚本-
结果会是这样的-
所以在这里
xuiob78126arif
是我的名称节点(master/user),名称节点(user)目录是-现在你可以去你的浏览器搜索地址-
从那里你可以得到
Cluster Summary, NameNode Storage
等等。注意:如果datanode中至少存在任何文件或目录,则脚本仅在一个条件下提供结果,否则您将得到-
所以,在这种情况下,你首先把任何文件
bin/hadoop fs -put <source file full path>
在跑步之后bin/hadoop fs -ls /
脚本。现在我希望,你对你的问题有所了解,谢谢。
mfuanj7w2#
找到hdfs目录,并确保深入到安装hadoop的目录。如果
bin/hadoop fs -ls /
显示no o/p表示“/”是hdfs目录。使用mkdir
为map reduce job创建新的dir[例如:hdfs fs -mkdir /user/<local_username>
]. 在这之后copyfromLocal
命令行得通。我是通过艰苦的努力学会的。我希望有人谁是像我一样觉得这有帮助
3duebb1j3#
你的方法是错误的或可能是理解是错误的
dfs.datanode.data.dir
,是要存储数据块的位置如果你打字
hdfs dfs -ls /
您将获得hdfs中的目录列表。然后您可以使用-copyFromLocal
或者-put
到特定目录或使用-mkdir
您可以创建新目录有关更多信息,请参阅下面的链接
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfscommands.html
mum43rcc4#
如果您跑步:
然后本地文件foo.txt将被复制到您自己的hdfs目录中
/user/popeye/bar.txt
(其中popeye
是您的用户名。)因此,以下实现了相同的功能:在将任何文件复制到hdfs之前,请确保先创建父目录。你不必把文件放在这个“home”目录下,但是(1)最好不要把“/”和各种各样的文件混在一起,(2)遵循这个惯例将有助于防止与其他用户发生冲突。