混淆HDFS' pwd'当量

时间:2015-09-03 12:18:54

标签: hadoop hdfs

首先,我读过这篇文章: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中?

2 个答案:

答案 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中的路径。

希望这有帮助。