参考《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)输入完整的目录路径来查看文件
打开文件可以下载文件