HDFS常用操作命令
在master上以hadoop-twq用户登录
cd ~
、ls /
- 查看HDFS文件目录:
hadoop fs -ls hdfs://master:9999/
(当前还没有文件)
效果等同于:hadoop fs -ls /
效果也等同于:hdfs dfs -ls /
- 在这个根目录创建一个文件或目录:
hadoop fs -mkdir /user
效果等同于:hadoop fs -mkdir hdfs://master:9999/user
在WebUI上刷新可以看到多了一个user目录
再创建一个目录:hadoop fs -mkdir /user/hadoop-twq/cmd
(会报错)
正确的方式:hadoop fs -mkdir -p /user/hadoop-twq/cmd
(递归创建) - 把本地文件word.txt上传到HDFS文件系统上去:
hadoop fs -copyFromLocal word.txt /user/hadoop-twq/cmd
查看:hadoop fs -ls /user/hadoop-twq/cmd
(txt文件存在)
再上传一次就会报错,如果想要覆盖文件要加-f
hadoop fs -copyFromLocal -f word.txt /user/hadoop-twq/cmd
- 查看文件内容:
hadoop fs -cat /user/hadoop-twq/cmd/word.txt
- 用put方式代替copyFromlocal方式上传:
hadoop fs -put -f word.txt /user/hadoop-twq/cmd
将两个文件一起上传:
hadoop fs -put test.sh word2.txt /user/hadoop-twq/cmd
put还可以将文件流写到hdfs中:
hadoop fs -put - /user/hadoop-twq/cmd/put.txt
(回车输入内容,Ctrl+D结束输入)然后查看 - 下载put.txt:
hadoop fs -get /user/hadoop-twq/cmd/put.txt
- 创建文件:
hadoop fs -touchz /user/hadoop-twq/cmd/flag.txt
- 将flag.txt移动到/user/hadoop-twq目录下:
hadoop fs -mv /user/hadoop-twq/cmd/flag.txt /user/hadoop-twq
- 将put.txt文件权限改成744:
hadoop fs -chmod 744 /user/hadoop-twq/cmd/put.txt
将cmd目录权限改成777:
hadoop fs -chmod -R 777 /user/hadoop-twq/cmd
- 查看big_file.txt文件大小:
ll -h
(发现是153M) - 把big_file.txt上传到hdfs文件系统中:
hadoop fs -put big_file.txt /user/hadoop-twq/cmd
- 尝试列出文件命令的异同:
hadoop fs -ls /user/hadoop-twq/cmd
hadoop fs -ls -h /user/hadoop-twq/cmd
hadoop fs -ls -d /user/hadoop-twq/cmd
hadoop fs -ls -R /user/hadoop-twq/cmd
hadoop fs -ls -R /user/hadoop-twq
hadoop fs -ls -R /user
- 查看文件大小:
hadoop fs -du /user/hadoop-twq/cmd
hadoop fs -du -h /user/hadoop-twq/cmd
(大小可读)
hadoop fs -du -s -h /user/hadoop-twq/cmd
(整个目录有多大) - 查看hdfs总共有多大:
hadoop fs -df
hadoop fs -df -h
(大小可读)
总之hdfs的命令是与Linux命令很相似的,文件目录结构都是目录树的结构