IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop-HDFS角色工作机制 -> 正文阅读

[大数据]Hadoop-HDFS角色工作机制

一、角色职责介绍

??Hadoop Distributed File System (HDFS,分布式文件系统) :HDFS 是 Hadoop 应用程序使用分布式存储,HDFS 集群主要由管理文件系统元数据的 NameNode 和存储实际数据的 DataNode 组成。

?1、NameNode【主角色】职责特征:
  • NameNode仅存储HDFS的元数据,文件系统中的所有文件的目录树,并跟踪整个集群中的文件,不存储实际数据
  • NameNode是Hadoop集群中的单点故障
  • NameNode是访问HDFS的唯一入口
  • NameNode不持久化存储每个文件中各个block的位置信息,这些信息会在系统启动时从DataNode重建;
  • NameNode所在的机器通常有大量内存(RAM)
?2、DataNode【从角色】职责特征:
  • DataNode 负责最终数据块block的存储
  • DataNode 启动时会将自己注册到NameNode,主动向NameNode汇报自己负责持有的block信息
  • DataNode 某DataNode关闭不会影响数据的可用性,NameNode将安排由其他DataNode管理的block进行副本复制;
  • DataNode 所在的机器通常有大量硬盘空间
?3、Secondary NameNode【主角色辅助角色】职责特征:
  • Secondary NameNode 充当NameNode的辅助节点,但是不能替代NameNode
  • Secondary NameNode 主要是帮助主角色进行元数据文件的合并动作

二、角色工作机制流程

?? 1、核心概念
??(1)默认三副本存储策略【Hadoop3.x】:
???? - 第一块副本:若clien在机器群节点上,优先存储在客户端本地【绿色】,否则随机【蓝色】;
???? - 第二块副本:存储在不同于第一块副本的机架中;
???? - 第三块副本:第二块副本相同的机架的不同机器中;
???a、官方描述:
???? https://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication
???b、注意事项:Hadoop3.x与Hadoop2.x在三副本存储策略上有稍微的不同

???c、三副本存储策略的优缺点

????一个简单但非最佳的策略是将副本放置在唯一的机架上,这可以防止在整个机架发生故障时丢失数据,并允许在读取数据时使用来自多个机架的带宽。此策略在集群中均匀分布副本,这使得在组件故障时平衡负载变得容易。但是,此策略增加了写入的成本,因为一次写入需要将块传输到多个机架。

??(2)Pipeline管道:
????数据以管道的方式,按照顺序沿着一个方向传输,这样能够充分利用每个机器的带宽,避免网络瓶颈和高延迟的连接,最小化推送所有数据的延时。

在这里插入图片描述
?? 2、工作流程

?? (1)HDFS客户端会创建对象实例DitribureFileSystem,该对象中封装了与HDFS文件系统操作的相关方法;
?? (2)上传过程即调用了DitribureFileSystem的create()方法,通过RPC请求NameNode创建文件,NameNode接收到请求后不会立刻去建立文件,而是通过一系列的校验
??例如:文件是否存在、父目录是否存在、该客户端是否具备创建权限等;
?? (3)校验成功后,返回输出流对象(FSDataOutputStream)给客户端,用于写数据;
?? (4)客户端通过返回的输出流开始写入数据,客户端写入数据时,将数据切分成为一个个数据包(packet 默认64k ),内部组件DataStream将数据包通过Pipeline传输到第一个DataNode上,DataNode依次传递至最后一个DataNode【三副本策略】;
?? (5)当数据包通过Pipeline传输到DataNode上是会有ack机制进行校验是否传输成功;当数据从第一个Pipeline传输到第一个DataNode上是,即给客户端返回数据写入成功。受dfs.namenode.replication.min参数指定影响,参数默认值为1
?? (6)客户端数据写入成功后,输出流对象(FSDataOutputStream)调用close()方法关闭;
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:50:33  更:2022-08-06 10:52:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:34:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码