大数据|Hadoop系统
目录
📚Hadoop介绍
📚Hadoop优点
📚Hadoop的体系结构
🐰HDFS的体系结构
🐰MapReduce的体系结构
🐰HDFS和MapReduce的协同作用
📚Hadoop与分布式开发
🐰MapReduce计算模型
📚Hadoop介绍
Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,它实现了Map/Reduce计算模型。
狭义上说,Hadoop的核心组件有:
- HDFS(分布式文件系统):解决海量数据存储
- MapReduce(分布式运算编程框架):解决海量数据计算

- YARN(作业调度和集群资源管理的框架):解决资源任务调度
📚Hadoop优点
- Hadoop是可靠的:因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
- Hadoop是高效的:因为它以并行的方式工作,通过并行处理加快处理速度。
- Hadoop是可伸缩的:它能够处理PB级数据,即有扩容能力。
- Hadoop成本低:依赖于廉价服务器,因此它的成本比较低,任何人都可以使用。
由于Hadoop优势突出,基于Hadoop的应用已经遍地开花,尤其是互联网领域。
📚Hadoop的体系结构
- HDFS是一种分布式文件系统,运行于大型商用机集群,HDFS提供了高可靠性的底层存储支持。
- HBase位于结构化存储层,是一个分布式的列存储数据库。
- MapReduce是一种分布式数据处理模式和执行环境。
- Zookeeper是一个分布式的,高可用性的协调服务,提供分布式锁之类的基本服务。
- Hive是一个建立在Hadoop基础上的数据仓库,用于管理存储于HDFS或HBase中的结构化/半结构化数据。
- Pig提供一种数据流语言,程序员可以将复杂的数据分析任务实现为Pig操作上的数据流脚本,这些脚本可自动转换为MapRduce任务链,在Hadoop上执行,从而简化工作难度。
- Sqoop是SQL-to-Hadoop的缩写,为在RDBMS与Hadoop平台间进行快速批量数据交换。
🐰HDFS的体系结构
- 一个HDFS集群是由一个NameNode和若干个DataNode组成。
- NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;
- 集群中的DataNode管理存储的数据。
- HDFS支持用户以文件的形式存储数据,文件被分为若干个数据块,而且这若干个数据块存放在一组DataNode上。

NameNode:就是master,它是一个主管,管理者。管理HDFS的命名空间,管理数据块(Block)映射信息,配置副本策略,处理客户端读写请求。
DataNode:就是Slave,它是劳累的打工人。NameNode下达命令,DataNode执行实际操作。存储实际的数据块,执行数据块的读写操作,定时向NameNode汇报block信息。
🐰MapReduce的体系结构
- MapReduce是一种并行编程模式。基于它可以将任务分发到由上千台商用计算机组成的集群上,并以一种高容错的方式并行处理大量的数据集,实现Hadoop的并行任务处理功能。
- MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。
- 主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上;主节点监控它们的执行情况,并且重新执行之前失败的任务。从节点仅负责由主节点指派的任务。
- 当一个Job被提交时,JobTracker接受到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
🌟MapReduce编程模型与Hadoop分布式开发息息相关,下文会做详细介绍。
🐰HDFS和MapReduce的协同作用
- HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。
- HDFS在MapReduce任务处理中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果。
- TaskTracker和DataNode需配对地设置在同一个物理的从节点服务器上;JobTracker和NameNode可以设置在同一个物理主控节点服务器上,也可以分开设置
HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心,二者相互作用,完成了Hadoop分布式集群的主要任务。
📚Hadoop与分布式开发
基于MapReduce的处理过程示例--文档词频统计:WordCount
- 将大数据集分解为成百上千个小数据集,每个(或若干个)数据集分别由集群中的一个节点进行处理并生成中间结果,然后这些中间结果又由大量的节点合并,形成最终结果。
- MapReduce框架下并行程序结构中,需要用户完成的工作仅仅是根据任务编写Map和Reduce函数。
🐰MapReduce计算模型

MapReduce编程模型的原理:利用一个输入的key/value对集合,来产生一个输出的key/value对集合。这个过程基于Map和Reduce这两个用户自定义函数实现。
- Map阶段:是在单机上进行的针对一小块数据的计算过程,简单来说,就是按照给定的方法进行筛选分类。
- Shuffle阶段:在map阶段的基础上,进行数据移动,为后续的reduce阶段做准备。简单说就是shuffle将同类型的数据进行合并。
- Reduce阶段:对移动后的数据进行处理,依然是在单机上处理一小份数据,举个例子,对Shuffle得到的合并后的数据进行count,得到sum值。
关于Shuffle:
- shuffle的意思就是洗牌,它是MapReduce的核心,也是被称为奇迹发生的地方。MapReduce玩的就是洗数据,然后让数据出现在该出现的位置。
碎碎念:
- Shuffle阶段所进行的洗牌,可借助哈希表实现,将对应的数据放到相应的“桶”里,从而实现同类型的合并。
- MapReduce思想有种“分而冶之”的味道。Map负责“分”,Reduce负责“合”。
参考博客:Lansonli【Hadoop专栏】
be happy——
相关文章:
大数据|Hadoop系统
目录 📚Hadoop介绍 📚Hadoop优点 📚Hadoop的体系结构 🐰HDFS的体系结构 🐰MapReduce的体系结构 🐰HDFS和MapReduce的协同作用 📚Hadoop与分布式开发 🐰MapReduce计算模型 &a…...
2.递归算法
递归算法的两个特点(很重要)调用自身要有结束条件void func1(int x) {printf("%d\n", x);func1(x - 1); }func1会一直死循环,没有使其结束的条件,所以不是递归void func2(int x) {if (x > 0){printf("%d\n"…...
MySQL---触发器
MySQL—触发器 将两个关联的操作步骤写到程序里面,并且要用事务包裹起来,确保两个操作称为一个原子操作,要么全部执行,要么全部不执行 创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作 …...
PXC高可用集群(MySQL)
1. PXC集群概述 1.1. PXC介绍 Percona XtraDB Cluster(简称PXC) 是基于Galera的MySQL高可用集群解决方案Galera Cluster是Codership公司开发的一套免费开源的高可用方案PXC集群主要由两部分组成:Percona Server with XtraDB(数据…...
pytorch-把线性回归实现一下。原理到实现,python到pytorch
线性回归 线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。 与回归问题不同,分类问题中模型的最终输出是一个离散值。所说的图像分类、垃圾邮件识别、疾病检测等输出为离…...
js中判断数组的方式有哪些?
js中判断数组的方式有哪些?1.通过Object.prototype.toString.call来判断2.通过instanceof来判断3.通过constructor来判断4.通过原型链来判断5.通过ES6.Array.isAaary()来判断6.通过Array.prototype.isPrototypeOf来判断1.通过Object.prototype.toString.call来判断 …...
【2023unity游戏制作-mango的冒险】-5.攻击系统的简单实现
👨💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity游戏制作 ⭐攻击系统的简单实现⭐ 文章目录⭐攻击系统的简单实现⭐👨…...
SpringMVC 面试题
1、什么是SpringMVC? SpringMVC是一个基于Java的实现了MVC设计模式的“请求驱动型”的轻量级WEB框架,通过把model,view,controller 分离,将web层进行职责的解耦,把复杂的web应用分成逻辑清晰的几个部分&am…...
布局三八女王节,巧借小红书数据分析工具成功引爆618
对于小红书“她”经济来说,没有比三八节更好的阵地了。伴随三八女王节逐渐临近,各大品牌蓄势待发,这场开春后第一个S级大促活动,看看品牌方们可以做什么? 洞察流量,把握节点营销时机 搜索小红书2023年的三…...
RISCV学习(1)基本模型认识
笔者来聊聊ARM的函数的调用规则 1、ARM函数调用规则介绍 首先介绍几个术语, AAPCS:Procedure Call Standard for the ARM ArchitectureAPCS:ARM Procedure Call StandardTPCS:Thumb Procedure Call StandardATPCS:AR…...
【java代码审计】命令注入
1 成因 开发者在某种开发需求时,需要引入对系统本地命令的支持来完成某些特定的功能,此时若未对用户的输入做严格的过滤,就可能发生命令注入。 2 造成命令注入的类或方法 Runtime类:提供调用系统命令的功能 ①Runtime.getRuntim…...
速锐得适配北汽EX系列电动汽车CAN总线应用于公务分时租赁
过去的几年,我们看到整个分时租赁业务出现断崖式下跌,这是我们看到这种市场情况,是必然,也是出乎意料。原本很多融资后的出行公司、大牌的出行服务商的分时租赁业务,受各种影响不得不转型成其他出行服务。例如…...
已解决ERROR: Failed building wheel for opencv-python-headless
已解决ERROR: Failed building wheel for opencv-python-headless Failed to build opencv-python-headless ERROR: Could not build wheels for opencv-python-headless, which is required to install pyproject.toml-based projects报错信息亲测有效 文章目录报错问题报错翻…...
每日获取安全资讯的网站,国内外共120个
国内 FreeBuf(https://www.freebuf.com/) 安全客(https://www.anquanke.com/) 雷锋网安全(https://www.leiphone.com/category/security) 先知社区(https://xz.aliyun.com/) CSDN安全…...
HUN工训中心:开关电路和按键信号抖动
工训中心的牛马实验 1.实验目的: 1) 认识开关电路,掌握按键状态判别、开关电路中逻辑电平测量、逻辑值和逻辑函数电路。 2) 掌握按键信号抖动简单处理方法。 3) 实现按键计数电路。 2.实验资源: HBE硬件基础电路实验箱、示波器、万用表…...
WordPress 主题 SEO 标题相关函数和过滤器教程wp_get_document_title()
WordPress 4.4.0 版本开始,加入了 wp_get_document_title(); 这个函数,而 wp_title(); 已经 deprecated 不推荐使用。因此,如果想要启用 WordPress 主题标题功能,在不安装 WordPress SEO 插件的情况下,可以使用以下代码…...
Qt 事件机制
【1】事件 事件是可以被控件识别的操作。如按下确定按钮、选择某个单选按钮或复选框。 每种控件有自己可识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事件等等。 事件就是用户对窗口上各种组件的操作。…...
【Python】Numpy--np.linalg.eig()求对称矩阵的特征值和特征向量
【Python】Numpy–np.linalg.eig()求对称矩阵的特征值和特征向量 文章目录【Python】Numpy--np.linalg.eig()求对称矩阵的特征值和特征向量1. 介绍2. API3. 代码示例1. 介绍 特征分解(Eigendecomposition),又称谱分解(Spectral d…...
医疗床头卡(WIFI方案)
一、产品特性 7.5寸墨水屏显示WIFI无线通信,极简部署,远程控制按键及高亮LED指示灯指示800*480点阵屏幕锂电池供电,支持USB充电DIY界面支持文本/条码/二维码/图片超低功耗/超长寿命,一次充电可用一年基于现有Wifi环境,…...
[YOLO] yolo博客笔记汇总(自用
pip下载速度太慢,国内镜像: 国内镜像解决pip下载太慢https://blog.csdn.net/weixin_51995286/article/details/113972534 YOLO v2和V3 关于设置生成anchorbox,Boundingbox边框回归的过程详细解读 YOLO v2和V3 关于设置生成an…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...






