hadoop大数据框架思想及组成(代码片段)

Test_Box Test_Box     2023-01-09     149

关键词:

Google三大论文

第一篇论文:GFS
2003年谷歌发表了“The Google File System”(谷歌文件系统,简称GFS)论文,GFS的架构能够满足在网页爬取和索引过程中产生的超大文件的存储需求。
在2004年Nutch团队开始做GFS的开源版本实现,也就是Nutch分布式文件系统(NDFS)。

第二篇论文:MapReduce
2004年谷歌发表了“MapReduce:Simplified Data Processing on Large Cluster”(大型集群的数据简化处理)论文。
2005年,Nutch团队在Nutch上实现了MapReduce。

2006年2月,Nutch开发人员将NDFS和MapReduce移除Nutch形成一个独立的项目,命名为Hadoop。

第三篇:BigTable
2006年谷歌发表了“BigTable:A Distributed Storage System for Structured Data”(一个结构化数据的分布式存储系统)论文。
Powerset公司根据BigTable的思想,发起了HBase,即Hadoop Database。

2008年1月,Hadoop成为Apache的顶级项目。背后主要的公司为雅虎,主要用Hadoop来支撑雅虎的搜索引擎系统。

2011年 Hadoop 1.0版本发布
2013年 Hadoop 2.0版本发布
2017年 Hadoop 3.0版本发布

文献参考:Google三大论文Hadoop官网文档

Hadoop模块构成

三大版本区别

Hadoop Common:公共工具,为其他模块提供支撑。

Hadoop Distributed File System (HDFS™):提供对应用程序数据的高吞吐量访问的分布式文件系统。
Hadoop YARN:用于作业调度和集群资源管理的框架。
Hadoop MapReduce:一个基于 YARN 的系统,用于并行处理大型数据集。

组件一:HDFS

HDFS是一个主/从(Master/Slave)体系结构,由四部分组成,HDFS Client、NameNode、DataNode和Secondary NameNode。

HDFS Client

Client指的是客户端,当上传文件时,Client会将文件切分成一个一个数据块(Block),然后进行存储。

首先与NameNode交互取得元数据,然后定位到对应的DataNode,进行读写操作。

Client提供了命令来管理和访问HFDS,比如关闭或启动HDFS。

NameNode

担任Master管理者角色,管理HDFS的名称空间,各个Block的映射信息,配置副本策略以及处理客户端的读写请求。

定期更新fsimage(镜像文件)和edits(日志文件)。

因为容错安全考虑,默认的副本策略会备份3份,块副本称为Replication。

DataNode

Slave从属角色,NameNode下达命令,由DataNode执行实际操作,如执行块创建,删除和复制。

对Block存储,并进行读写操作。

Secondary NameNode

辅助NameNode,分担其工作量,紧急情况下可辅助恢复NameNode,并非NameNode的热备份,当NameNode挂掉时,不能马上替换并提供服务。

定期合并fsimage(镜像文件)和edits(日志文件),并推送给NameNode。

组件二:YARN

YARN 的全称是 Yet Another Resource Negotiator,意思是“另一种资源调度器“。Yarn从整体上还是属于主从体系。

Master(ResourceManager)/Slave(NodeManager)

应用程序与YARN交互流程:

第一步:用户向YARN中提交应用程序,其中包括ApplicationManager程序。

第二步:ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通讯,并要求它在这个Container中启动应用程序的ApplicationMaster。

第三步:ApplicationMaster首先向ResourceManager注册,完成后用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控运行状态,直到运行结束,即重复步骤4~7。

第四步:ApplicationMaster通过RPC协议向ResourceManager申请和领取资源。

第五步:一旦ApplicationManager申请到资源后,ResouceManager便与对应的NodeManager通信,要求它启动任务。

第六步:NodeManager接收到任务启动命令后,为任务设置好运行环境(可理解为Contianer)正式启动任务。

第七步:各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度。在应用程序运行过程中,用户可以随时通过RPC向ApplicationMaster查询应用程序当前的运行状态。

第八步:应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

组件三:MapReduce

Hadoop MapReduce是一个分布式运算程序的软件框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。

在运行一个mapreduce任务时,任务过程被分为两个阶段:Map阶段和Reduce阶段。

Mapper 将一个任务拆分为若干个”小任务“,可以理解为任务计算规模的拆分缩小,相互之间几乎没有依赖关系,并行运算。

Reducer 将各个map阶段的结果进行汇总。

上述两者之间转换的过程称为Shuffle,其核心机制包括:数据分区,排序,局部聚合,缓存,拉取,合并。

三大组件关联关系

大数据技术生态体系

hadoop大数据框架思想及组成(代码片段)

文章目录Google三大论文Hadoop模块构成三大版本区别组件一:HDFS组件二:YARN组件三:MapReduce三大组件关联关系大数据技术生态体系Google三大论文第一篇论文:GFS2003年谷歌发表了“TheGoogleFileSystem”(谷歌文件系... 查看详情

大数据学习之hadoop生态圈(代码片段)

文章目录前言1、什么是hadoop2、Hadoop起源3、Hadoop的四大特点4、Hadoop的三大发行版本5、Hadoop的版本迭代6、Hadoop的优点及缺点7、Hadoop组成前言上篇文章讲述了大数据的发展及历程,这篇文章就带大家进入大数据的技术应用࿰... 查看详情

大数据开发基础入门与项目实战hadoop核心及生态圈技术栈之1.hadoop简介及apachehadoop完全分布式集群搭建(代码片段)

...场景(3)大数据发展趋势及从业人员发展路线2.Hadoop简介3.Hadoop的重要组成4.ApacheHadoop完全分布式集群搭建(1)虚拟机环境准备(2)环境变量配置(3 查看详情

一文带你了解大数据技术之hadoop(代码片段)

Hadoop概述1.Hadoop是什么2.Hadoop发展历史3.Hadoop三大发行版本3.1ApacheHadoop3.2ClouderaHadoop3.3HortonworksHadoop4.Hadoop优势5.Hadoop组成5.1HDFS架构概述5.2YARN架构概述5.3MapReduce架构概述5.4HDFS、YARN、MapReduce三者关系6.大数据技术生态体系7.推荐系统... 查看详情

hadoop——hadoop优势组成大数据技术生态体系系统框架图

文章目录1.4Hadoop优势(4高)1.5Hadoop组成(面试重点)1.5.1HDFS架构概述1.5.2YARN架构概述1.5.3MapReduce架构概述1.5.4HDFS、YARN、MapReduce三者关系1.6大数据技术生态体系1.7推荐系统框架图1.4Hadoop优势(4高)1)高... 查看详情

大数据技术之hadoop(入门)概述运行环境搭建运行模式(代码片段)

文章目录1Hadoop概述1.1Hadoop是什么1.2Hadoop优势1.3Hadoop组成(面试重点)1.3.1HDFS架构概述1.3.2YARN架构概述1.3.3MapReduce架构概述1.3.4HDFS、YARN、MapReduce三者关系1.3.5大数据技术生态体系1.3.6推荐系统框架图2Hadoop运行环境搭建(... 查看详情

大数据数据倾斜问题及策略(代码片段)

文章目录前言正文Hadoop中的数据倾斜概述现象发生的原因大佬们的策略结言前言数据倾斜是大数据开发中经常会遇到的问题,而且基本是面试中的必问考点,在面试中以及实际开发中,几乎天天面临的都是这个问题。... 查看详情

大数据概念及hadoop介绍(代码片段)

大数据概念及Hadoop介绍大数据概念数据存储单位大数据定义大数据的特点(5V特征)大数据部门组织架构分布式技术负载均衡故障转移伸缩性分布式技术总结分布式和集群的区别Hadoop介绍Hadoop核心组件Hadoop发展简史Hadoop特性优点与... 查看详情

hadoop+hive+flask+echarts大数据可视化项目之系统信息数据上传及上传的底层实现(代码片段)

Hadoop+hive+flask+echarts大数据可视化项目(三)--------------上传系统信息数据到hadoop平台及hadoop上传指令的底层实现----------------    关注过Hadoop+hive+flask+echarts大数据可视化项目的读者,这里是第三部... 查看详情

大数据技术之hadoop(mapreduce)框架原理数据压缩(代码片段)

文章目录1MapReduce框架原理1.1InputFormat数据输入1.1.1切片与MapTask并行度决定机制1.1.2Job提交流程源码和切片源码详解1.1.3FileInputFormat切片机制1.1.4TextInputFormat1.1.5CombineTextInputFormat切片机制1.1.6CombineTextInputFormat案例实操1.2MapReduce工作流 查看详情

大数据—hadoop(入门篇一)(代码片段)

Hadoop(一)Hadoop是什么Hadoop组成HDFS架构概述YARN架构概述MapReduce架构概述Hadoop是什么Hadoop是一个由Apache基金会所开发的分布式系统基础架构主要解决,海量数据的存储和海量数据的分析计算问题广义上来说,Hadoop... 查看详情

hadoop&spark搭建(代码片段)

概念Hadoop,一种分析和处理大数据的软件平台。是Appach的一个用JAVA语言实现的开源软件的加框,在大量计算机组成的集群中实现了对于海量数据进行的分布式计算。Hadoop的框架核心设计是:HDFS和MapReduce.HDFS为海量数... 查看详情

大数据hadoop|mapredece|yarn(代码片段)

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFSshell操作MapReduce分而治之理解MapReduce思想分布式计算概念... 查看详情

mapreduce的思想(代码片段)

...询分析数据:一、电商大数据平台整体架构1、大数据(Hadoop、Spark、Hive)都是一种数据仓库的实现方式核心问题:数据存储、数据计算什么是数据仓库?传统的解决大数据的方式,就是一个数据库一般只做查询2、大数据平台整... 查看详情

大数据技术之hadoop(mapreduce)

文章目录MapReduce定义MapReduce核心思想WordCount案例Hadoop序列化MapReduce框架原理InputFormat数据输入MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将... 查看详情

hadoop辅助工具——flumesqoop(代码片段)

...出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架,如图所示:1.Flume日志采集框架1.1Flume介绍1.1.1概述Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以... 查看详情

大数据框架之hadoop:mapreducemapreduce框架原理——数据清洗(etl)(代码片段)

...(1)编写LogMapper类packagecom.cuiyf41.etl;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.NullWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Mapper;importjava.io.IOException;publicclassLogMapperextendsMapper<LongWritable,Text,Text,Nul... 查看详情

spring框架学习——ioc思想原型及实质(代码片段)

...IOC思想原型及实质一、我们以前写业务代码的方式1.UserDao数据访问接口packagecom.kuang.dao;importjava.util.List;publicinterfaceUserDaovoidselectAll();2.UserDaoImplDao层实现类packagecom.kuang.dao;publicclassUserDaoImplimplementsUserDaopublicvoidselectAll()System.out.println... 查看详情