参考《Python+Spark 2.0+Hadoop机器学习与大数据实战_林大贵(著) 清华大学出版社》

一、创建与查看HDFS目录

常用的hdfs命令:

  • hadoop fs -mkdir 创建HDFS目录
  • hadoop fs -ls 列出HDFS目录
  • hadoop fs -copyFromLocal 复制本地文件到HDFS
  • hadoop fs -put 复制本地文件到HDFS
  • hadoop fs -cat 列出HDFS目录下的文件内容
  • hadoop fs -copyToLocal 将HDFS上的文件复制到本地
  • hadoop fs -get 将HDFS上的文件复制到本地(local)
  • hadoop fs -cp 复制HDFS文件
  • hadoop fs -rm 杉树HDFS文件

(1)创建user目录
先打开hadoop集群,输入start-all.sh

hadoop fs -mkdir /user

如果出现mkdir: Cannot create directory /user. Name node is in safe mode. 需要输入hadoop dfsadmin -safemode leave离开安全模式,才可以创建目录
(2)在user目录下创建hduser子目录

hadoop fs -mkdir /user/hduser

(3)在hduser目录下创建test子目录

hadoop fs -mkdir /user/hduser/test

(4)查看创建的HDFS目录

hadoop fs -ls

(5)查看HDFS完整目录
逐级查看

查看HDFS根目录:hadoop fs -ls /  
查看HDFS的/user目录:hadoop fs -ls /user
查看HDFS的/user/hduser目录:hadoop fs -ls /user/hduser

(6)一次性查看所有目录
-R表示递归

hadoop fs -ls -R /

(7)一次性创建所有目录
-p逐级创建

hadoop fs -mkdir -p /dir1/dir2/dir3

二、本地计算机复制文件到HDFS

①复制本地文件到HDFS的目录

hadoop fs -copyFromLocal /usr/local/hadoop/README.txt /user/hduser/test

②复制本地文件到HDFS的目录的test1.txt

hadoop fs -copyFromLocal /usr/local/hadoop/README.txt /user/hduser/test/test1.txt

③列出HDFS目录下的文件

hadoop fs -ls /user/hduser/test

④显示出HDFS目录下的文件内容

hadoop fs -cat /user/hduser/test/README.txt

⑤重复复制时会返回file exists,需要强制重复复制

hadoop fs -copyFromLocal  -f /usr/local/hadoop/README.txt /user/hduser/test/test1.txt

⑥复制多个本地文件到HDFS,多加几个本地地址(文件)即可
⑦复制本地目录到HDFS目录

hadoop fs -copyFromLocal /usr/local/hadoop/etc /user/hduser/test

使用-put和使用-copyFromLocal差不多,不同之处在于重复复制时会直接覆盖
⑧将原本显示在屏幕上的内容存储到HDFS文件中
echo abc原本是要显示在屏幕上的内容

echo abc | hadoop fs -put - /user.hduser/test/echoin.txt

⑨将本地目录的列表存储到HDFS文件中
通过“|”管道传递给hadoop命令

ls /usr/local/hadoop | hadoop fs -put - /user/hduser/test/hadooplist.txt

三、将HDFS上的文件复制到本地

(1)将hdfs上的文件复制到本地计算机

mkdir test
cd test
hadoop fs -copyToLocal /user/hduser/test/hadooplist.txt        hdfs的文件复制到本地
ll      查看本地目录

(2)将整个HDFS上的目录复制到本地
也可以用-get

hadoop fs -copyToLocal /user/hduser/test/etc
hadoop fs -get /user/hduser/test/README.txt  localTEADME.txt

四、复制与删除HDFS文件

复制:在HDFS中复制文件或目录到另一个HDFS目录
(1)复制HDFS文件
在HDFS上创建测试目录

hadoop fs -mkdir /user/hduser/test/temp

复制HDFS文件到HDFS测试目录

hadoop fs -cp /user/hduser/test/README.txt /user/hduser/test/temp

查看测试目录

hadoop fs -ls /user/hduser/test/temp

(2)删除HDFS文件
查看要删除的文件

hadoop fs -ls /user/hduser/test

删除HDFS文件

hadoop fs -rm /user/hduser/test/test.txt

(3)删除HDFS目录

hadoop fs -ls /user/hduser/test
hadoop fs -rm -R /user/hduser/test/etc

五、在Hadoop HDFS Web用户界面浏览HDFS

(1)网页浏览

http://master:50070

单机菜单Utilities->Browse the file system,会默认进入根目录
(2)输入完整的目录路径来查看文件
打开文件可以下载文件