Hadoop fs:使用面最广,可以操作任何文件系统。
hadoop dfs 与 hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。
hadoop fs
hadoop fs -ls 显示当前目录结构,-ls -R 递归显示目录结构
hadoop fs -mkdir 创建目录
hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
hadoop fs -put [localsrc] [dst] 从本地加载文件到HDFS
hadoop fs -get [dst] [localsrc] 从HDFS导出文件到本地
hadoop fs -copyFromLocal [localsrc] [dst] 从本地加载文件到HDFS,与put一致
hadoop fs -copyToLocal [dst] [localsrc] 从HDFS导出文件到本地,与get一致
hadoop fs -test -e 检测目录和文件是否存在,存在返回值$?为0,不存在返回1
hadoop fs -text 查看文件内容
hadoop fs -du 统计目录下各文件大小,单位字节。-du -s 汇总目录下文件大小,-du -h 显示单位
hadoop fs -tail 显示文件末尾
hadoop fs -cp [src] [dst] 从源目录复制文件到目标目录
hadoop fs -mv [src] [dst] 从源目录移动文件到目标目录
hdfs dfs
1.帮助命令
hdfs dfs -help
2.查看命令
列出文件系统目录下的目录和文件
# -h 以更友好的方式列出,主要针对文件大小显示成相应单位K、M、G等
# -r 递归列出,类似于linux中的tree命令
hdfs dfs -ls [-h] [-r] <path>
# 查看文件内容
hdfs dfs -cat <hdfsfile>
#查看文件末尾的1KB数据
hdfs dfs -tail [-f] <hdfsfile>
3.创建命令
# 新建目录
hdfs dfs -mkdir <path>
# 创建多级目录
hdfs dfs -mkdir -p <path>
# 新建一个空文件,linux下是touchz,不知道为什么在hdfs要加个z?
hdfs dfs -touchz <filename>
# 上传本地文件到hdfs
# -f 如果hdfs上已经存在要上传的文件,强制上传并覆盖之前的文件
hdfs dfs -put [-f] <local src> ... <hdfs dst>
# 举例:将/usr/local/hadoop-2.7.3/etc/hadoop下的所有配置文件都上传到hdfs的/hadoop目录
hdfs dfs -mkdir /config
hdfs dfs -put /usr/local/hadoop-2.7.3/etc/hadoop /config
4.删除命令
# 删除文件或目录,
# -r 递归删除目录下的所有文件
# -f为直接删除,不予提示
# -skipTrash为彻底删除文件,不放入回收站
hdfs dfs -rm [-r] [-f] [-skipTrash] <hdfs path>
5.获取命令
# 将hdfs文件下载到本地
hdfs dfs -get < hdfs path> < localpath>
# 将hdfs文件合并起来下载到本地
hdfs hdfs -getmerge [-nl] <hdfs path> <local dst>
# 举例:将hdfs的/config/hadoop目录下的所有文件合并下载到本地的config.txt中
hdfs dfs -getmerge /config/hadoop config.txt
6.文件操作命令
# 拷贝:
hdfs dfs -cp [-r] < hdfs path > < hdfs path1 >
# 移动:
hdfs dfs -mv < hdfs path > < hdfs path1 >
# 统计目录下的对象数:
hdfs dfs -count < hdfs path >
# 统计目录下的对象大小:
hdfs dfs -du [-s] [-h] < hdfs path >
# 修改hdfs文件权限
# 修改所属组
[-chgrp [-R] GROUP PATH...]
# 修改权限模式
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
# 修改所需组和所有者
[-chown [-R] [OWNER][:[GROUP]] PATH...]
7.管理命令
# 显示帮助
hdfs dfsadmin -help
# 查看文件系统健康状态,显示hdfs的容量、数据块和数据节点的信息
hdfs dfsadmin -report
#安全模式管理 安全模式是hadoop的一种保护机制,用于保证集群中的数据块的安全性。当hdfs进入安全模式时不允许客户端进行任何修改文件的操作,包括上传文件,删除文件,重命名,创建文件夹等操作。当集群启动的时候,会首先进入安全模式。当系统处于安全模式时会检查数据块的完整性。假设我们设置的副本数(即参数dfs.replication)是5,那么在datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。通过配置dfs.safemode.threshold.pct定义最小的副本率,默认为0.999。
# 1)查看安全模式状态
hdfs dfsadmin -safemode get
# 2)强制进入安全模式
hdfs dfsadmin -safemode enter
# 3)强制离开安全模式
hdfs dfsadmin -safemode leave