HDFS (Hadoop Distributed File System)基础( 概念+常用命令 )

本文介绍了HDFS的基本概念,包括其作为分布式文件系统的特点和组成,如Namenode、Datanode和Secondary Namenode。还详细列举并解释了HDFS的常用命令,如目录操作、文件上传下载及磁盘信息查看,涵盖 `-ls`, `-mkdir`, `-put`, `-get`, `-rm` 等关键操作。" 106773927,9571993,Vue实现星星评分组件,"['前端开发', 'Vue', '组件库']
摘要由CSDN通过智能技术生成

HDFS (Hadoop Distributed File System)基础( 概念+常用命令 )

本文来自csdn的⭐️shu天⭐️,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主:https://blog.csdn.net/weixin_46081055 看看ヾ(@ ˘ω˘ @)ノ!!

一、基础

HDFS是一个文件系统(Hadoop Distributed File System),用于存储文件,并且通过目录树来定位文件;它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

组成

HDFS 集群包括NameNodeDataNode以及Secondary Namenode

  1. NameNode 负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
  2. DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode 上存储多个副本。
  3. 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 看看ヾ(@ ˘ω˘ @)ノ!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shu天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值