从fs -ls从列出来的文件看,这个文件夹/user/root/input是通过root用户创建的。说明你在从本地文件系统拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令,你可能忘记切换用户了,可以删除现在的input目录(采用root用户运行hadoop的删除命令,或者不删除也没关系),重新使用hadoop用户把input导入到hdfs系统中试试看。
另外,实际上应用的时候是需要关注hdfs中文件的目录结构的。你现在采用的是默认的方式,缺省会放/user/${user.name}目录下。
在把本地文件导入到hdfs的时候,是可以指定传到什么目录的,比如:
#创建input目录
sh bin/hadoop fs -mkdir /user/hadoop/input
#把myfile.txt导入到hdfs的input目录下
sh bin/hadoop fs –put /usr/hadoop/mydata/myfile.txt /user/hadoop/input
你创建input目录的时候是不是也用了sudo命令?这样的话就是使用了root用户来创建了input,所以生成的是user/root/input,而不是用了hadoop这个用户创的目录,所以没有生成/user/hadoop/input。hadoop的指令都不需要用sudo来使用root权限啊,
进入本机hadoop 文件夹下 执行
用 bin/hadoop fs -rmr /user/root
然后 bin/hadoop fs -mkdir /user/hadoop/input