Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录

  • 大数据时代
  • Hadoop
    • Hadoop概述
      • Hadoop特性优点
      • Hadoop国内外应用
      • Hadoop发行版本
      • Hadoop集群整体概述
    • HDFS分布式文件系统
      • 传统常见的文件系统
      • 数据和元数据
        • HDFS核心属性
      • HDFS简介
      • HDFS shell操作
  • Map Reduce
    • 分而治之
    • 理解MapReduce思想
      • 分布式计算概念
    • MapReduce介绍
      • MapReduce产生背景
      • MapReduce特点
      • MapReduce局限性
      • MapReduce实例进程
      • MapReduce阶段组成
      • MapReduce数据类型
    • MapReduce官方示例
      • 计算圆周率Π的值
      • WordCount词频统计
    • Map阶段执行流程
    • Reduce阶段执行流程
    • Shuffle机制
  • YARN
    • YARN介绍
      • YARN功能说明
      • YARN概述
    • YARN架构、组件
    • 程序提交YARN交互流程
    • YARN资源调度器Scheduler

大家好,我是北山啦,好久不见,Nice to meet you,本文将记录学习Hadoop生态圈相关知识。

大数据时代

大数据是指无法在一定时间范围内通过常用软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产
在这里插入图片描述

大数据时代的特征5V

在这里插入图片描述

应用场景,包括电商领域中的推荐以及金融方面中的个人信用评估,交通领域中拥堵预测,导航最优规划等等,https://beishan.blog.csdn.net/

在这里插入图片描述在这里插入图片描述
大数据场景下:海量数据如何存储以及海量数据如何计算?

这里涉及到分布式、集群的概念

在这里插入图片描述
在这里插入图片描述
海量数据如何存储以及海量数据如何计算

在这里插入图片描述

Hadoop

在这里插入图片描述

Hadoop概述

在这里插入图片描述

官网:https://hadoop.apache.org/

侠义上Hadoop指的是Apache软件基金会的一款开源软件

允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理

Hadoop核心组件
HDFS:分布式文件存储系统,解决海量数据存储
YARN:集群资源管理和任务调度框架,解决资源任务调度
MapReduce:分布式计算框架,解决海量计算
在这里插入图片描述

广义上Hadoop指的是围绕Hadoop打造的大数据生态圈

在这里插入图片描述

Hadoop特性优点

在这里插入图片描述

Hadoop国内外应用

Hadoop最先应用于国内外的互联网公司,外国的例如:Yahoo、Facebook、IBM。国内的例如:BAT以及华为

在这里插入图片描述

在这里插入图片描述
Hadoop的成功在于它的通用性以及简单

精确区分做说什么和怎么做,做什么属于业务问题,怎么做属于技术问题,用户负责业务,Hadoop负责技术

Hadoop发行版本

分为开源社区版以及商业发行版
在这里插入图片描述
开源社区版本:https://hadoop.apache.org/
商业发行版本:https://www.cloudera.com/products/open-source/apache-hadoop.html
在这里插入图片描述

截至目前,Hadoop以及发展到了3.x版本,Hadoop1.0时,包括HDFS(分布式文件存储)和MapReduce(资源管理和分布式数据处理),到2.0,将MapReduce(分布式数据处理)进行拆分,引入新的组件YARN(集群资源管理、任务调度)

在这里插入图片描述
Hadoop3.0架构组件和Hadoop2.0类似,3.0着重于性能优化

在这里插入图片描述

Hadoop集群整体概述

  • Hadoop集群包括两个集群:HDFS集群、YARN集群
  • 两个集群在逻辑上分离通常物理上在一起
  • 两个集群都是标准的主从架构集群

MapReduce是计算框架、代码层面的组件 没有集群之说

在这里插入图片描述

两个集群在逻辑上分离通常物理上在一起,可以从下图中理解
在这里插入图片描述
HDFS集群由一主(NN即NameNode)三从(DN即DataNode)+一个秘书(SNN即Secondary NameNode)构成

YARN集群由RM即Resource Manager和NM即Node Manager构成

Hadoop集群 = HDFS集群 + YARN集群

  • 逻辑上分离,指他们之间互相没有依赖
  • 物理上一起,指进程部署在同一台机器上

HDFS分布式文件系统

文件系统是一种存储和组织数据的方法,实现了数据的存储、分级组织、访问和获取等操作,使得用户对访问和查找变得容易,文件系统使用树形目录逻辑抽象代替了硬盘等物理设备使用数据块的概念,用户不需要关系数据底层存在硬盘哪里,只需记得这个文件所属的目录和文件名即可

传统常见的文件系统

在这里插入图片描述
海量数据存储遇到的困难:

  • 传统存储硬件通用性差,设备投资加上后期维修、升级扩容的成本非常高
  • 传统存储方式意味着:存储时存储,计算是计算,当需要处理数据的时候把数据移动过来
  • 性能低,单节点I/O性能瓶颈无法逾越,难以支持海量数据的高并发高吞吐
  • 可扩展性差

数据和元数据

在这里插入图片描述

HDFS核心属性

  • 分布式存储
  • 元数据记录
  • 分块存储
  • 副本机制

分布式存储

数据量大,单机存储遇到瓶颈,分布式存储通过横向扩展来解决数据存储问题
在这里插入图片描述

元数据记录

针对文件分布在不同机器上不利于寻找,元数据记录下文件机器存储位置信息,快速定位文件位置
在这里插入图片描述

分块存储

文件过大导致单机存放不下,上传下载效率低。通过文件分块存储在不同机器,针对块并行操作提高效率

在这里插入图片描述

副本机制

不同机器设置备份,冗余存储,保障数据安全
在这里插入图片描述
总结如下:
在这里插入图片描述

HDFS简介

  • HDFS(Hadoop Distributed File System),Hadoop分布式文件系统,是Apache Hadoop的核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在,也可以说大数据首要解决的我呢提就是海量数据的存储问题
    在这里插入图片描述
    在这里插入图片描述

HDFS shell操作

HDFS Shell包含了各种的类Shell的命令,可以直接与Hadoop分布式文件系统以及其他文件系统进行交互,常用命令如下:
这里搬运的CSDN气质&末雨的总结,感谢感谢

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

在这里插入图片描述

Map Reduce

hadoop主键之MapReduce

分而治之思想、设计构思、官方示例、执行流程

分而治之

MapReduce的核心思想是:分而治之
在这里插入图片描述
将原问题拆分位若干个子问题,并对子问题进行求解,最后进行合并,得到原问题的解。

将原问题拆分位若干个小问题之后,可以并行处理,同时来计算。当然,如果无法拆分或者拆分后小问题之间存在着依赖关系,那就不能用分而治之的思想。

  1. 能不能拆分
  2. 是否存在依赖
    在这里插入图片描述

举例:要数停车场中的所有停放车的总数量

Map:你数一列,我数一列…这就是Map阶段,人越多,能过够同时数车的人就越多,速度就越快。

Reudece:数完之后,聚在一起,把所有人的统计数加在一起,这就是Reduce合并汇总阶段

在这里插入图片描述

理解MapReduce思想

  • MapReduce的思想很好理解,关键在于如何基于这个思想设计出一款分布式计算程序
  • 后续讲解Hadoop团队针对MapReduce的设计构思
  1. 如何针对大数据处理场景

在这里插入图片描述

  1. 构建抽象编程模型

MapReduce借鉴了函数式语言中的思想,再用MapReduce两个函数提供了高层的并行编程抽象模型。

Map:对一组数据元素进行某种重复式的处理

Reduce:对Map的中间结果进行某种进一步的结果整理

在这里插入图片描述
MapReduce中定义了如下的Map和Reduce两个抽象的编程接口,由用户编程实现:
在这里插入图片描述
通过以上两个编程接口,大家可以看出MapReduce处理的数据类型是<key,value>键值对

  1. 统一架构、隐藏底层细节

在这里插入图片描述

分布式计算概念

  • 分布式计算是一种计算方法,和集中式计算是相对的
  • 随着计算机技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成
  • 分布式计算将改应用分解成许多小的部分,分配给堕胎计算机进行处理,这样可以节约整体计算时间,大大提高计算效率
    在这里插入图片描述

MapReduce介绍

在这里插入图片描述

  1. Hadoop MapReduce是一个分布式计算框架,用于轻松编写分布式应用程序,这些应用程序以可靠,容错的方式并行处理大型硬件集群(数千个节点)上的大量数据(多TB数据集)
  2. Map Reduce是一种面向海量数据处理的一种指导思想,也是一种用于大规模数据进行分布式计算的编程模型

MapReduce产生背景

由Google于2004年的论文中《MapReduce:Simplified Data Processing on Large Cluster》中提出
在这里插入图片描述

MapReduce特点

易于编程:MapReduce提供了用于二次开发的接口,简单地实现一些接口,就可以完成一个分布式程序,任务计算交给计算框架去处理,将分布式程序部署到hadoop集群上运行,集群节点可以扩展到成百上千

良好的扩展性:当计算机资源不能得到满足的时候,可以通过增加机器来扩展计算能力,基于MapReduce的分布式计算的特点可以随节点数目增长保持近乎于线性的增长,这也是MapReduce处理海量数据的关键,通过将计算节点增至几百或几千就可以很容易地处理数TB甚至数PB的离线数据

高容错性:Hadoop集群式分布式搭建和部署的,任何一个机器节点宕机了,它可以把上面的计算任务转移到另一个节点上运行,不影响整个作业任务的完成,过程完全是Hadoop内部完成的

适合海量数据的离线处理:可以处理GB、TB和PB级别的数据量

MapReduce局限性

MapReduce虽然有很多优势,也有相对的局限性,局限性不代表不能做,而是在某些场景下实现效果比较差,不适合MapReduce来处

实时计算性能差:MapReduce主要应用于离线作业,无法做到秒级的数据相应

不能进行流式计算:流式计算特点是数据源源不断地计算,并且数据是动态的,而MapReduce作为一个离线计算框架,主要是针对静态数据集的,数据是不能动态变化的

MapReduce实例进程

一个完整的MapReduce程序在分布式运行时有三类

  • MRAppMaster:负责整个MR程序的过程调度以及状态协调
  • MapTask:负责map姐u单的整个数据处理流程
  • ReduceTask:负责reduce阶段的整个数据处理流程

在这里插入图片描述

MapReduce阶段组成

  • 一个MapReduce编程模型中只包含一个Map阶段和Reduce阶段,或者只有Map阶段
  • 不能有诸多个map阶段,多个reduce阶段的出现
  • 如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行
    在这里插入图片描述

MapReduce数据类型

  • 在整个MapReduce程序中,数据都是以kv键值对的形式流转的
  • 在实际编程解决各种业务问题中,需要考虑每个阶段的输入输出kv是什么
  • MapReduce内置了很多默认属性,比如排序,分组等,都和数据的k相关,所以说kv的类型数据确定是极其重要的
    在这里插入图片描述

MapReduce官方示例

概述:
在这里插入图片描述
实例说明:
在这里插入图片描述

计算圆周率Π的值

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

WordCount词频统计

  • WordCount算是大数据计算领域经典的入门案例,相当于hello world
  • 通过WordCount,可以感受背后MapReduce的执行流程和默认的行为机制

在这里插入图片描述

WordCount编程实现思路

  • map阶段核心:把输入的数据进行切割,全部标记,因此输出就是<单词,1>

  • shuffle阶段核心:经过MR程序内部自带默认的排序分组等功能,把key相同的单词会作为一组数据构成新的kv对

  • reduce阶段核心:处理shuffle完成的一组数据,该组数据就是该代词所有的键值对,对所有的1进行累计求和,就是单词的总数

在这里插入图片描述
Word程序提交
在这里插入图片描述
在这里插入图片描述

Map阶段执行流程

依托WordCount程序
在这里插入图片描述
MapReduce整体执行流程图

在这里插入图片描述
Map阶段执行过程
在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/b721600efc88488f9ce65fad59774916.png

Reduce阶段执行流程

在这里插入图片描述
Reduce阶段执行过程
在这里插入图片描述

在这里插入图片描述

Shuffle机制

  • Shuffle的本意是洗牌的意思,把一组有规则地数据尽量打乱成无规则的数据
  • 在MR中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则‘打乱’成具有一定规则的数据,以便reduce端接收处理
  • 一般吧从Map产生输出开始到Reduce得到数据作为输入之前的操作称作shuffle
    在这里插入图片描述

Map端的shuffle

在这里插入图片描述

Reduce端的shuffle

在这里插入图片描述

shuffle机制弊端

  • Shuffle是MapReduce程序的核心和精髓
  • Shuffle也是MapReduce被诟病最多的地方,MapReduce相比较于Spark、Flink计算引擎慢的原因,根Shuffle机制有很大的关系
  • Shuffle中频繁设计数据在内存,磁盘之间的多次往复

YARN

在这里插入图片描述

介绍、架构组件、程序提交交互流程、调度器

YARN介绍

  • Apache Hadoop Yarn(Yet Another Resource Negotiatot,另一种资源协调者)是一种新的Hadoop资源管理器
  • YARN是一个通用资源管理系统调度平台,可为上层应用提供统一的资源管理和调度
  • 它的引入为集群在利用率、资源同意管理和数据共享等方面带来了巨大好处

YANR是一个通用资源管理系统调度平台

YARN功能说明

在这里插入图片描述

YARN概述

在这里插入图片描述

YARN架构、组件

YARN官方架构图
在这里插入图片描述
在这里插入图片描述

程序提交YARN交互流程

  1. MR作业提交,Client → RM
  2. 资源的申请 MrAppMaster → RM
  3. MR作业状态汇报 Container(Map|Reduce task) → Container(MrAppMaster)
  4. 节点的状态汇报 NM→ RM

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

在这里插入图片描述

YARN资源调度器Scheduler

在这里插入图片描述

如何理解资源调度

  • 在理想的情况下,应用程序提出的请求将以及得到YARN的批准,但在实际中,资源是有限的,并且在繁忙的集群中,应用程序通常将需要等待其后写请求得到满足。YARN调度程序的工作是根据一些定义的策略为应用程序分配资源
  • 在YARN中,负责给应用分配资源的就是Scheduler,他是ResourceManager的核心组件之一,Scheduler完全专用于调度作业,他无法跟踪应用程序的状态
  • 一般而言,调度是一个难题,并且没有一个最佳的策略,为此,YARN提供了多种调度器和配置的策略供选择

调度器策略

根据需求,选择合适的调度器

  • FIFO Schedule
  • Capacity Schedule
  • Fair Schedule
    在这里插入图片描述
  1. FIFO Scheduler
    在这里插入图片描述
  2. Capacity Schedule
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. Fair Schedule
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

https://beishan.blog.csdn.net/,我是北山啦,欢迎评论交流

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

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

相关文章

[STM32F103C8T6]DMA

DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于 CPU&#xff0c;在这个时间中&#xff0c;CPU对于内存的工作来说就无法使用。 我自己…

JDBC概述三(批处理+事务操作+数据库连接池)

一&#xff08;批处理&#xff09; 1.1 批处理简介 批处理&#xff0c;简而言之就是一次性执行多条SQL语句&#xff0c;在一定程度上可以提升执行SQL语句的速率。批处理可以通过使用Java的Statement和PreparedStatement来完成&#xff0c;因为这两个语句提供了用于处理批处理…

BGP策略实验

实验要求&#xff1a; 1、使用PreVa1策略&#xff0c;确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略&#xff0c;确保R4通过R3到达192.168.11.0/24 3、配置MED策略&#xff0c;确保R4通过R3到达192.168.12.0/24 4、使用Local Preference策略&#xff0c;确保R1通过R2到…

公司新招了个腾讯拿38K的人,让我见识到了什么才是测试天花板···

5年测试&#xff0c;应该是能达到资深测试的水准&#xff0c;即不仅能熟练地开发业务&#xff0c;而且还能熟悉项目开发&#xff0c;测试&#xff0c;调试和发布的流程&#xff0c;而且还应该能全面掌握数据库等方面的技能&#xff0c;如果技能再高些的话&#xff0c;甚至熟悉分…

【失业即将到来?】AI时代会带来失业潮吗?

文章目录前言一、全面拥抱AIGC二、AI正在取代这类行业总结前言 兄弟姐妹们啊&#xff0c;AI时代&#xff0c;说抛弃就抛弃&#xff0c;真的要失业了。 一、全面拥抱AIGC 蓝色光标全面暂停外包&#xff1f; 一份文件截图显示&#xff0c;中国知名4A广告公司&#xff0c;蓝色光…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告&#xff08;1&#xff09;总体介绍 微软 GPT-4 测试报告&#xff08;2&#xff09;多模态与跨学科能力 微软 GPT-4 测试报告&#xff08;3&#xff09;编程能力 微软 GPT-4 测试报告&#xff08;4&#xff09;数…

基于AI分词模型,构建一个简陋的Web应用

文章目录前言1. 效果展示2. 应用设计3. 实现3.1. lac分词模型的服务化部署3.2 使用Flask构建app4. 小结前言 内容纯属个人经验&#xff0c;若有不当或错误之处&#xff0c;还请见谅&#xff0c;欢迎指出。 文中大致介绍了&#xff0c;如何快捷地使用PaddleHub服务化部署一个简…

九龙证券|昨夜,大涨!蔚来5.99%,小鹏15.22%,理想6.39%

当地时间周一&#xff0c;美股三大指数低开高走&#xff0c;尾盘小幅收涨。盘面上&#xff0c;银行股、航空股遍及上涨。 展望本周&#xff0c;包括美联储理事沃勒、鲍曼等官员将迎来下月会议沉默期前的最终说话&#xff0c;投资者需关注其对经济和货币政策前景的看法。此外&am…

如何在TikTok视频描述中提高用户参与度

鑫优尚电子商务&#xff1a;TikTok视频描述&#xff08;包括话题标签&#xff09;有150个字符的限制&#xff0c;因此卖家需要合理撰写出有趣且有实际意义的视频描述。可尝试将描述保持在140个字符以内&#xff0c;将最重要的信息放在前面&#xff0c;并通过多次修改文案以排除…

甘特图控件DHTMLX Gantt入门使用教程【引入】:dhtmlxGantt与ASP.NET Core(上)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…

【获奖案例巡展】科技向善之星——中航电梯5G+大数据管理平台

为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目&#xff0c;星环科技自2021年推出了“新科技 星力量” 星环科技科技实践案例评选活动&#xff0c;旨在为各行业提供更多的优秀产品案例&#xff0c;彰显技术改变世界的力量&#xff0…

会话跟踪技术

目录 Cookie基本使用 Cookie原理 Cookie使用细节 Session基本使用 Session原理 Session使用细节 案例 用户登录注册案例 用户注册功能 保存用户信息到数据库 验证码-展示 验证码-校验 会话跟踪技术的概述 会话:用户打开浏览器&#xff0c;访问web服务器的资源&…

ssm框架之SpringMVC:浅聊获得参数以及获得请求头参数

前面聊过了SpringMVC&#xff0c;以及通过实例演示了SpringMVC如何搭建&#xff0c;如果对环境搭建不太了解的话&#xff0c;可以看一下前面的文章&#xff08;下面演示的例子&#xff0c;环境都是通过上面的例子进行演示的&#xff09;&#xff1a;传送阵 在使用javaweb项目原…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论&#xff0c;包括人类需求的五级模型&#xff0c;通常被描绘成金字塔内的等级。 从层次结构的底部向上&#xff0c;需求分别为&#xff1a;生理&#xff08;食物和衣服&#xff09;&#xff0c;安全&#xff08;工作保障&#xff09;…

stm32下载代码到单片机上需要调节BOOT为什么模式

一、BOOT模式选择图解 二、BOOT模式介绍 所谓启动&#xff0c;一般来说就是指下好程序后&#xff0c;重启芯片时&#xff0c;SYSCLK的第4个上升沿&#xff0c;BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态&#xff0c;来选择在复位后的启动模式。 A. Mai…

MongoDB 聚合管道中使用数组表达式运算符合并数组($concatArrays)

数组表达式运算符主要用于文档中数组的操作&#xff0c;接上一篇&#xff1a;MongoDB 聚合管道中使用数组表达式运算符&#xff08;$slice截取数组&#xff09;https://blog.csdn.net/m1729339749/article/details/130130328本篇我们主要介绍数组表达式运算符中用于合并数组的操…

LMKD分享

背景 Android是一个多任务系统&#xff0c;可以同时运行多个程序&#xff0c;一般来说&#xff0c;启动运行一个程序是有一定的时间开销的&#xff0c;因此为了加快运行速度&#xff0c;当你退出一个程序时&#xff0c;Android并不会立即杀掉它&#xff0c;这样下次再运行该程…

【论文阅读】3D-LaneNet

【论文阅读】3D-LaneNet 主要要做的事情就是 lane detection。这里提一下 BEV&#xff08;Bird‘s Eye View&#xff09; 感知算法&#xff0c;为了将 2D 图像映射到 3D 空间中&#xff0c;能够更准确的检测物体位置&#xff0c;需要 BEV 感知的结果。后续还会继续了解这方面内…

企业数据安全能力建设思路

在现代社会&#xff0c;企业数据安全已经成为一个非常重要的话题。企业数据安全能力的建设是每个企业都必须面对和解决的问题。企业数据安全能力建设思路包括以下几个方面&#xff1a; 1. 建立完善的安全管理制度 企业要建立完善的安全管理制度&#xff0c;包括信息安全政策、…

注册claude AI账号 slack工作区账号

Claude 是建立在 slack工作区的一个AI人工助手&#xff0c;更像是将chatgpt集成到了会议模式&#xff0c;一个账号实际上拥有了你的会议室和你的AI助手&#xff0c;你可以让你的朋友和同事进入你的房间体验。 Claude是不是openai的产物&#xff1f;目前还不知道&#xff0c;不…