首先,我读过这篇文章:Is there an equivalent to `pwd` in hdfs?。它说没有这样的' pwd'在HDFS中。
然而,当我按照Hadoop: Setting up a Single Node Cluster的指示进展时,我在这个命令上失败了:
$ bin/hdfs dfs -put etc/hadoop input
put: 'input': No such file or directory
我第一次成功完成此命令很奇怪我按照说明操作,但第二次失败。我在朋友计算机上成功执行此命令也很奇怪,它与我的系统(Ubuntu 14.04)和hadoop版本(2.7.1)相同。
有谁能解释这里发生的事情?是否有一些' pwd'毕竟在HDFS中?
答案 0 :(得分:3)
首先,您尝试使用 VM / HDFS 中不存在的用户运行命令$ bin/hdfs dfs -put etc/hadoop input
让我用 HDP VM
[root@sandbox hadoop-hdfs-client]# bin/hdfs dfs -put /etc/hadoop input
put: `input': No such file or directory
这里我用root用户执行了命令,它在HDP VM中不存在。检查以下命令以列出用户
[root@sandbox hadoop-hdfs-client]# hadoop fs -ls /user
Found 8 items
drwxrwx--- - ambari-qa hdfs 0 2015-08-20 08:33 /user/ambari-qa
drwxr-xr-x - guest guest 0 2015-08-20 08:47 /user/guest
drwxr-xr-x - hcat hdfs 0 2015-08-20 08:36 /user/hcat
drwx------ - hive hdfs 0 2015-09-04 09:52 /user/hive
drwxr-xr-x - hue hue 0 2015-08-20 09:05 /user/hue
drwxrwxr-x - oozie hdfs 0 2015-08-20 08:37 /user/oozie
drwxr-xr-x - solr hdfs 0 2015-08-20 08:41 /user/solr
drwxrwxr-x - spark hdfs 0 2015-08-20 08:34 /user/spark
在HDFS
中,如果您想要copy
一个文件而不提及目标参数的绝对路径,它会考虑已记录用户的home
并将您的文件放在那里。此处未找到root
用户。
现在让我们切换到hive
用户并测试
[root@sandbox hadoop-hdfs-client]# su hive
[hive@sandbox hadoop-hdfs-client]$ bin/hdfs dfs -put /etc/hadoop input
[hive@sandbox hadoop-hdfs-client]$ hadoop fs -ls /user/hive
Found 1 items
drwxr-xr-x - hive hdfs 0 2015-09-04 10:07 /user/hive/input
Yay ..已成功复制..
希望它有所帮助...... !!!
答案 1 :(得分:0)
这意味着我们需要将输入文件移动到hdfs位置。
假设您有一个名为input.txt的输入文件,我们需要移至HDFS,然后按照以下命令操作。 命令:hdfs dfs -put / input_location / hdfs_location
如果HDFS中没有特定目录 hdfs dfs -put /home/Desktop/input.txt /
如果HDFS中的特定目录(注意:我们需要在继续之前创建目录)
hdfs dfs -put /home/Desktop/input.txt / MR_input
之后您可以运行示例
bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-2.7.1.jar wordcount / input / output
这里输入和输出是应该在HDFS中的路径。
希望这有帮助。