大数据学习笔记02----Hadoop之HDFS

本文详细介绍了Hadoop的分布式文件系统HDFS,包括其重要概念如Master/Slave架构、分块存储、副本机制,以及HDFS的架构、客户端操作和元数据管理。还探讨了HDFS的读写流程、安全模式和归档技术,是学习Hadoop HDFS的实用指南。
摘要由CSDN通过智能技术生成

HDFS分布式文件系统


Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块,本文章主要对HDFS的知识点进行梳理。

一、 HDFS 简介

HDFS (全称:Hadoop Distribute File System,Hadoop 分布式文件系统)是 Hadoop 核心组成,是分布式存储服务。
分布式文件系统横跨多台计算机,在大数据时代有着广泛的应用前景,它们为存储和处理超大规模
数据提供所需的扩展能力。
HDFS是分布式文件系统中的一种。

二、HDFS的重要概念

HDFS 通过统一的命名空间目录树来定位文件; 另外,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色(分布式本质是拆分,各司其职);

- 典型的 Master/Slave 架构

HDFS 的架构是典型的 Master/Slave 结构。
HDFS集群往往是一个NameNode(HA架构会有两个NameNode,联邦机制)+多个DataNode组
成;
NameNode是集群的主节点,DataNode是集群的从节点。

  • 分块存储(block机制)

HDFS 中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定;
Hadoop2.x版本中默认的block大小是128M;

  • 命名空间(NameSpace)

HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。
Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被
Namenode 记录下来。
HDFS提供给客户单一个抽象目录树,访问形式:hdfs://namenode的hostname:port/test/inputhdfs://linux121:9000/test/input

  • NameNode元数据管理

我们把目录结构及文件分块位置信息叫做元数据。NameNode的元数据记录每一个文件所对应的block信息(block的id,以及所在的DataNode节点的信息)

  • DataNode数据存储

文件的各个 block 的具体存储管理由 DataNode 节点承担。一个block会有多个DataNode来存储,DataNode会定时向NameNode来汇报自己持有的block信息。

  • 副本机制

为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。
副本数量默认是3个。

  • 一次写入,多次读出

HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的随机修改。(支持追加写入,不只支持随机更新)
正因为如此,HDFS 适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用(修改不方便,延迟大,网络开销大,成本太高)

三、HDFS 架构

在这里插入图片描述

NameNode(nn):Hdfs集群的管理者,Master

  • 维护管理Hdfs的名称空间(NameSpace)
  • 维护副本策略
  • 记录文件块(Block)的映射信息
  • 负责处理客户端读写请求

DataNode:NameNode下达命令,DataNode执行实际操作,Slave节点

  • 保存实际的数据块
  • 负责数据块的读写

Client:客户端

  • 上传文件到HDFS的时候,Client负责将文件切分成Block,然后进行上传
  • 请求NameNode交互,获取文件的位置信息
  • 读取或写入文件,与DataNode交互
  • Client可以使用一些命令来管理HDFS或者访问HDFS
    运行原理
    在脑海中要有这张图的印象,方可加深对HDFS运行原理的理解。

四、HDFS 客户端操作

  • Shell 命令行操作HDFS
    基本语法 :bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令
    - 命令大全
    root@linux121 hadoop-2.9.2]# bin/hdfs dfs(通过此命令可开启命令手册)
    Usage: hadoop fs [generic options]
    [-appendToFile … ]
    [-cat [-ignoreCrc] …]
    [-checksum …]
    [-chgrp [-R] GROUP PATH…]
    [-chmod [-R] <MODE[,MODE]… | OCTALMODE> PATH…]
    [-chown [-R] [OWNER][:[GROUP]] PATH…]
    [-copyFromLocal [-f] [-p] [-l] [-d] … ]
    [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] … ]
    [-count [-q] [-h] [-v] [-t []] [-u] [-x] …]
    [-cp [-f] [-p | -p[topax]] [-d] … ]
    [-createSnapshot []]
    [-deleteSnapshot ]
    [-df [-h] [ …]]
    [-du [-s] [-h] [-x] …]
    [-expunge]
    [-find … …]
    [-get [-f] [-p] [-ignoreCrc] [-crc] … ]
    [-getfacl [-R] ]
    [-getfattr [-R] {-n name | -d} [-e en] ]
    [-getmerge [-nl] [-skip-empty-file] ]
    [-help [cmd …]]
    [-ls [-C] [-d] [-h] [-q] [-R]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值