Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件

简介: Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件

章节内容

上一节完成:


Hadoop历史服务器配置

Hadoop历史日志聚集

Hadoop历史日志可视化

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。

之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。


注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!

请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!


但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:


2C4G 编号 h121

2C4G 编号 h122

2C2G 编号 h123

请确保上一章节已经全部跑通!

HDFS 简介

HDFS (全称:Hadoop Distribute File System,Hadoop 分布式文件系统)是 Hadoop 核心组成,是分布式存储服务。

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


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


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


典型的 Master/Slave 架构 集群往往是 一个NameNode + 多个DataNode (HA下是2个NameNode)NameNode是主节点,DataNode是从节点。

分块机制(block机制)HDFS中是按分块存储的,Hadoop2.x版本默认是128MB一块

命名空间(NameSpace)支持传统的文件组织结构,用户或程序可以创建目录,将文件保存到文件夹中。NameNode负责维护文件系统的名字空间,所有操作都会被NameNode记录下来。

NameNode元数据管理,元数据中记录每一个文件对应的block信息

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

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

一次写入,多次写出。HDFS设计成一次写多次读的场景。且不支持修改,支持追加写入,但是不能随机写更新。

具体的组成结构如下图:

NameNode

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


维护管理HDFS的名称空间 NameSpace

维护副本策略

记录文件块Block的映射信息

负责处理客户端的读写请求

DataNode

NameNode下达命令,DataNode执行实际操作,Slave。


保存实际的数据块

负责数据块的读写

Client

上传文件到HDFS的时候,Client负责将文件切分成Block,然后进程上传。

请求NameNode交互,获取文件的位置信息

读取或写入文件,与DataNode交互

Client可以使用一些命令来管理HDFS或者访问HDFS

HDFS 读数据

客户端Distributed FileSystem 向 NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。

挑选一台DataNode(就近选择,然后随机),请求读取数据

DataNode开始传输数据给客户端,从磁盘里读取数据输入流,以Packet单位来做校验。

客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

HDFS 写数据

客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。

NameNode返回是否可以上传

客户端请求第一个Block上传到哪几个DataNode服务器

NameNode返回3个DataNode节点,分别为 dn1, dn2, dn3

客户端通过 FSDataOutputStream模块请求上传 dn1,dn1接到请求后会继续调用dn2,dn2再调用dn3。然后dn1,dn2、dn3逐级应答客户端。

客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地缓存),以Packet为单位,dn1收到一个Packet就传给dn2,dn2给dn3,dn1每传一个Packet会放入一个确认队列等待确认。

当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器


目录
打赏
0
1
1
0
100
分享
相关文章
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
117 34
分布式计算模型和集群计算模型的区别
【10月更文挑战第18天】分布式计算模型和集群计算模型各有特点和优势,在实际应用中需要根据具体的需求和条件选择合适的计算架构模式,以达到最佳的计算效果和性能。
174 62
分布式 RPC 底层原理详解,看这篇就够了!
本文详解分布式RPC的底层原理与系统设计,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式 RPC 底层原理详解,看这篇就够了!
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
119 4
【赵渝强老师】HDFS数据上传和下载的过程
本文介绍了Hadoop的HDFS中客户端如何通过NameNode上传和下载数据。上传时,数据按块保存至DataNode并实现冗余;下载时,客户端从DataNode获取数据块。文中配有详细流程图及B站视频讲解。
101 3
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
52 1
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
73 1
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
80 1
构建高可用性ClickHouse集群:从单节点到分布式
【10月更文挑战第26天】随着业务的不断增长,单一的数据存储解决方案可能无法满足日益增加的数据处理需求。在大数据时代,数据库的性能、可扩展性和稳定性成为企业关注的重点。ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其卓越的查询性能和高吞吐量而闻名。本文将从我的个人角度出发,分享如何将单节点 ClickHouse 扩展为高可用性的分布式集群,以提升系统的稳定性和可靠性。
338 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等