Hadoop 复习 ---- chapter04

news/2024/5/20 3:40:00 标签: hadoop, 大数据, hdfs

Hadoop 复习 ---- chapter04

  1. HDFS 的特性
    1:它是一个分布式文件系统,适用于一次写入,多次读取的场景。
    2:它是一个主从结构体系,由 namenode + datanode + (secondaryNamenode)
    3:namenode : datanode = 1 : n
    4:namenode:负责文件的命名空间
    5:datanode:主要对数据进行存储
    6:secondaryNamenode:是 namenode 的冷备

  2. HDFS 适合对大数据的存储,大数据我们应该如何存储呢?
    大数据的存储我们采用的是分而治之的思想。我们将一个大文件分成若干小文件进行存储。

  3. 那么分成的小文件多大的?
    128M

  4. 一个文件的操作需要两步
    寻址时间 : 传输时间 = 1 : 100 = 10ms : 1s
    我们硬盘的传输速率一般 100M/s

  5. hadoop2.x 默认 block 128M

  6. hadoop3.x 默认 block 64M

  7. 一个集群的最小节点数量 2N+1 n>=1

  8. hadoop 默认有 3 个副本(3 个副本怎么存放呢?)
    机架感知策略
    第一个副本放置在随机的一个机架上的一个节点上。
    第二个副本放置在第一个副本相邻的机架上的任意节点上。
    第三个副本放置在第一个副本的机架的相邻节点上。

  9. namednode:用来管理文件系统的命名空间

  10. namenode 的数据主要包含两部分:内存元数据 + 硬盘元数据
    内存元数据:是真实的,是实时更新的最新的命令空间
    硬盘元数据:是持久化的,序列化的问价。fsimage + edit

  11. 模拟:对命令空间的增加操作
    1:我们在启动 namenode 之前,应该先对 namenode 进行格式化。
    hdfs namenode -format
    2:启动 namenode,start-all.sh,是不是也在启动 datanode,datanode 会主动将他的信息发送给 namenode,所以 namenode 拥有 datanode 的命名空间信息。
    3:我们要添加一个命名空间。
    4:首先将添加操作记录到 edit01 文件中。且同步到 secondaryNamenode(edit 文件只记录事务性操作)
    5:内存元数据真实对命名空间进行操作。这时没内存元数据的数据就是最新数据,如果你要进行查询操作,你是对内存元数据进行的查询操作。
    6:edit01 文件会变得越来越大,我们不希望他越来越大。
    7:secondaryNamenode 设置一个检查带你 checkpoint。
    主要满足下面任意一条件,进行数据合并 fsimage + edit01
    1、edit01 满足一定的大小
    2、edit01 满足一定的存活时间
    8:secondaryNamenode 要进行合并,它会告知 namenode。这时 namenode 会滚动生成一个新的 edit02 文件,后面的所有操作写入到 edit02 文件中。
    9:secondaryNamenode 要进行合并文件 fsimage.check
    10:secondaryNamenode 将文件 fsimage.check 上传到 namenode
    11:namenode 重命名 fsimage.check 为 fsimage,覆盖原有文件。
    剩下的操作重复 3-11 的操作

  12. hadoop.tmp.dir = /opt.hadoop/tmp:存放临时文件的目录

  13. dfs.name.dir = /opt/hadoop/namenode:存放 namenode 信息的目录

  14. dfs.data.dir = /opt/hadoop/datanode:存放 datanode 信息的目录

  15. 所有的 HDFS 通信协议都是构建在 TCP/IP 协议上。
    ClientProtocal:client 和 namenode 之间的通信协议
    datanodeProtatal:datanode 和 namenode 之间的通信协议
    从 ClientProtocol 和 DatanodeProtocol 抽象出来一个远程调用(RPC),在设计上,Namenode 不会主动发起 RPC,而是响应来自客户端和 Datanode 的 RPC 请求。

  16. HDFS 的安全模式
    HDFS:1个 namenode + n个datanode + 1个secondaryNamenode
    我们启动 HDFS 顺序:namenode -> datanode -> secondaryNamenode
    namenode 启动成功,但是 datanode 并未全部启动成功。
    当每个 datanode 启动成功后,会主动的汇报他的信息到 namenode。
    当 namenode 收集到的 datanode 启动的成功率达到 99%。
    namenode 会等待 30s,然后 NameNode 退出安全模式。
    在过程中,NameNode 处于安全模式下,不能修改。

  17. 客户端读取文件的流程。
    读取文件需要使用什么?
    IO 流。我们以前的 IO 流,都是对本地文件的读取。
    那么我们如果对 HDFS 上的文件进行读取呢?
    hadoop 就封装了一个 FSDataInputStream 对象,用于对 HDFS 上的文件的读取。
    hadoop 就封装了一个 FSDataOutputStream 对象,用于对 HDFS 上的文件的写入。

  18. hadoop 会有一些操作指令,那么这些操作指令在哪里呢?
    hadoop 的安装包目录下 sbin 和 bin 目录中。

  19. hadoop 组件 = hdfs + mapreduce(yarn)+ common

  20. sbin:放置了 hadoop 组件的启动命令

  21. start-all.sh:启动所有的 hadoop 组件

  22. start-dfs.sh:启动 HDFS 组件 namenode + datanode + secondaryNamenode

  23. start-yarn.sh:启动 yarn 组件 resourceManager + nodeManager

  24. bin:放置了 hadoop 组件的操作命令

  25. hadoop and hdfs 是对 hdfs 进行操作的命令


http://www.niftyadmin.cn/n/31799.html

相关文章

Cadence PCB仿真 使用 Allegro PCB SI 元器件端口设置的PDN分析功能介绍图文教程

🏡《总目录》   🏡《分目录》 目录 1,概述2,启动方法3,功能介绍3.1,元器件设置列表(Device)3.2,端口设置列表(Ports)4,总结1,概述 在进行PDN分析时需要对电源网络涉及到的所有元器件的指定端口的参数进行配置。本文介绍PDN网络元器件端口设置的功能。 2,启动…

Android 时间工具类

最近总结了一下时间相关的用法,如下。 1、日期转换为字符串 默认"yyyy-MM-dd HH:mm:ss" 2、任意类型日期字符串转时间 3、获取当前对应格式的日期 4、获取当前对应格式的日期 默认"yyyyMMddHHmmssSSS" 5、计算该天是星期几 6、获取星期几…

Java基础之序列化与反序列化

序列化:将java对象转化为字节序列的过程。 反序列化:将字节序列转化为java对象的过程。 在进行远程通信时,如果需要传输java对象:发送方需要把java对象转换为字节序列(也就是序列化),接收方需要将字节序列转换为java对…

android——开发中哪些习惯会影响卡顿的发生

开发中哪些习惯会影响卡顿的发生,如下:1.布局太乱,层级太深。1.1:通过减少冗余或者嵌套布局来降低视图层次结构。比如使用约束布局代替线性布局和相对布局。1.2:用 ViewStub 替代在启动过程中不需要显示的 UI 控件。1.…

【C++修炼之路】C++入门(中)—— 函数重载和引用

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录一、前言二、函数重载1、重载规则2、函数名修饰规则三、引用1、区分2、本质3、特性4、应用a、做参数b、做返回值5、效率比较6、常…

开关电源-TL431与光耦组成的电压反馈电路-TL431工作过程分析

开关电源:TL431与光耦组成的电压反馈电路 #开关电源#开关电源最基本的要求是输入电压变化时,输出电压保持恒定,而与此相关的测试如电压调整率、负载调整率等也是衡量开关电源性能的重要指标,实现输出电压恒定的方式是反馈&#x…

算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

文章目录回文数找出小于平均值的数旋转图像回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的…

【Less】全局样式重复注入问题

// package.json {"less": "^4.1.3","vite": "^3.1.0", }参考: [less/sass]如何避免因公共模块导致生成重复css代码解决 Vue CSS 样式重复载入,为 Vue 添加全局 less 或 sass 基础样式库【不是本篇解决方法&am…