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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HDFS初探 -> 正文阅读

[大数据]HDFS初探

1、HDFS的写数据流程在这里插入图片描述

1.1、Hadoop-client

hadoop的FileSystem类中,遍历文件目录的三种方法(源码和区别),通过FileSystem对象操作HDFS的方法就不过多讲了,我的上一篇博客给了一个操作HDFS的入门教程,其他的请参考官网示例

1.2、剖析文件写入

Block、Packet、Chunk的概念
1.Hadoop-client询问NameNode文件是否可以上传,若可以,则获取数据存在那些DataNode;
2.Block分解成Packet上传到其中一个DataNode,第一个收到数据的DataNode传给下一个DataNode;
3.传输完成一个Block后,请求NameNode上传第二个Block给DataNode,直至传输完成;

1.3、HDFS机架感知,网络拓扑,节点距离计算

  • 第一个数据副本在Client所处的节点,客户端在集群外,随机选取一个
  • 第二个节点在另一个机架的随机一个节点
  • 第三个副本在第二个副本所在机架的随机节点

2、HDFS的读数据流程

在这里插入图片描述

  • Hadoop-client请求NameNode下载文件,获取文件元数据以得到DataNode地址
  • Hadoop-client挑选最近的一台DataNode请求读取数据
  • Hadoop-client接收DataNode以Packet为单位传输过来的数据,缓存到一定量的数据再写入目标文件

3、NameNode和SecondaryNameNode

  • NameNode格式化时创建【编辑日志Edits】和【镜像文件FsImage】;
  • NameNode中的元数据存放在内存中,使用镜像文件FsImage定期备份数据到磁盘;
  • 使用编辑日志Edits(只能追加)记录NameNode中的元数据的增删改(查询不会更改元数据);
  • NameNode内存全量数据 = Edits + FsImage;
  • NameNode在内存中的元数据与编辑日志Edits同步更新;
  • SecondaryNamenode合并Edits和FsImage(定时到了,或Edits满了),形成fsImage.chkpoint;
  • SecondaryNamenode使用新的fsImage.chkpoint替换NameNode旧的FsImage
    PS:NameNode启动和SecondaryNamenode合并Edits和FsImage时,会滚动Edits,创建一个空的edits.inprogress,以便新的操作都写入edits.inprogress。NameNode只会记载Fsimage和未合并的Edits,合并过的Edits在Fsimage中。
[atguigu@hadoop102 current]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/name/current
[atguigu@hadoop102 current]$ ll
总用量 12352
-rw-rw-r--. 1 atguigu atguigu      42 1212 18:00 edits_0000000000000000001-0000000000000000002
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 18:00 edits_0000000000000000003-0000000000000000003
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 18:08 edits_0000000000000000004-0000000000000000004
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 20:34 edits_0000000000000000005-0000000000000000005
-rw-rw-r--. 1 atguigu atguigu      42 1212 21:22 edits_0000000000000000006-0000000000000000007
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 21:22 edits_0000000000000000008-0000000000000000008
-rw-rw-r--. 1 atguigu atguigu      42 1212 21:26 edits_0000000000000000009-0000000000000000010
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 21:26 edits_0000000000000000011-0000000000000000011
-rw-rw-r--. 1 atguigu atguigu     690 1212 21:49 edits_0000000000000000012-0000000000000000020
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 21:49 edits_0000000000000000021-0000000000000000021
-rw-rw-r--. 1 atguigu atguigu      42 1212 22:00 edits_0000000000000000022-0000000000000000023
-rw-rw-r--. 1 atguigu atguigu 1048576 1212 22:10 edits_0000000000000000024-0000000000000000186
-rw-rw-r--. 1 atguigu atguigu 1048576 1213 22:49 edits_0000000000000000187-0000000000000000187
-rw-rw-r--. 1 atguigu atguigu 1048576 1213 22:54 edits_0000000000000000188-0000000000000000188
-rw-rw-r--. 1 atguigu atguigu 1048576 1214 20:36 edits_0000000000000000189-0000000000000000189
-rw-rw-r--. 1 atguigu atguigu    3741 1214 21:38 edits_0000000000000000190-0000000000000000231
-rw-rw-r--. 1 atguigu atguigu      42 1214 22:38 edits_0000000000000000232-0000000000000000233
-rw-rw-r--. 1 atguigu atguigu 1048576 1214 23:17 edits_0000000000000000234-0000000000000000248
-rw-rw-r--. 1 atguigu atguigu      42 1215 20:51 edits_0000000000000000249-0000000000000000250
-rw-rw-r--. 1 atguigu atguigu     235 1215 21:52 edits_0000000000000000251-0000000000000000255
-rw-rw-r--. 1 atguigu atguigu      42 1215 22:52 edits_0000000000000000256-0000000000000000257
-rw-rw-r--. 1 atguigu atguigu 1048576 1215 22:52 edits_inprogress_0000000000000000258
-rw-rw-r--. 1 atguigu atguigu    2752 1215 21:52 fsimage_0000000000000000255
-rw-rw-r--. 1 atguigu atguigu      62 1215 21:52 fsimage_0000000000000000255.md5
-rw-rw-r--. 1 atguigu atguigu    2752 1215 22:52 fsimage_0000000000000000257
-rw-rw-r--. 1 atguigu atguigu      62 1215 22:52 fsimage_0000000000000000257.md5
-rw-rw-r--. 1 atguigu atguigu       4 1215 22:52 seen_txid --存放最后一个edits_的数字
-rw-rw-r--. 1 atguigu atguigu     216 1215 20:50 VERSION
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:44:46  更:2021-12-16 17:46:27 
 
开发: 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年11日历 -2024/11/24 12:04:56-

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