第 7 章 HDFS的shell操作
操作HDFS有 3 种方式,
hadoop fs <args>hdfs dfs <args>hadoop dfs <args>
这 3 种方式中, 前 2 种完全等价: 即可以操作HDFS, 也可以操作一些其他文件系统:Local FS, HFTP FS, S3 FS, and others
第 3 种方式, 只能操作HDFS, 目前已经过时, 不建议再使用.
推荐使用:hadoop fs <args>
hdfs的很多操作命名非常类似于Linux的shell命令, 所以学起来并没有难度.
7.2 HDFS命令综述
使用如下格式来操作HDFS的Shell.
hadoop fs <args>
所有的
shell命令都会使用到path URIs作为参数.URI的格式:scheme://authority:port/path如果操作
HDFS,scheme就是hdfs如果操作本地文件系统,
scheme就是filescheme和authority都可以省略, 如果省略则默认使用hdfs://NameNodeHost:port(NameNodeHost:port是你在core-site.xml中设置的值)我们使用的的是都是省略掉
scheme和authority如果操作本地系统, 用本地文件系统提供的
shell, 而不会使用HDFS提供的shell
例如:
hadoop fs -ls hdfs://hadoop201:9000/
# 完全等价于:
hadoop fs -ls /

# 操作本地文件系统. file:// 协议. 最后一个 / 表示根目录
hadoop fs -ls file:///
# 完全等价于:
ls

7.3 HDFS常用的shell命令
ls显示目录信息.
hadoop fs -ls /
put把本地文件上传到
HDFS.语法:
hadoop fs -put localFile hdfsFileoptions:-f: 如果已经存在, 则强制覆盖-p: 保留文件的访问和修改时间, 拥有者和权限.hadoop fs -put words.txt /a
注意:
- 也可以同时上传多个:
hadoop fs -put localFile1 loalFile2 hdfsFile
- 也可以同时上传多个:
get从
HDFS下载文件到本地语法:
hadoop fs -get <src> <localDir>options:-p:-f:-ignorecrc: 下载文件的时候忽略CRC校验-crc: write CRC checksums for the files downloaded.
cat查看文件内容
appendToFile把本地文件系统的文件追加到
HDFS中的文件的尾部. 也可以把标准输入流中的数据追加到HDFS中的文件的尾部.语法:
hadoop fs -appendToFile <local> ... <dst>例如:
hadoop fs -appendToFile words3.txt /a/words.txt
mkdir创建目录. 使用方式和Linux下的mkdir一致.
tail显示一个文件的末尾
chgrp 、chmod、chown:linux文件系统中的用法一样,修改文件所属权限
copyFromLocal从本地文件系统中拷贝文件到hdfs路径去
copyToLocal从
HDFS拷贝到本地.与
get类似, 比get更加严格, 因为目的地严格限制在了本地文件系统
copyFromLocal从本地
copy到HDFS与
put类似, 比put更严格, 因为源严格限制在了本地文件系统.
cp: 从hdfs的一个路径拷贝到hdfs的另一个路径
mv:在
hdfs目录中移动文件
getmerge合并下载多个文件


rm删除文件或文件夹
rmdir删除空目录
setrep设置
hdfs中文件的副本数量
touchz创建一个长度为
0的文件. 类似于Linux的touch命令
df显示可用空间

du显示目录或文件的占用空间
