大数据|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…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...






