四、hdfs命令行操作

一、hdfs启动流程

1、加载fsimage,即加载元数据
2、加载edits文件,因为上面的fsimage并不一定包含最新的元数据
3、保存检查点(checkpoint),主要为了snn后面合并edits到fsimage时使用
4、进入安全模式,检查副本率是否满足冗余度的要求,或者是否完整,如果不满足就处于安全模式,无法写入。如果满足就退出安全模式。

二、基本操作命令

我们可以使用 hdfs dfs xxx 或者 hadoop fs xxx 都可以,两者是一样的。

完整的全部命令如下:

Usage: hadoop fs [generic options]
        [-appendToFile <localsrc> ... <dst>]
        [-cat [-ignoreCrc] <src> ...]
        [-checksum <src> ...]
        [-chgrp [-R] GROUP PATH...]
        [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
        [-chown [-R] [OWNER][:[GROUP]] PATH...]
        [-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
        [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
        [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...]
        [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
        [-createSnapshot <snapshotDir> [<snapshotName>]]
        [-deleteSnapshot <snapshotDir> <snapshotName>]
        [-df [-h] [<path> ...]]
        [-du [-s] [-h] [-x] <path> ...]
        [-expunge]
        [-find <path> ... <expression> ...]
        [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
        [-getfacl [-R] <path>]
        [-getfattr [-R] {-n name | -d} [-e en] <path>]
        [-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
        [-help [cmd ...]]
        [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]
        [-mkdir [-p] <path> ...]
        [-moveFromLocal <localsrc> ... <dst>]
        [-moveToLocal <src> <localdst>]
        [-mv <src> ... <dst>]
        [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
        [-renameSnapshot <snapshotDir> <oldName> <newName>]
        [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
        [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
        [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
        [-setfattr {-n name [-v value] | -x name} <path>]
        [-setrep [-R] [-w] <rep> <path> ...]
        [-stat [format] <path> ...]
        [-tail [-f] <file>]
        [-test -[defsz] <path>]
        [-text [-ignoreCrc] <src> ...]
        [-touchz <path> ...]
        [-truncate [-w] <length> <path> ...]
        [-usage [cmd ...]]

1、获取命令帮助

hdfs dfs -help command
如:
hdfs dfs -help ls

2、创建目录

hdfs dfs -mkdir HDFS路径
选项:-p  递归创建目录

3、列出目录信息

hdfs dfs -ls HDFS路径
选项:-R 递归显示所有目录以及目录下的所有子目录和文件

4、上传文件或者目录

hdfs dfs -put 本地路径  HDFS路径
hdfs dfs -copyFromLocal 本地路径 hdfs路径
hdfs dfs -moveFromLocal 本地路径 hdfs路径  这个会删除本地文件

5、下载文件或者目录

hdfs dfs -get HDFS路径 本地路径 
hdfs dfs -copyToLocal HDFS路径 本地路径

6、查看文件内容

hdfs dfs -cat HDFS路径

7、将本地文件内容追加到HDFS文件中

hdfs dfs -appendToFile 本地路径 HDFS路径

8、监控文件内容

hdfs dfs -tail -f HDFS路径

9、删除文件或目录

hdfs dfs -rm HDFS路径
选项:-r 递归删除子目录

注意:默认回收站关闭,所以删除的文件立马就没了

10、合并数据并下载到本地

hdfs dfs -getmerge HDFS路径1 HDFS路径2 ....  本地路径

11、统计类

hdfs dfs -count HDFS路径     统计 目录个数  文件个数  总的文件数
hdfs dfs -du HDFS路径        显示目录或者文件的大小
hdfs dfs -df HDFS路径        显示空间使用情况

12、复制和剪切

hdfs dfs -cp HDF***c HDFSdest   HDFS内部复制
hdfs dfs -mv HDF***c HDFSdest   HDFS内部剪切

13、文件权限

hdfs dfs -chown user:group HDFS路径   修改属主属组
hdfs dfs -chmod 权限 HDFS路径         修改权限

14、设置副本数

hdfs dfs -setrep n HDFS路径

三、管理命令

1、均衡datanode

hdfs balancer  将多个datanode节点进行数据均衡处理,避免有些节点存储数据过多

2、打印运行报告

hdfs dfsadmin -report

3、安全模式

hdfs dfsadmin -safemode  enter|leave|get  进入安全模式|离开安全模式|获取安全模式状态

4、快照

hdfs dfsadmin -allowSnapshot HDFS目录   给某个目录做快照
hdfs dfsadmin -disableSnapshot HDFS目录   给某个目录取消快照

5、配额

//名称配额,简单说就是该目录下文件和目录的总个数的限制
hdfs dfsadmin -setQuota N HDFS目录1 HDFS目录2.....  设置名称配额
hdfs dfsadmin -clrQuota HDFS目录1 HDFS目录2.....    取消名称配额

//空间配额,简单说就是该目录的存储空间限制
hdfs dfsadmin -setSpaceQuota N单位(如:1GB) [-storageType <storagetype>] HDFS目录1 HDFS目录2..... 设置空间配额
hdfs dfsadmin -clrSpaceQuota [-storageType <storagetype>] HDFS目录1 HDFS目录2..... 取消空间配额

其中 storageType 有以下类型:
RAW-DISK:原始物理磁盘
DISK:    分区空间
SSD:     固态硬盘
ARCHIVE:   

四、hadoop启动相关命令

命令作用 命令
启动/停止历史服务器 mr-jobhistory-daemon.sh start|stop historyserver
启动/停止总资源管理器 yarn-daemon.sh start|stop resourcemanager
启动/停止节点管理器 yarn-daemon.sh start|stop nodemanager
启动/停止 NN 和 DN start|stop-dfs.sh
启动/停止 RN 和 NM start|stop-yarn.sh
启动/停止 NN、DN、RN、NM start|stop-all.sh
启动/停止 NN hadoop-daemon.sh start|stop namenode
启动/停止 DN hadoop-daemon.sh start|stop datanode

猜你喜欢

转载自blog.51cto.com/kinglab/2442247