第五部分:HDFS分布式文件系统

本文深入探讨了Hadoop的分布式文件系统HDFS,涵盖HDFS的重要概念如NameNode、DataNode、Block机制,元数据管理,客户端操作(Shell与JAVA API),读写流程,以及NN故障处理和安全模式。此外,还讨论了HDFS的限额配置、归档技术及其在大数据分析中的应用。
摘要由CSDN通过智能技术生成

        前言:上一章节大致介绍了一下hadoop框架的三个重要组成部分,从这一章节开始一次详细介绍。

一、HDFS简介

        是hadoop核心组成,分布式存储服务。

        分布式文件系统横跨多台计算机,在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力。

        HDFS是分布式文件系统中的一种。

二、HDFS重要概念

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

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

        分块存储(block机制):
                HDFS中的文件物理上是分块(block)存储的,块的大小可以通过参数配置。
                hadoop2.x版本中块的大小默认是128M。

        命名空间(namespace):
                HDFS 支持传统的层次型文件组织结构。
                Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被Namenode 记录下来。
                HDFS提供给客户单一个抽象目录树,访问形式:hdfs://namenode的hostname:port/test/input
                hdfs://linux121:9000/test/input

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

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

        副本机制:
                为了容错,文件的每个block都会有副本。每个文件的block大小和副本系数都是可以配置的。副本系数可以在创建的时候指定,也可以在之后改变。默认是3个。

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

三、HDFS框架      

        我觉得这部分叙述已经在上面重复过N+次了。。。

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

        DataNode:NameNode下达命令,DataNode执行实际操作,Slave节点。
                保存实际的数据块
                负责数据块的读写

        Client:客户端
                上传文件到HDFS的时候,Client负责将文件切分成Block,然后进行上传
                请求NameNode交互,获取文件的位置信息
                读取或写入文件,与DataNode交互
                Client可以使用一些命令来管理HDFS或者访问HDFS

四、HDFS客户端操作

 4.1 Shell命令操作HDFS

        基本语法:hadoop fs 具体命令   OR  hdfs dfs 具体命令 
                        其中具体命令 = (-linux具体命令)

        部分语法演示:
                         -moveFromLocal:从本地剪切粘贴到HDFS
                        hadoop fs -moveFromLocal ./hadoop.txt /lg/bigdata

                        -appendToFile:追加一个文件到已经存在的文件末尾
                        hadoop fs -appendToFile hdfs.txt /lagou/bigdata/hadoop.txt

                        -copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去
                        hadoop fs -copyFromLocal README.txt /

                        -copyToLocal:从HDFS拷贝到本地
                        hadoop fs -copyToLocal /lagou/bigdata/hadoop.txt ./

                        -get:等同于copyToLocal,就是从HDFS下载文件到本地
                        hadoop fs -get /lagou/bigdata/hadoop.txt ./

                         -put:等同于copyFromLocal
                        hadoop fs -put ./yarn.txt /user/root/test/

                         -du统计文件夹的大小信息
                        hadoop fs -du -h /user/root/test

                        -setrep:设置HDFS中文件的副本数量
                        hadoop fs -setrep 10 /lagou/bigdata/hadoop.txt
                        如果此处设置的副本数量大于datanode数量,则以datanode数量为准。

4.2 JAVA客户端

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值