大数据|Hadoop系统

news/2024/3/29 16:04:35/文章来源:https://blog.csdn.net/m0_63398413/article/details/129267934

目录

📚Hadoop介绍

📚Hadoop优点

📚Hadoop的体系结构

🐰HDFS的体系结构

🐰MapReduce的体系结构

🐰HDFS和MapReduce的协同作用

📚Hadoop与分布式开发

🐰MapReduce计算模型


📚Hadoop介绍

Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,它实现了Map/Reduce计算模型。

狭义上说,Hadoop的核心组件有:

  • HDFS(分布式文件系统):解决海量数据存储
  • MapReduce(分布式运算编程框架):解决海量数据计算971a2ce4066644fd9fcf021561810d9f.jpg
  • YARN(作业调度和集群资源管理的框架):解决资源任务调度

📚Hadoop优点

  • Hadoop是可靠的:因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
  • Hadoop是高效的:因为它以并行的方式工作,通过并行处理加快处理速度。
  • Hadoop是可伸缩的:它能够处理PB级数据,即有扩容能力。
  • Hadoop成本低:依赖于廉价服务器,因此它的成本比较低,任何人都可以使用。

由于Hadoop优势突出,基于Hadoop的应用已经遍地开花,尤其是互联网领域。

e8b2b76a14d047be9fd1da497590ef07.jpg

📚Hadoop的体系结构

e0ae23cf877345e983f46da6fbfb2833.jpg

  • 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上。

d38a4dd9ad9346b2a764732f357aa07c.jpg

 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——

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75584.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时钟振荡器的作用

引言 如果电子元件没有时钟,你怎么知道你的信号的频率是多少?频率的定义是一秒振荡的次数。一秒是多久?那么为了知道一秒是多久,电子元件的时钟就很重要了,我们通过频率准确的晶振来产生振荡信号。因为晶振的频率是固…

网络安全从入门到精通:30天速成教程到底有多狠?你能坚持下来么?

毫无疑问,网络安全是当下最具潜力的编程方向之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握网络安全看似是一件十分困难的事。至于一个月能不能学会网络安全,这个要看个人,对于时间管理不是很高的,肯…

信贷系统学习总结(5)—— 简单的风控示例(含代码)

一、背景1.为什么要做风控?目前我们业务有使用到非常多的AI能力,如ocr识别、语音测评等,这些能力往往都比较费钱或者费资源,所以在产品层面也希望我们对用户的能力使用次数做一定的限制,因此风控是必须的!2.为什么要自己写风控?那么多开源的风控组件,为什么还要写呢?是不是想…

2023上半年北京/上海/广州/深圳NPDP产品经理认证报名

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…

已解决The above exception was the direct cause of the following exception:

已解决RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import The above exception was the direct cause of the following exception: SystemError: returned a result with an err…

HU4056H耐压高达28V,具有电源OVP功能的1A单节锂离子电池线性充电IC

产品概述 HU4056H是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电 IC。最高耐压可达 28V, 6.5V 自动过压保护,充电电流可达 1A。 由于采用了内部 PMOSFET 架构,加上防倒充电路,所以不需要外部隔离二…

你问我答|虚拟机、容器和无服务器,怎么选?

在新技术层出不穷的当下,每家企业都希望不断降低成本,并提高运营效率,一个方法就是寻找不同的技术方案来优化运营。      例如,曾经一台服务器只能运行一个应用(裸机);接着,一台服务器的资源可以划分为多个块,从而运行多个应用(虚拟化);再到后来,应用越来越多,为了方便它们…

移动字母--降维与DFS

一、题目描述 2x3=6 个方格中放入 ABCDE 五个字母,右下角的那个格空着。如下图所示。 和空格子相邻的格子中的字母可以移动到空格中,比如,图中的 C 和 E 就可以移动,移动后的局面分别是: A B D E C A B C D E 为了表示方便,我们把 6 个格子中字母配置用一个串表示出…

老字号白酒企业——金徽酒借力泛微,升级门户,实现统一办公

金徽酒股份有限公司前身系康庆坊、万盛魁等多个徽酒老作坊基础上组建的省属国营大型白酒企业,曾用名甘肃陇南春酒厂,是国内建厂最早的中华老字号白酒酿造企业之一。2016年3月10日,金徽酒在上海证券交易所挂牌上市。 (图片素材来自…

计算机网络技术概述

目录第一章 概述1.1计算机网络在信息时代的作用一、计算机网络各类应用1 信息浏览和发布万维网谷歌、百度等搜索引擎博客、微博2 通信和交流电子邮件、网络电话QQ、Skype微信、Facebook、Twitter3 休闲和娱乐网络电视bilibili、youtube等视频网站互动网络游戏4 资源共享远程文件…

10月17日|实验报告|paddle paddle|概念辨析

目录 一、安装paddle paddle 第一章 零基础入门深度学习 机器学习和深度学习综述 1.人工智能、机器学习、深度学习的关系 1.1人工智能(Artificial Intelligence,AI) 1.2机器学习 1.2.1机器学习的实现 1.2.2机器学习方法论 1.3深度学习​​​​​​​ 一、安装paddle…

Hbase -- Compact工具梳理

1. 背景 当前,线上HBase集群的自动Major Compact是关闭的,我们选择在凌晨业务空闲的时候进行手动触发Major Compact,Compact工具就是在运维平台上对资源组、RS、表进行Major Compact。目前线上有2种版本的Compact程序:Compact_v1…

548、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ (二)】 2023.02.28

目录一、Java 访问 RocketMQ 实例1.1 引入依赖1.2 消息生产者1.3 消息消费者1.4 启动 Name Server1.5 启动 Broker1.6 运行 Consumer1.7 运行 Producer二、参考链接一、Java 访问 RocketMQ 实例 RocketMQ 目前支持 Java、C、Go 三种语言访问,按惯例以 Java 语言为例…

IDEA社区版环境配置和插件安装

一、Java环境安装 1.1 下载openjdk环境安装包 可以进华为镜像站进行下载。参考链接: Index of openjdk-local https://repo.huaweicloud.com/openjdk/ 1.2 配置Java环境 解压缩openjdk到任意路径,建议路径不要有中文。然后把路径的bin文件&#xff0…

CSO面对面丨中核华辉刘博:应对大型央国企数字化转型道路上必须攻克的安全难题

“极致”,一直是大型央国企网络安全工作建设追求的目标。随着我国数字化转型全面走深向实,网络安全风险、数据管理、层出不穷的网络攻击,为各领域大型央国企数字化转型带来了更多的挑战。如何充分发挥优势、携手各方构筑网络安全屏障、提升安…

LeetCode 79. 单词搜索

LeetCode 79. 单词搜索 难度:middle\color{orange}{middle}middle 题目描述 给定一个 mxnm x nmxn 二维字符网格 boardboardboard 和一个字符串单词 wordwordword 。如果 wordwordword 存在于网格中,返回 truetruetrue ;否则,返…

Leetcode19. 删除链表的倒数第n个结点

一、题目描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2输出:[1,2,3,5] 示例 2: 输入:head [1], n 1输出&#x…

JSP的分页

分页在读取数据库里的数据需要用,在以后数据库肯定还会有很多数据,一个页面装不下,所以需要分页功能。数据库查询的分页语句是“SELECT * FROM emp LIMIT 0, 5;”这里0是指起始行,5是查询5行,第二页起始行就是5&#x…

通过python技术获取甲流分布数据

近期,多地学校出现因甲流导致的班级停课,儿科甲流患者就诊量呈数倍增长。此轮甲流为何如此严重?感染甲流之后会出现哪些症状? 经过专家的介绍甲流之所以这么严重有这些原因导致的。一、疫情完全放开后很多孩子不戴口罩了&#x…

Odoo | Webserivce | 5分钟学会【JSONRPC】接口开发 - 换USERID(进阶)

文章目录JSONRPC - 换取USERID简述换取USERID1. 代码示例2. 换取结果JSONRPC - 换取USERID 简述 从Odoo JSONRPC 接口入门篇,可以发现我们直接传入了USERID,这只是为了方便快速测试。 其实按照常规流程,应该通过【用户名USERNAME】和【用户…