像大多数文件系统一样,Hadoop为每个用户保留一个主目录,这些主目录都位于HDFS上的/user路径下.在继续深入之前,如果主目录不存在的话,需要我们自己创建主目录.
当启动了hadoop集群之后,可以到在浏览器中输入http://localhost:50070/dfshealth.html
进入hadoop提供的ui页面.里面有HDFS的文件系统.
常用命令
fs命令类似于unix系统命令,只是在前面加了"-".
- -mkdir 创建文件夹.
bin/hadoop fs -mkdir /user //如果主目录不存在的话,需要我们自己创建user主目录
bin/hadoop fs -mkdir /user/hdusr //创建自己的用户目录
bin/hadoop fs -mkdir input // 默认创建的文件夹位于/user/hdusr/下
当然也可以指定创建的路径:
bin/hadoop fs -mkdir /usr/local/hadoop/input
- -rmdir 注意-rmdir命令只能删除空文件夹,如果你想删除的文件夹里有内容,你需要先用-rm命令删除里面的文件.
bin/hadoop fs -rmdir /usr/local/hadoop/input
- -rm 删除文件.
bin/hadoop fs -rm output/part-r-00000
bin/hadoop fs -rm output/*
- -cat 显示文件内容.
bin/hadoop fs -cat /user/hdusr/output/part-r00000
- -ls 显示指定目录下的文件夹.
bin/hadoop fs -ls /user/hdusr
- -put 上传文件.
bin/hadoop fs -put myfile/* input/
- -copyToLocal 从HDFS里拷贝文件到本地
bin/hadoop fs -copyToLocal /user/hdusr/output/* result/
如果在-put或者-copyToLocal时遇到了
Permission denied at hdfs
的错误,检查一下你操作的本地文件的权限,如果不是hadoop用户,使用chown命令修改权限
cd /usr/local
sudo chown -R hdusr:hdusr hadoop
stackoverflow有更详细的解答,只是修改权限这个方法恰好适合我.如果不适合你,你可以试试上面提到的其他方法.
重建HDFS系统
有时候你可能需要删除core-site.xml中的hadoop.tmp.dir的value所在路径,即/usr/local/hadoop/tmp删除,然后重新建立一遍,你需要用chown指令再把文件的所属更改一下。最后还要重新format.即:
cd /usr/local/hadoop
sudo rm -rf tmp/
sudo mkdir tmp/
cd ..
sudo chown -R hdusr:hdusr hadoop
bin/hadoop namenode -format
完成之后的HDFS文件系统下什么都没有,你要手动建立自己的用户主目录.
bin/hadoop fs -mkdir /user //如果主目录不存在的话,需要我们自己创建user主目录
bin/hadoop fs -mkdir /user/hdusr //创建自己的用户目录
Comments !