Hadoop原理,HDFS架构,MapReduce原理

news/2024/5/20 0:49:16 标签: hadoop, hdfs, 架构, MapReduce, 国考网警

MapReduce_0">Hadoop原理,HDFS架构MapReduce原理

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!


文章目录

  • Hadoop原理,HDFS架构MapReduce原理
    • @[TOC](文章目录)
  • Hadoop是什么?
  • Hadoop概述
  • Hadoop优势
  • Hadoop的生态系统
  • Hadoop集群的部署模式
  • Hadoop的历史版本
  • HDFS的演进
  • HDFS基本概念
  • HDFS的优缺点
  • HDFS主从架构
  • HDFS写原理
  • HDFS读数据的原理
  • HDFS的shell操作
  • MapReduce分布式计算框架
  • map和reduce内部如何合作
  • maptask
  • reducetask
  • shuffle工作原理
  • MapReduce的运行模式
  • MapReduce的性能优化
  • 总结

Hadoop是什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hadoop概述

在这里插入图片描述

Hadoop优势

在这里插入图片描述
计算能力
存储能力
廉价计算机组成
高效率,吞吐量高
可靠,容错
数据副本机制基本不会丢

Hadoop的生态系统

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hadoop集群的部署模式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hadoop的历史版本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
收费的牛逼

在这里插入图片描述
主从架构
在这里插入图片描述
在这里插入图片描述

计算类似的
MapReduce
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
yarn来管理分配资源和调度资源
resourcemanager
管理nodemanager
APPmaster,进程去计算
在这里插入图片描述
app计算完,上报给老大
在这里插入图片描述
单点故障依然gg

在这里插入图片描述
在这里插入图片描述
还是备份思想
gg
zookeeper来搞这种管理,美滋滋

这门课牛逼,终于说清楚了这些事情
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不是resource 了

在这里插入图片描述
在这里插入图片描述

HDFS的演进

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
老牛逼了

HDFS基本概念

在这里插入图片描述

不妨设a.txt要存储,它很大很大,一个机子存不了
咱需要拆分成多个block

这样分开存在不同的机子上
支离破碎的文件,需要统一管理,namenode来管理

当客户端访问是,先要问nn,你给我真实的地址,我一个个去读取然后组装就好。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
nn就是老大

datanode
在这里插入图片描述

在这里插入图片描述
block

在这里插入图片描述
在这里插入图片描述
300m那平均分开

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3份一样的数据,分开存储,增加容错性
在这里插入图片描述

HDFS的优缺点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
蓝色dn1丢失
但是dn2和dn3保持数据的完整性
美滋滋
在这里插入图片描述
字节流,好像访问本地文件,效率高

支持超大文件的存储,切片分开存储,都能玩
高数据的吞吐量,不支持修改,支持存储

在这里插入图片描述
由于数据多,分开存,这样的话,速度慢
适合线下处理
尤其是小文件多,元数据量大,很烦人

并发写入不合适,他要备份
一次写入,多次读取

HDFS主从架构

namenode管理datanode
在这里插入图片描述
namenode的元数据是缓存在自己身上的,secondarynamenode辅助管理

datanode经常需要汇报给老大namenode

一个大文件,一般有3个副本
在这里插入图片描述

HDFS写原理

在这里插入图片描述
client客户端的操作

在这里插入图片描述
分步骤玩
在这里插入图片描述

1:客户端发出RPC,请求上传文件
2:nn检查元数据文件的目录树
3:告诉客户端,可以上传
4:上传请求第一个block,一共3个
5:每个block是要3个副本的,nn需要检查dn的信息池,查他的存储量和可用性,找到可用的list,即可用的副本
6:返回可用的datanode可用的列表,dn123
7:客户端收到了列表之后,他就知道存到哪里了,他需要和服务器之间建立pipeline管道,且dn1和dn2之间也要建立管道,dn2和dn3都要建立,这样的话,数据流通道搞出来了,当客户端一旦发送,就能同时发送哦
8:当管道建立好后,返回管道建立完毕的信息,相当于ack,tcp协议连接类似
9:就可以发送了,建立传输数据流,发送数据
10:以package包为单位,慢慢发,64k大小,dn1发送诶dn2,dn2发送给dn3
11:发送完毕,告诉前面确认好了,ack确认信息
12:通知客户端,block发送完毕,请求发送下一个block,以此循环发

懂了吧

HDFS读数据的原理

在这里插入图片描述
1:客户端发RPC请求,获取读取文件block数据所在的位置,往往1文件,是分成了多个block,而且分散存储在不同的服务器上的
2:nn返回block返回datanode的地址列表,比如dn1,dn2,dn3上都有副本
3:当客户端知道了地址,他直接挑选排序靠前的地址列表,距离自己比较近的那个节点,它还能挑选健康的服务器,比如挑选,然后建立通信管道,分别读取,并发读取哦。每次读完,那客户端都要完成校验,发现不完整,还需要从新问nn;
4:读取完成,合成一个完整的文件
在这里插入图片描述

HDFS的shell操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
/根目录
Hadoop fs -ls /目录
这种特定的命令

在这里插入图片描述
这种就是普通Linux之前加一个Hadoop fs
或者dfs fs

在这里插入图片描述
本地路径,目标路径

在这里插入图片描述

MapReduce_226">MapReduce分布式计算框架

在这里插入图片描述
在这里插入图片描述
HDFS是存储
MapReduce是计算

懂?
yarn是管理
分而治之——MapReduce

在这里插入图片描述
map
reduce

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

map和reduce内部如何合作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
格式化,结构化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

maptask

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

reducetask

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

shuffle工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
blocksize最重要
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
new一个text和int就是kv

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
k想通,哈希值就相同

就是分区的编号,根key个数相同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

MapReduce_314">MapReduce的运行模式

在这里插入图片描述
在这里插入图片描述
输入输出
key123各种格式

在这里插入图片描述

MapReduce_322">MapReduce的性能优化

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结

提示:重要经验:

1)
2)学好oracle,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。


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

相关文章

第十一章 JSP开发模型

文章目录 一. 单选题(共5题,50分)二. 判断题(共5题,50分) 一. 单选题(共5题,50分) (单选题) JSPModel2开发的系统中,实现视图的是() A…

直接插入排序(图解+c语言代码实现)

直接插入排序(一种稳定的排序方法) 算法思想:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止; 下面为代码实现(每一次将需…

认识WebSocket 以及怎么使用WebSocket

了解WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它提供了一种实时的、持久的、双向通信机制,可以让浏览器和服务器之间实时地发送数据,而不需要使用AJAX轮询或长轮询等技术。 与HTTP相比,WebSocket具有以下优点&#…

nodejs+vue+python+PHP+微信小程序南七街道志愿者服务平台的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

小程序版本审核未通过,需在开发者后台「版本管理—提交审核——小程序订单中心path」设置订单中心页path,请设置后再提交代码审核

小程序版本审核未通过,需在开发者后台「版本管理—提交审核——小程序订单中心path」设置订单中心页path,请设置后再提交代码审核 因小程序尚未发布,订单中心不能正常打开查看,请先发布小程序后再提交订单中心PATH申请 初次提交…

C_3练习题

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 1.下列叙述中正确的是()。 A.用C程序实现的算法必须要有输入和输出操作 B.用C程序实现的…

让代码变美的第一天 - 观察者模式

文章目录 丑陋的模样变美步骤第一步 - 基本预期第二步 - 核心逻辑梳理第三步 - 重构重构1 - 消息定义重构2 - 消息订阅重构3 - 消息发布 高级用法按顺序订阅异步订阅多消息订阅 丑陋的模样 当我们开发一个功能,代码可能如下: private void test() {fun…

SSM图书管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 图书管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和 数据库,系统主要…