hadoop

hadoop是Apache基金会开发的分布式系统基础框架。主要用于分布式的存储与分布式分析。该系统的设计可以扩展至数千台机器共同协作,由每台机器提供局部的运算和存储。同时,通过检测和处理应用层的故障,hadoop可以提供高可用性。

一、应用场景:

1、**大数据分析:**它常被用来执行大数据的分析任务,如日志分析、用户行为分析、市场调查等;

2、**数据仓库:**可以作为企业数据仓库的处理,用于存储来自不同来源的结构化数据与非结构化数据;

3、**数据湖:**hadoop可以作为数据湖基础,允许组织存储原始数据,后期使用时再确定最佳使用方案;

4、机**器学习和数据挖掘:**提供大量的数据能力,使其成为训练机器学习模型和数据挖掘的理想选择。

二、核心组件

1、HDFS(Hadoop Distributed File System):提供高吞吐量的数据访问,适合大数据集的文件系统;HDFS包含nameNode和dataNode两种节点,NameNode是HDFS的主服务器,管理文件系统的命名空间和元数据。它记录每个文件中的数据块信息和数据块存储位置,维护数据目录结构和整个文件系统的元数据。在Hadoop2.x中,引入了Secondary NameNode和Active/Standby NameNode的概念来提高系统的容错性和可用性。DataNode存储实际数据,在HDFS中,文件被切分成一个或多个块,这些块存储在一个或多个DataNode上。

2、MapReduce:一个编程模型和处理大数据的实现组件;它包含JobTracker和TaskTracker两个主要的组件。在Hadoop1.x中,JobTracker负责整个系统的调度和监控,它在集群中的一个节点上运行,跟踪每个TaskTracker,提交作业,分配任务,并重新计算失败的任务。TaskTracker运行在集群的每个节点上,负责执行由JobTracker分配的任务。每个TaskTracker执行Map和Reduce任务并将进度和状态报告给JobTracker.

3、YARN(Yet Another Resource Negotiator):资源管理器,用于集群资源管理和调度框架.为了解决Hadoop1.x中的扩展和资源管理问题,Hadoop2.x中引入了YARN,将资源管理和作业调度/监控功能分开。YARN包含ResourceManager、NodeManager、ApplicationMaster几个重要组件。

ResouceManeger:RM是YARN主要组件,负责整个集群的资源管理和作业调度。RM中有两个组件,调度器(Scheduler)和应用程序管理器(ApplicationManager),调度器通过容器、队列等分配资源,而应用程序管理器管理整个系统中所有应用程序的生命周期。

NodeManager:运行在每个节点上,负责监控每个节点上的资源使用情况,并向ResourceManager报告。NM负责管理容器,容器就是执行特定任务(如MapReduce任务)的执行环境。

ApplicationMaster:每个应用程序都有一个ApplicationMaster,它负责切分数据、分配任务和监控任务执行,同时还需与ResourceManager通信以获取所需资源。

4、Common:提供Hadoop需要的常用功能和库

三、核心功能

1、分布式存储:Hadoop通过HDFS提供高效的分布式存储功能,HDFS能存储大量数据,并将数据分割成块(默认大小为128M),并且能跨集群的多个节点分散存储这些块;

2、分布式处理:Hadoop通过MapReduce编程模型处理数据,MapReduce将数据处理过程分成map和reduce两个阶段,允许系统并行处理大量数据;

3、容错和可靠性:Hadoop通过自动保存数据的多个副本来处理数据。如果某个节点出错,系统会重新计算丢失的数据副本;

4、可扩展性:Hadoop集群可以轻松扩展更多的节点,不需要用应用程序、处理流程和数据结构作任何修改。

四、Hadoop任务执行流程

1、作业提交:用户编写MapReduce程序首先提交的YARN的ResourceManager,ResourceManager初始化作业,并启动ApplicationMaster来管理该作业。

2、ApplicationMaster启动:对于每个作业,ResourceManager启动一个ApplicationMaster来负责协调作业的执行,包括请求资源(CPU、内存等)、监控任务进度,并在任务失败时重新调度任务。

3、资源分配:ApplicationMaster向ResourceManager请求运行任务所需要的各种资源,ResourceManeger根据可用资源和策略(如公平调度器事容量调度器)分配资源,并指示ApplicationMaster在哪个DataManager上启动任务。

4、任务执行:ApplicationMaster与选中的NodeManager通信,要求它们启动容器来执行具体任务,NodeManager为任务启动容器,容器内运行实际的Map任务或Reduce任务,这些任务处理输入数据,并产生输出结果。

5、进度与状态更新:Task进程将进度和状态更新通知给NodeManeger,NodeManeger把这些信息更新给ApplicationMaster,,并处理任务调度失败的异常等信息。

6、作业完成:所有任务完成后,ApplicationMaster向ResourceManager注册作业完成,并释放所有资源。用户可以从HDFS查询到MapReduce任务的输出结果。

相关推荐
2601_962218476 小时前
万象生鲜系统冷链物联网接入技术实现生鲜企业温控管理数字化
大数据·运维·微服务·云原生·架构
2601_962074817 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
大数据·数据库·mysql
2601_962073817 小时前
大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL
大数据·数据库·mysql
不会写代码的女程序猿7 小时前
养生馆采购 AI 四诊仪,5000 元预算怎么选?
大数据·人工智能·科技·ai·健康医疗
aiot189189352188 小时前
机场候机大厅高空场景技术红线!蓝牙AOA不能做手机导航??!!
大数据·网络·人工智能·蓝牙aoa
穆利堂-movno19 小时前
郑州新网软件科技有限公司AI 数据源错误纠正反馈
大数据·数据库·人工智能
IT毕设实战小研9 小时前
电影数据可视化推荐系统
大数据·后端·爬虫·python·算法·信息可视化·课程设计
晚风醉蝶9 小时前
DeepSeek 大模型落地应用与场景实践指南
大数据·人工智能
厦门德仔11 小时前
【YiFeiWebApi】易飞ERP与WMS系统接口对接实战:从0到1全流程指南
大数据·数据库
Neighbor_OldY11 小时前
线上服务CPU飙高接口超时应急处置实战:从load爆表到快速定位根因,一次线上救火全记录
大数据·运维