Hadoop中HDFS的架构

news/2024/10/23 9:27:30/

一、Switch语句

语法规则:
①语句中的变量类型可以是byte、short、int或者char;从javaSE5开始支持枚举类型; javaSE7开始,switch支持String。
②没有break时,后续case的语句都会执行

二、修饰符

访问修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

非访问修饰符

static: 可以使用classname.variablename 和classname.methodname的方式访问
final: final方法可以被子类继承,但不能被子类重写
abstract:抽象类的唯一目的是为了将来对该类进行扩充
synchronized:修饰的方法同一时间只能被一个线程访问
transient:序列化的对象包含被transient修饰的变量时,JVM跳过该特定的变量。
(transient单词含义:转瞬即逝的,短暂的;暂住的,(工作)临时的)

持久化:持久化是将程序数据在持久状态和瞬时状态间转换的机制。 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备。

所以被transient修饰的变量不会被持久化处理。

volatile: 翻译 – >易变的,动荡不定的,反复无常的;(情绪)易变的,易怒的,突然发作的;(液体或固体)易挥发的,易气化的;(计算机内存)易失的。

volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

三、HDFS

HDFS(Hadoop distribute file system)是一个分布式的文件管理系统。文件上传之后就无法修改,适合一次写入,多次读出的场景。

1 优缺点

优点

  1. 高容错性:某一个副本丢失以后,他可以自动恢复
  2. 适合处理大数据:无论是文件很大,还是文件数量很大,都可以处理。
  3. 可以构建在廉价机器上,通过多副本机制,提供可靠性。

缺点

  1. 不适合低延时数据访问:做不到毫秒级的存储数据
  2. 无法高效对大量的小文件进行存储:会占用NameNode大量的内存来存储文件目录和块信息。小文件存储的寻址时间会超过读取时间,违反了HDFS的设计目标。
  3. 不支持并发写入、文件随机修改:仅仅支持数据追加,不支持文件随机修改。

2 HDFS架构

①NameNode: 就是Master,它是一个主管,管理者
(1)管理HDFS的名称空间;
(2)配置副本策略;
(3)管理数据块(Block)映射信息;
(4)处理客户端的读写请求
②DataNode: 就是Slave. NameNode下达命令,DataNode执行实际的操作。
(1)存储实际的数据块;
(2)执行数据块的读/写操作;
③客户端
(1)文件切分:根据NameNode的文件大小进行切分,Hadoop2.x/3.x默认为128MB,1.x版本为64M;
(2)与NameNode交互,获取文件的位置信息;
(3)与DataNode交互,读取或者写入数据;
(4)Client提供一些命令来管理HDFS,增删改查相关操作;

④Secondary NameNode: 并非NameNode的热备。当NameNode挂掉的时候,并不能马上替换NameNode并提供服务。
(1)辅助NameNode, 分担其工作量,比如定期合并Fsimage和Edits, 并推送给NameNode;
(2)在紧急情况下,可辅助恢复NameNode;
HDFS架构图

3 文件块

寻址时间为传输时间的1%时,为最佳状态。机械硬盘建议128MB,固态硬盘建议256MB。

  • 文件块太小,会增加寻址时间,程序一直在找块的开始位置。
  • 文件块太大,从磁盘传输数据的时间会明显大于定位这个块位置所需的时间,导致处理这块数据时,会非常慢。

http://www.ppmy.cn/news/977829.html

相关文章

Kotlin~Observer观察者模式

概念 定义一对多的依赖关系,让多个观察者同时监听一个主题对象。 角色介绍 Subject:主题,也称被观察者,它是具有状态的对象维护着一个观察者列表。提供添加、删除和通知观察者的方法。ConcreteSubject:具体主题&…

代码随想录 DAY28 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 切割字符串,并且在每一个切割过的字符串后面加上 ‘ .’ 返回条件:逗点个数3 如果最后一小节符合要求,就将该字符串添加到结果集中 循环中:从start到i 符合要求,就继续添加逗点和字符 不符合下面就不用…

Hive调优集锦(2)

3.8 Join 优化 Join优化整体原则: 1、优先过滤后再进行 join 操作,最大限度的减少参与 join 的数据量 2、小表 join 大表,最好启动 mapjoin,hive 自动启用 mapjoin, 小表不能超过25M,可以更改 3、Join on的条件相同的…

blender 基础材质篇

材质展示 材质背景介绍 什么是PBR? PBR 全称为 Physically Based Rendering,译为基于物理属性的引擎渲染,也就是说会把物质的颜色、粗糙度、高光属性等进行分别处理,使物质体现出更真实的感觉; 什么是BRDF&#xff…

网络安全合规与标准的主要发展方向

网络安全合规就是避免违反网络安全有关的法律、法规、规章、合同义务以及任何安全要求,标准在网络安全合规工作中扮演着重要的角色。 一、标准在网络安全合规体系中的地位作用 网络安全合规体系包括网络安全有关的法律、法规、规章、其他规范性文件、及合同义务等…

TM4C123系列(四)————UART串口通信

一.实验简介 使用TM4C123的串口通信功能实现单片机与PC端通信。 二.UART介绍 TM4C123有八个串口,其中UART0已经与USB集成,UART0建议只用来和PC端通信,不要与外界通信。 除此之外,与STM32不同,TM4的每个串口还都有两…

【C++STL标准库】关联容器

关联容器&#xff08;双向迭代器&#xff09; 这里给出set的基本使用方法&#xff1a; #include <iostream> #include <set>template <typename T> void print(T Begin, T End);int main() { std::set<int> obj { 0,2,1,4,6,3 }; //集合迭代器,反向…

前端生成批量二维码,并且下载到本地

Ⅰ- 壹 - 功能展示和使用需求 需求描述 前端生成批量二维码&#xff0c;并且下载&#xff0c;本项目使用了 vue3. 功能展示 Ⅱ - 贰 - 封装代码 需要的库 yanr add qrcodejs2-fix // 生成二维码 yarn add html2canvas // 转图片 yarn add jszip// 压缩包 yarn add file-sa…