Hadoop的概念

news2024/11/28 16:40:03

1.什么是大数据

  1. 数据体量巨大:数据量规模庞大,通常以PB(拍字节)或EB(艾字节)来衡量,远远超出了传统数据库和数据处理工具的处理能力。
  2. 数据类型多样:大数据包括结构化数据、半结构化数据和非结构化数据。其中,非结构化数据占据了相当大的比例,如文本、音频、视频、图片、地理位置信息等。
  3. 价值密度低:在大量的数据中,真正有价值的信息可能只是很小的一部分。因此,如何从海量数据中快速提取有价值的信息是大数据处理的一个重要挑战。
  4. 处理速度快:大数据处理需要高效、实时的数据处理技术,以满足对数据价值的快速发现和利用的需求。

目前,有很多大数据处理系统可以处理大数据,如表

名称

类型

说明

Hadoop

开源

Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。

Spark

开源

类似Hadoop MapReduce的并行框架,用于快速处理大量数据。

Storm

开源

实时的、分布式以及具备高容错的计算系统。

MongoDB

开源

面向文档的NoSQL数据库,用于存储和检索键值对数据。

IBM PureData

商用

基于Hadoop,属于IBM专家集成系统PureSystem家族中的组成部分,主要面向大数据应用。

Oracle Exadata

商用

Oracle的新一代数据库云服务器,提供高性能的数据查询功能。

SAP Hana

商用

提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析。

Teradata

商用

非结构化数据解决方案。

AsterData

商用

未在图片中提供详细说明,但通常与大规模数据处理相关。

EMC GreenPlum

商用

采用了大规模并行处理,支持50PB级海量存储与管理。

HP Vertica

商用

列式大数据分析数据库,用于大型数据集的高效分析。

2.Hadoop体系结构

1:HDFS(Hadoop Distributed File System)

    • 定义:Hadoop的分布式文件系统,是Hadoop体系结构中负责数据存储管理的基础。
    • 结构:采用主从(Master/Slave)结构模型,由一个NameNode(主服务器)和若干个DataNode(从服务器)组成。NameNode管理文件系统的命名空间和客户端对文件的访问操作,DataNode则负责存储数据。
    • 特点:
      • 高容错性:能够自动检测并应对硬件故障。
      • 高吞吐量:通过流式数据访问提供高吞吐量应用程序数据访问功能。
      • 数据块存储:文件被分成若干个数据块(默认为128MB,用户可设置),并分散存储在多个DataNode上。
      • 元数据管理:NameNode维护文件系统的元数据,如文件块位置、大小、拥有者信息等。

2 :MapReduce

    • 定义:一种并行编程模型,用于大数据量的计算。
    • 结构:由JobTracker(作业跟踪器,运行在NameNode上)和TaskTracker(任务跟踪器,运行在每个DataNode上)组成。JobTracker负责调度作业,将作业切割成多个小任务并分配给TaskTracker执行。TaskTracker负责执行具体的Map和Reduce任务。
    • 特点:
      • 分而治之:将大规模数据集的操作分发给多个节点共同完成,然后整合结果。
      • 可靠性:自动处理节点故障,重新执行失败的任务。
      • 高容错性:通过数据块副本机制提高数据的可靠性。

3:YARN(Yet Another Resource Negotiator)

    • 定义:Hadoop 2.x版本中引入的资源管理系统,用于管理和调度集群中的计算资源。
    • 结构:包括ResourceManager(资源管理器)、NodeManager(节点管理器)、ApplicationMaster(应用程序主)等组件。ResourceManager负责资源的分配和调度,NodeManager管理各个节点的资源,ApplicationMaster则负责应用程序的生命周期管理。
    • 特点:
      • 通用性:支持多种计算框架(如MapReduce、Spark等)在Hadoop集群上运行。
      • 高效性:通过细粒度的资源管理和调度,提高集群的资源利用率。

其他组件

  • Hadoop Common:支持其他模块的公用组件,包括文件系统操作、序列化、网络通信等。
  • Hive:基于Hadoop的数据仓库工具,提供SQL查询功能,将SQL语句转换为MapReduce任务执行。
  • Spark:另一种大数据处理框架,与MapReduce功能类似但性能更优,支持快速迭代和实时计算。

3、Hadoop生态圈

Hadoop不仅仅包括HDFS和MapReduce,还形成了一个庞大的生态圈,包括:

  • Hive:建立在Hadoop上的数据仓库工具,提供SQL类查询语言。
  • Pig:用于大规模数据集的查询和分析平台。
  • HBase:基于Google BigTable的分布式、面向列的数据库。
  • ZooKeeper:为分布式应用提供协调服务的系统。
  • Sqoop:用于在Hadoop与传统数据库之间传输数据。
  • Flume:日志采集系统。
  • Spark:与Hadoop兼容的独立大数据处理框架。

4、MapReduce的原理和工作流程

原理:

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它采用“分而治之”的策略,将复杂任务分解成多个子任务,在Hadoop集群的多个节点上并行执行,然后将结果合并得到最终答案。MapReduce的核心思想是将数据(或计算任务)的“Map(映射)”和“Reduce(归约)”两个过程分开,“Map”将数据分割成不相关的区块,便于并行处理;“Reduce”则将结果汇总输出。

如图是MapReduce的工作流程图

工作流程:

  1. 作业提交:客户端提交MapReduce作业到JobTracker(在Hadoop 2.x及以后版本中,JobTracker的功能被ResourceManager和ApplicationMaster取代)。
  2. 作业初始化:JobTracker(或ResourceManager)接收作业,进行初始化操作,包括创建作业ID、配置作业参数等。
  3. 任务分配:JobTracker(或ResourceManager)将作业分割成多个Map任务和Reduce任务,并将这些任务分配给空闲的TaskTracker(或NodeManager)执行。
  4. Map阶段:
    • 每个Map任务读取输入数据(通常是一个HDFS上的数据块),并将其分割成多个键值对(key-value pairs)。
    • 对每个键值对执行用户定义的Map函数,输出中间结果。
    • 将中间结果写入本地磁盘,并通知Reduce任务拉取数据。

        5.Shuffle阶段:

    • Reduce任务从Map任务拉取中间结果,并进行排序和合并。
    • Shuffle过程包括数据的分区、排序、合并等操作,以确保Reduce任务能够正确接收和处理数据。

        6.Reduce阶段:

    • Reduce任务对收到的数据进行归约操作,执行用户定义的Reduce函数。
    • 将最终结果输出到HDFS或其他存储系统。

        7.作业完成:所有Reduce任务完成后,作业结束。JobTracker(或ResourceManager)通知客户端作业已完成。

设计框架:

MapReduce的设计框架主要包括JobClient、JobTracker(或ResourceManager)、TaskTracker(或NodeManager)等组件。JobClient负责作业的提交和监控;JobTracker(或ResourceManager)负责作业的调度和资源管理;TaskTracker(或NodeManager)负责执行具体的Map和Reduce任务。

5、YARN的原理和工作流程

原理:

YARN(Yet Another Resource Negotiator)是Hadoop 2.x版本中引入的资源管理系统,用于管理和调度集群中的计算资源。YARN将资源管理和作业调度/监控的功能分离,使得Hadoop集群能够同时运行多种计算框架(如MapReduce、Spark等)。YARN采用主从结构,包括ResourceManager(主节点)和NodeManager(从节点)等组件。如图是YARN的工作流程图

工作流程:

  1. 作业提交:客户端提交应用程序到ResourceManager。
  2. 资源申请:ResourceManager为应用程序分配一个ApplicationMaster(AM),AM负责向ResourceManager申请资源(如CPU、内存等)。
  3. 资源分配:ResourceManager根据集群的资源情况和调度策略,为AM分配资源,并通知相应的NodeManager启动Container。
  4. 任务执行:AM在分配到的Container上启动应用程序的任务(如Map和Reduce任务),并监控任务的执行情况。
  5. 进度和状态更新:任务将其进度和状态信息返回给AM,AM再将这些信息汇总后报告给ResourceManager和客户端。
  6. 作业完成:所有任务完成后,AM向ResourceManager申请注销自己,作业结束。

设计框架:

YARN的设计框架主要包括ResourceManager、NodeManager、ApplicationMaster等组件。ResourceManager负责资源的全局管理和调度;NodeManager负责节点上资源的监控和管理;ApplicationMaster负责应用程序的生命周期管理。

配置文件:

配置文件

路径

主要作用

yarn-site.xml

$HADOOP_CONF_DIR(通常是

/etc/hadoop/conf${HADOOP_HOME}/etc/hadoop)

定义YARN集群的全局配置,如ResourceManager的地址、NodeManager的配置、调度器类型(如Capacity Scheduler或Fair Scheduler)等。

capacity-scheduler.xml

$HADOOP_CONF_DIR

专用于Capacity Scheduler的配置文件,定义了队列结构、资源限制、用户权限等。Capacity Scheduler是YARN默认的资源调度器之一,它允许将资源划分为多个队列,每个队列都有自己的容量和限制。

fair-scheduler.xml

$HADOOP_CONF_DIR

专用于Fair Scheduler的配置文件,定义了队列的权重、优先级、资源限制等。Fair Scheduler是另一种资源调度器,它试图公平地分配资源给所有应用程序,无论它们何时提交。

container-executor.cfg

/etc/hadoop/conf(或类似路径)

配置容器执行器的参数,容器执行器负责在YARN节点上安全地执行容器。这个文件通常包含安全相关的配置,如用户权限、组权限等。

nodemanager-env.sh

$HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop

NodeManager的环境配置文件,用于设置NodeManager启动时的环境变量。

resourcemanager-env.sh

$HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop

ResourceManager的环境配置文件,用于设置ResourceManager启动时的环境变量。

log4j.properties

$HADOOP_CONF_DIR

配置YARN组件的日志级别和输出格式。这个文件允许你控制日志的详细程度,以便更好地监控和调试YARN集群。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在控件graphicsView中实现绘图功能(二)

目录 前言:基础夯实:1.创建 QGraphicsScene 和 QGraphicsView2. 在 QGraphicsScene 中添加椭圆3. 渲染和显示4. 推荐学习本文之前查看的链接: 效果展示:实现功能:遇到问题:核心代码:仓库源码&am…

windows环境基于python 实现微信公众号文章推送

材料: 1、python 2.7 或者 python3.x 2、windows 可以通过 “python -m pip --version” 查看当前的pip 版本 E:\Downloads\newsInfo>python -m pip --version pip 20.3.4 from C:\Python27\lib\site-packages\pip (python 2.7) 3、windows 系统 制作&#xf…

基于STM32开发的智能家居安防系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化传感器数据采集与处理安防控制与报警机制Wi-Fi通信与远程监控应用场景 家庭安防系统办公室与商铺的安全监控常见问题及解决方案 常见问题解决方案结论 1. 引言 随着智能家居技术的…

【Hot100】LeetCode—226. 翻转二叉树

目录 1- 思路Queue 队列实现层序遍历 交换左右 2- 实现⭐226. 翻转二叉树——题解思路 3- ACM 实现 原题连接:226. 翻转二叉树 1- 思路 Queue 队列实现层序遍历 交换左右 1- 借助 Queue 实现层序遍历2- 实现左右交换方式 2- 实现 ⭐226. 翻转二叉树——题解思…

带你玩转小程序推广,实现短链接一键跳转

不知道各位有没有想过,短链接直接跳转到微信小程序到底该怎么操作呢?掌握这个小技能,能让你的推广效率大幅提升哦。今天就给大家分享一个全新方法,教你如何从短链接直接跳转到微信小程序,实现高效的一键式跨越。 一、…

源代码怎么进行加密?2024年10款源代码加密软件推荐

在软件开发中,源代码是企业的核心资产,其安全性直接关系到企业的竞争力和商业机密。为了防止源代码被未授权访问、复制或篡改,源代码加密成为了一种常见的安全措施。2024年,随着技术的发展,市场上出现了多种源代码加密…

笔记-系统规划与管理师-案例题-2023年-服务运营管理

【说明】 小李是跨国公司新任命的IT服务经理,帮助提升中国区总部的IT服务管理水平。中国区总部的运维管理体系运营了近三年,内外部环境发生了很多变化,其中: (1)内部变化包括团队组织结构调整、部分团队精简改为外包支…

纯前端导出excel插件pikaz-excel-js使用小结

最近项目有多个报表开发并前端导出为excel的需求,第一张报表用的是pikaz-excel-js插件,git地址为https://github.com/pikaz-18/pikaz-excel-js,网上文档虽然多,但很多都很基础,官方文档介绍也很简单,没有很…

搜维尔科技:‌Manus VR手套通过触觉反馈技术与机器人进行互动

‌Manus VR手套通过触觉反馈技术与机器人进行互动。‌这种技术允许用户通过手套与机器人进行复杂的动作遥操作和训练,使得用户能够通过手套的动作来控制机器人的运动,同时机器人执行的动作也可以通过手套的触觉反馈功能传达给用户,使用户能够…

线索分析2个要点分析:营销归因与市场ROI转化效果评估

1、营销归因 在复杂的大数据时代,消费者能接触的渠道、设备越来越多,营销活动分析也变得越来越复杂。 在当前的营销环境中,了解并优化营销策略是至关重要的。一个关键的部分是通过分析不同营销活动如何促成商机并赢得订单。而要实现这一目标…

秸秆焚烧自动监测摄像机

秸秆焚烧是一种常见的农业废弃物处理方式,但同时也会产生大量的空气污染物,对环境和人类健康造成威胁。为了监测和控制秸秆焚烧的情况,可以使用秸秆焚烧自动监测摄像机。秸秆焚烧自动监测摄像机 是一种结合了人工智能和机器视觉技术的智能设备…

Linux入门——04 gbd git

gbd命令行调试 默认情况下,GDB无法对现在发布的程序进行调试 debug(能调试)&&release(不能调试) linux下GCC或G生成软件默认是release的! 1.debug模式 gcc -o mytest mytest.c -g 文件的体积不…

STM32学习记录-04-EXTI外部中断

1 中断系统 (1)中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续…

在尝试了市面上90%的报表工具后,终于找到了这款免费万能的报表工具!

经常有朋友私信问我有“哪个报表工具好用易上手?”或者是“有哪些适合绝大多数普通职场人的万能报表工具?”等问题。 在这里我总结出大家在报表选择时最在意的三个要点。 一、挑选报表工具的重点 1)低门槛上手难度:理想中的报表…

解密《黑神话:悟空》脚本

本文部分参考来自于:john 《黑神话:悟空》这游戏昨天上线了,我第一时间就下载玩了。玩的时候我就挺好奇他们是怎么写的程序,毕竟这么大的游戏项目肯定不会只用C一种语言来写。所以我解压了游戏文件,看看里面有…

开学季必备物品有什么?收下这份高三党开学必备清单!

随着新学期的脚步越来越近,高三的同学们即将迎来人生中至关重要的一年。这一年里,你们将面临无数挑战,同时也将迎来成长的机遇。为了帮助大家更好地准备,我们特别整理了这份“高三党开学必备清单”。这里不仅涵盖了高效学习所需的…

用博达网站群管理平台设计网站时如何引用组件

1 介绍 开发网站时,通常会遇到一种情况,就是在多个页面上需显示相同的内容,例如树状导航,网站导航等。这种情况下可以用博达网站群管理平台中的引用组件功能。引用组件就是与原组件相关联,修改任何一个,其…

书画家•郭晋山•系列作品•赏析之三十三•甲辰龙年第二十九版

[个人简介]: 郭晋山,男,1964年生,祖籍山西繁峙人。 经常欣赏书画名家大作,仔细研究作品之中蕴含的深情厚谊及大自然的美,与作者是如何将内心所想,淋漓尽致地表达在作品之中的! [艺术…

我知道要学GIS开发哪些内容,也已经按照框架全部学完了,为什么还是不会开发?还是没有公司要?

大家都知道GIS行业前景和待遇最好的是GIS开发,但是在学校学不到什么核心技能,所以很多同学都想自学。 动手能力强一点的小伙伴们,会自己去找一些GIS开发教程、开源资料库等等来展开自学。这些资料百度上一搜一大把,加个QQ群、微信…

iTOP-3562开发板/核心板应用于人脸跟踪、身体跟踪、视频监控、自动语音识别(ASR)、图像分类驾驶员辅助系统(ADAS)、车牌识别、物体识别等

可应用于人脸跟踪、身体跟踪、视频监控、自动语音识别(ASR)、图像分类驾驶员辅助系统(ADAS)、车牌识别、物体识别等。 iTOP-3562开发板/核心板采用瑞芯微RK3562处理器,内部集成了四核A53Mali G52架构,主频2GHZ,内置1TOPSNPU算力,R…