大数据之Hadoop

2023-09-18 11:59:58

大数据

按顺序给出数据存储单位:
bit Byte 、 KB、 MB GB TB PB EB ZB YB
BB NB DB
1Byte = 8bit 1K = 1024Byte 1MB = 1024K
1G = 1024M 1T = 1024G
1P = 1024T

Hadoop

Hadoop是一个能够对大量数据进行分布式处理软件框架。

分布式处理是指:比如有100T的大量数据,不存储在一台服务器上,分别存储在3台服务器上,就叫分布式处理。

Hadoop的框架最核心的设计就是:HDFSMapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop为海量数据提供 存储 + 计算 的一个软件框架,旨在处理大规模数据集。主要解决海量数据的存储和计算问题。

Hadoop三大核心组件:

  • HDFS(分布式文件系统) -—— 实现将文件分布式存储在集群服务器上
    • Hadoop分布式文件系统(HDFS):HDFS是Hadoop的存储组件,它是一个分布式文件系统,设计用于存储大规模数据集。它将数据分割成块并在集群中的多个节点上复制,以提供高可用性和容错性。
  • MAPREDUCE(分布式运算编程框架) —— 实现在集群服务器上分布式并行运算
    • MapReduce是Hadoop的计算模型,用于处理分布式数据处理任务。它包括两个主要阶段,即"Map"和"Reduce"。"Map"阶段负责将输入数据映射到中间键/值对,而"Reduce"阶段负责对这些中间结果进行聚合和分析。
  • YARN(分布式资源调度系统) —— 帮用户调度大量的 MapReduce 程序,并合理分配运算资源(CPU和内存)
    • YARN是Hadoop的资源管理器,负责集群资源的分配和管理。它允许多个应用程序同时在同一个Hadoop集群上运行,从而提高了资源利用率。

Hadoop四个优点

Hadoop三大组件

HDFS 分布式文件系统

实现将文件(数据)分布式的存储起来

HDFS架构:NameNode + DataNode +Secondary NameNode(2nn)

NameNode(nn)

简单理解是:存储数据存在哪里呀什么的,比如说前面1T存在Hadoop100上。
存储文件(数据)的 元数据 ,如 文件名,文件目录结构,文件属性 (生成时间、副本数、 文件权限),以及每个文件的 块列表 块所在的 DataNode 等。

DataNode

是具体存数据的服务器节点,一台服务器就是一个DataNode。

Secondary NameNode(2nn)
NameNode安装服务也有可能宕机掉,这时候2nn就可以上去顶替nn的作用了。所以2nn每隔一段时间就会对nn中的数据进行备份同步。

MapReduce

负责海量数据的计算,计算的过程分为Map和Reduce两个过程。

Map是将海量的数据分成一个一个小模块处理,从而提高数据的处理效率,map就是负责将数据分块并行处理。

Reduce负责将map阶段分模块处理的结果都汇集起来。

YARN

Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。

三大组件联系

 这100T文件都已经存好了,然后ResourceManager会创建一个总的APP Mtr,AppMtr告诉ResourceManager说这个任务总共需要10G内存,8个CPU,然后ResourceManager就在集群中看,发现Hadoop102 103就够了,就在这个两个上创建了两个Container来处理任务,然后Map就将这个100T的数据分成了两个MapTask分别并行处理,处理的结果由Reduce Task汇总到Hadoop104中。

更多推荐

golang 结合 cobra 使用 chatgpt qdrant 实现 ai知识库 cli

golang结合cobra使用chatgptqdrant实现ai知识库cli流程将数据集通过openaiembedding得到向量+组装payload,存入qdrant用户进行问题搜索,通过openaiembedding得到向量,从qdrant中搜索相似度大于0.8的数据从qdrant中取出数据得到参考答案将问题标题+

js兼容性的汇总

js兼容问题大多是在ie浏览器低版本以及ie浏览器和不同普通浏览器的差异事件对象document.onclick=function(ev){//谷歌火狐的写法,IE9以上支持,往下不支持;vare=ev;console.log(e);}document.onclick=function(){//谷歌和IE支持,火狐不支

css3动画基础详解(@keyframes和animation)

动画是使元素从一种样式逐渐变化为另外一种效果,CSS3动画的生成,主要依赖@keyframes定义动画,animation执行动画。@keyframes通过@keyframes规则创建动画。@keyframeskeyframes-name{keyframes-selector{css-styles;}}keyframe

【数据结构】哈希表(详)

文章目录前言正文一、基本概念二、基本原理1.哈希函数1.1直接定址法(常用)1.2除留余数法(常用)1.3平方取中法(了解)1.4折叠法(了解)1.5随机数法(了解)1.6数学分析法(了解)2.哈希冲突2.1平均查找长度2.2负载因子2.3闭散列(开放定制法)2.1.1线性探测2.1.2二次探测2.1.3二重哈希2.4

MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)

文章目录MySQL8.0OCP(1Z0-908)考点精析-架构考点5:数据字典(DataDictionary)File-basedMetadataStorage(基于文件的元数据存储)TransactionalDataDictionary(事务数据字典)SerializedDictionaryInformation(S

相机One Shot标定

1原理说明原理部分网上其他文章[1][2]也已经说的比较明白了,这里不再赘述。2总体流程参考论文作者开源的Matlab代码[3]和github上的C++代码[4]进行说明(不得不说还是Matlab代码更优雅)论文方法总体分两部,第一部是在画面中找到所有的类棋盘格角点,第二步是角点的基础上构建出棋盘格形状。3模块说明3.

【Verilog 教程】3.1 Verilog 连续赋值

关键词:assign,全加器连续赋值语句是Verilog数据流建模的基本语句,用于对wire型变量进行赋值。:格式如下assignLHS_target=RHS_expression;LHS(lefthandside)指赋值操作的左侧,RHS(righthandside)指赋值操作的右侧。assign为关键词,任何已经声

Redis面试二“缓存击穿是什么”

条件缓存击穿是应为Redis某个缓存数据设置了过期时间,而刚好有大并发数据请求这个数据,导致DB有大量请求,引发DB崩溃。第一种方法就是设置互称锁当缓存失效时不立即删除缓存而是用setnx设置一个互斥锁,当操作完成后在loaddb,并回设缓存,否则重试get缓存方法,这样就减少了直接大量访问DB的请求。实现@Servi

Java高级-动态代理

动态代理1.介绍2.案例1.介绍publicinterfaceStar{Stringsing(Stringname);voiddance();}publicclassBigStarimplementsStar{privateStringname;publicBigStar(Stringname){this.name=n

关于ClickHouse的SQL操作

目录clickhouse和mysql的比较5.1create5.2Insert1.标准INSERT2.从表到表的插入5.3Update和Delete1.删除操作2.修改操作clickhouse和mysql的比较共同点:都是关系型数据库,支持SQL查询语言;支持事务处理,具备ACID特性(原子性、一致性、隔离性、持久性)

【多尺度无监督:Pansharpening】

Mun-GAN:AMultiscaleUnsupervisedNetworkforRemoteSensingImagePansharpening(Mun-GAN:一种多尺度无监督遥感图像泛锐化网络)在遥感图像融合中,全色锐化是一种遥感图像融合方法,旨在融合全色(PAN)图像和多光谱(MS)图像,以产生高分辨率的MS(H

热文推荐