HDFS (Hadoop Distributed File System)基础( 概念+常用命令 )
Hadoop Distributed File System
本文来自csdn的⭐️shu天⭐️,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主:https://blog.csdn.net/weixin_46081055 看看ヾ(@ ˘ω˘ @)ノ!!
一、基础
HDFS
是一个文件系统(Hadoop Distributed File System),用于存储文件,并且通过目录树来定位文件;它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
组成
HDFS 集群包括NameNode
、DataNode
以及Secondary Namenode
。
NameNode
负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。DataNode
负责管理用户的文件数据块,每一个数据块都可以在多个datanode 上存储多个副本。Secondary NameNode
用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS 元数据的快照。
二、常用命令
参数:
[root@c1 ~]# hadoop fs
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 ...]]
Generic options supported are
-conf <configuration file> specify an application configuration file
-D <property=value> use value for given property
-fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations.
-jt <local|resourcemanager:port> specify a ResourceManager
-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.
The general command line syntax is
command [genericOptions] [commandOptions]
具体命令:
1.目录操作
(1)-help:输出rm这个命令参数
bin/hdfs dfs -help rm
(2)-ls: 显示目录信息
hadoop fs -ls /
hadoop fs -ls -R /
(3)-mkdir:在 hdfs 上创建目录
hadoop fs -mkdir -p /hdfs (路径)
我创建了hdfs目录和aaaxiaoshen目录
,上面ls可以看到
也可以在namenode对应端口看到
2.文件上传下载
(4)-moveFromLocal 从本地移动到 hdfs
hadoop fs -moveFromLocal [本地路径] /hdfs
移动后本地文件会消失
(5)–appendToFile :追加一个文件到已经存在的文件末尾
hadoop fs -appendToFile [本地路径] [hdfs路径]
我用的时候下面有报错(是与日志相关),但是不影响操作,文件内容依旧附加了
(6)-cat :显示文件内容
hadoop fs -cat [文件路径]
(7)-tail -f:监控文件
hadoop fs -tail -f [hdfs文件路径]
(8)-chmod、-chown:linux 文件系统中的用法一样,修改文件所属权限
hadoop fs -chmod 777 [hdfs路径]
hadoop fs -chown someuser:somegrp [hdfs路径]
(9)-cp :从 hdfs 的一个路径拷贝到 hdfs 的另一个路径
hadoop fs -cp [hdfs路径1] [hdfs路径2]
(10)-mv:在 hdfs 目录中移动/重命名
文件
hadoop fs -mv [hdfs路径1] [hdfs路径2]
(11)-get:等同于 copyToLocal,就是从 hdfs 下载文件到本地
hadoop fs -get [hdfs路径] [本地路径]
(12)-getmerge :合并下载多个文到 linux 本地
hadoop fs -getmerge [hdfs文件] [本地文件]
(13)-put:等同于 copyFromLocal
hadoop fs -put [本地路径] [hdfs路径]
(14)-rm:删除文件或文件夹
hadoop fs -rm -r [hdfs路径]
3.查看磁盘信息
(15)-df :统计文件系统的可用空间信息
hadoop fs -df -h [hdfs路径]
(16)-du 统计文件夹的大小信息
hadoop fs -du -s -h [hdfs路径]
(17)-count:统计一个指定目录下的文件节点数量
hadoop fs -count [hdfs路径]
返回的两个数字分别是:嵌套文件层级 包含文件的总数
(18)-setrep:设置 hdfs 中文件的副本数量:3 是副本数,可改
hadoop fs -setrep 3 [hdfs路径]
这里设置的副本数只是记录在 namenode 的元数据中,是否真的会有这么多副本,还得看 datanode 的数量。只有3台设备,最多就3个副本,只有节点数增加到10台时,副本数才能达到10。
本文来自csdn的⭐️shu天⭐️,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主:https://blog.csdn.net/weixin_46081055 看看ヾ(@ ˘ω˘ @)ノ!!