hadoop大数据原理-架构演进

小爱玄策 小爱玄策     2023-04-03     228

关键词:

文章目录

1. 软件的发展

  传统的软件开发已经经历了非常久的时间,从C/S到B/S架构的演进是过去20年以来感受比较强的一个变化。逐渐开始“轻”客户端,“重”服务端,使得软件服务的升级和维护变得越来越便利,当然这样的便利性也带来了一些问题,那就是当客户端访问数据量大的时候,服务端可能无法承受而崩溃,导致服务无法使用,数据库异常等问题。

  当然,随着互联网的发展,B/S架构能够面向未知的用户群体,实现用户量的疯狂扩张,用户只需要操作系统和浏览器就能够进行服务访问。

  近10年还有一个明显的改变就是,大家开始从PC向手机端迁移,根据摩尔定律,手机能够进行越来越强大的计算,现在几乎人手1部手机,我们进入了移动互联网时代。

  社会发展越来越科技化,视频监控等信息采集这些基础设施越来越完善,运营商/软件企业能够获取到越来越多的数据(不讨论脱敏与否,也不讨论大数据分析和画像能够对脱敏数据的某些数据进行恢复和精确搜索到具体的人或事物),数据开始呈指数增长。

  数据越来越多,对我们分析数据的要求也越来越高了,以前我们传统的软件,都是主要考虑进行纵向提高服务器的配置,商业级的服务器不够用,就升级小型机,小型机不够用,就升级中型机,还不够,升级大型机,升级超级计算机。虽然根据摩尔定律,硬件的处理能力每18个月翻一倍,总能造出更强大的计算机。但是这些年,软件的增长速度目前比硬件更快,大多数软件工程师接到需求后,并没有那么多合适的硬件来支撑自己的服务要求,所以这种思路并不适合互联网的技术要求。Google、Facebook、阿里巴巴这些网站每天需要处理数十亿次的用户请求、产生上百 PB 的数据,不可能有一台计算机能够支撑起这么大的计算需求。

  互联网公司开始换一种思路来解决问题,从过去的纵向提高计算机处理能力,变为横向扩展计算机,目前的互联网巨头们,都经历了这样的成长过程。

2. 大数据技术的出现

  两台计算机要想合作构成一个系统,必须重新进行架构设计。就是现在互联网企业广泛使用的:负载均衡、分布式缓存、分布式数据库、分布式服务等各种分布式系统。

  当这些分布式技术满足互联网的日常业务需求时,对离线数据和存量数据的处理就被提了出来,当时这些分布式技术并不能满足要求,于是大数据技术就出现了。

  大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。

3. 移动计算

  在大数据行业,有一句耳熟能详的话,移动计算比移动数据更划算

  下面介绍移动计算程序到数据所在位置进行计算是如何实现的:

  1. 将待处理的大规模数据存储在服务器集群的所有服务器上,主要使用 HDFS 分布式文件存储系统,将文件分成很多块(Block),以块为单位存储在集群的服务器上;

  2. 大数据引擎根据集群里不同服务器的计算能力,在每台服务器上启动若干分布式任务执行进程,这些进程会等待给它们分配执行任务;

  3. 使用大数据计算框架支持的编程模型进行编程,例如 Hadoop 的 MapReduce 编程模型,或者 Spark 的 RDD 编程模型;

  4. 应用程序编写好以后,进行打包,MapReduce 和 Spark 都是在 JVM 环境中运行,所以打包出来的是一个 Java 的 JAR 包;

  5. 用 Hadoop 或者 Spark 的启动命令执行这个应用程序的 JAR 包,首先执行引擎会解析程序要处理的数据输入路径,根据输入数据量的大小,将数据分成若干片(Split),每一个数据片都分配给一个任务执行进程去处理;

  6. 任务执行进程收到分配的任务后,检查自己是否有任务对应的程序包,如果没有就去下载程序包,下载以后通过反射的方式加载程序。到这里,最重要的一步,也就是移动计算就完成了。

  7. 加载程序后,任务执行进程根据分配的数据片的文件地址和数据在文件内的偏移量读取数据,并把数据输入给应用程序相应的方法去执行,从而实现在分布式服务器集群中移动计算程序,对大规模数据进行并行处理的计算目标。

4. 编程框架Hadoop

  大数据技术将移动计算这一编程技巧上升到编程模型的高度,并开发了相应的编程框架,使开发人员只需关注大数据的算法实现,不必关注如何将这个算法在分布式的环境中执行,极大地简化了大数据的开发难度,统一了大数据的开发方式,使大数据的开发门槛直线下降,这也让更多的大数据工程师将精力集中到业务和分析中去,全力去挖掘数据的价值。

  Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。它由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

  Hadoop实现了一个分布式文件系统,其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问文件系统中的数据。

  Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

  Hadoop 依赖于社区服务,生态很好,任何人都可以使用。

  Hadoop主要有以下几个优点:

  1. 高可靠性:按位存储和处理数据能力的高可靠性;

  2. 高扩展性:在可用的计算机集群间分配数据并完成计算任务的,这些集群可方便灵活的方式扩展到数以千计的节点;

  3. 高效性:能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快;

  4. 高容错性:自动保存数据的多个副本,并且能够自动将失败的任务重新分配;

  5. 低成本:集群允许通过部署普通廉价的机器组成集群来处理大数据,以至于成本很低。看重的是集群整体能力;

  Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用C++语言编写。

数据湖04:数据湖技术架构演进

...的大数据组件来搭建大数据平台。大数据平台经历过“以Hadoop为代表的离线数据平台”、“Lambda架构平台”、“Kappa架构平台”三个阶段。        可以把数据湖认为是最新一代大数据技术平台, 查看详情

大数据技术原理与应用:第二讲大数据处理架构hadoop

2.1Hadoop概论创始人:DougCutting 1.简介: 开源免费;操作简单,极大降低使用的复杂性;Hadoop是Java开发的;在Hadoop上开发应用支持多种编程语言、不限于Java; Hadoop两大核心:HDFS+MapReduceHDFS:海量数据存储MapReduce:海量数据... 查看详情

大数据平台,hadoop集群架构,概述及原理

...数据平台架构的特点5,大数据平台架构原理二,Hadoop集群概述1,HDFS2,MapReduce3,YARN三,HadoopHA集群原理1,HDFSHA实现原理2,主备切换3,Zookeeper的功能原理4,JournalNode服务原理Hellow大家好,今... 查看详情

oppo大数据计算集群资源调度架构演进

...Yarn2.1 Yarn的总体结构从大数据的整个生态体系来说,hadoop处于离线计算的核心位置。为了实现大数据的存储和计算,hadoop1.0提供了hdfs分布式存储以及mapreduce计算框架,虽然整体具备了大数据处理的雏形,但还不... 查看详情

高并发大访问量架构设计演进之路归纳总结

...02(下):分布式缓存第03:分布式消息队列第04:分布式数据存储第05:分布式服务框架第06:高性能系统架构第07:高可用系统架构第08:系统的安全架构第09:架构实战案例分析第10:如何成为技术专家系统的垂直伸缩,水平伸... 查看详情

大数据学习啥

...4.能够基于JDK8开发5.熟练使用MySQL,掌握SQL语法阶段二:Hadoop生态体系架构1.Linux系统的安装和操作2.熟练掌握Shell脚本语法3.Idea、Maven等开发工具的使用4.Hadoop组成、安装、架构和源码深度解析,以及API的熟练使用5.Hive的安装部署... 查看详情

hadoop原理简介基本构建(代码片段)

目录一、Hadoop简介1.1什么是Hadoop1.2Hadoop优势1.3Hadoop的主要模块1.4架构描述       1.4.1HDFS架构       1.4.2YARN架构        1.4.3MapReduce架构        1.4.4 三者关系 1.5大数据的生态模型二、Hadoop的安装和调试2.1安装2.2Hado... 查看详情

各大互联网公司架构演进之路汇总

...付宝的高可用与容灾架构演进余额宝技术架构及演进淘宝数据魔方技术架构解析淘宝技术发展历程和架构经验分享淘宝架构演进背后——零售业务中台架构设计探讨及实践阿里游戏高可用架构设计实践阿里B2B技术架构演进详解秒... 查看详情

oppo大数据离线计算平台架构演进

1前言OPPO的大数据离线计算发展,经历了哪些阶段?在生产中遇到哪些经典的大数据问题?我们是怎么解决的,从中有哪些架构上的升级演进?未来的OPPO离线平台有哪些方向规划?今天会给大家一一揭秘。... 查看详情

大数据olap架构及技术实现的演进简介

文章目录一、架构分类二、技术演进1、传统关系型数据库时期2、大数据技术时期你的点赞与评论是我最大的创作动力!一、架构分类OLAP名为联机分析,又称多维分析,什么是多维分析,指的是多种不同的维度审... 查看详情

深入学习hive应用场景及架构原理

...现在进入了大数据时代,大数据是现在互联网的趋势,而hadoop就是大数据时代里的核心技术,但是hadoop的mapreduce操作专业性太强,所以facebook在这些基础上开发了hive框架,毕竟世界上会sql的人比会java的人多的 查看详情

chapter7hadoop架构架构演进与生态组件

7.1Hadoop的优化与发展7.1.1Hadoop的局限和不足Hadoop在刚刚推出时,存在很多不足。存在的不足如下:抽象层次低,需人工编码。很多工作没有办法从高层撰写逻辑代码,必须从最底层进行逻辑编码。即使是很简单的... 查看详情

hadoop大数据平台架构之dkhadoop详解

hadoop大数据平台架构之DKhadoop详解大数据的时代已经来了,信息的爆炸式增长使得越来越多的行业面临这大量数据需要存储和分析的挑战。Hadoop作为一个开源的分布式并行处理平台,以其高拓展、高效率、高可靠等优点越来越受... 查看详情

实时数仓演进&方案对比选型落地(代码片段)

实时数仓演进&方案对比选型落地大数据小江Akin 大数据阶梯之路 2022-07-0423:14 发表于广东收录于合集#实时数仓2个#大数据36个#数据仓库6个#数据湖2个实时数仓好文分享,文章来源:公众号:五分钟学大数据实时数仓... 查看详情

oppo大数据计算集群资源调度架构演进

1背景随着公司这两年业务的迅速扩增,业务数据量和数据处理需求也是呈几何式增长,这对底层的存储和计算等基础设施建设提出了较高的要求。本文围绕计算集群资源使用和资源调度展开,将带大家了解集群资源... 查看详情

大数据技术hadoop+sparkspark架构原理优势生态系统等讲解(图文解释)

...金会最重要的三大分布式计算系统开源项目之一(即Hadoop、Spark、Storm)二、Spark的特点Spark计算框架在处理数据时,所有的中间数据都保存在内存中,从而减少磁盘读写操作,提高框架计算效率。同时Spark还兼... 查看详情

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

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

spark基本架构及原理

...校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(... 查看详情