数据科学通识第九讲:大数据平台

大数据平台概述

随着互联网技术的发展和智能传感设备的普及,我们来到了一个数据爆炸的时代。全球的数据以每年50%的速度在增长,也就是说两年就增长了一倍。根据互联网数据中心(idc)的预测,到2025年,全球数据总量将达到175zb,与2010年相比,数据量增长了近170倍。

数据科学通识第九讲:大数据平台

面对如此庞大且随时还在不断增长的海量数据,如何对数据进行有效的存储、管理和分析,是目前大数据所面临的关键性挑战。

数据科学通识第九讲:大数据平台

提升计算机处理能力的两种方式

针对日益增加的数据存储与分析的需要,有两种方式来提升计算机的处理能力:一种称作垂直扩展,另一种称作水平扩展。垂直扩展是指采用更快的CPU或者更大的内存、外存来提升计算机的性能。

数据科学通识第九讲:大数据平台

而水平扩展也称作分布式计算,它是指通过添加更多的计算机一起协同工作,进而提升计算机的总体能力,这样的一组计算机通常是被看作一个整体。新添加的计算机通常应该与当前的计算机具有相似或相同的配置,这样它们才能够更好地协同工作。

数据科学通识第九讲:大数据平台

从扩展方式来看,垂直扩展通过购买和使用更高配置的计算机配件或者通过更换计算机来实现,而水平扩展是指在已有的计算机群体中再添加计算机;从扩展成本来看,当垂直扩展到一定的阶段时,我们购置更好的配件或是更换更好计算机的成本就会变得十分昂贵,而水平扩展扩展到一定阶段,通过添加计算机来提升整体性能的成本相对较低。

数据科学通识第九讲:大数据平台

从性价比来看,垂直扩展还存在着其它弊端。例如,由于超级计算机中配置的顶级处理器对应了较高要求的冷却系统,整体成本是非常高的。惠普在2013年开展了一项调查研究发现,在专用计算机上租用处理器的每小时成本,大约是水平扩展系统的2~3倍。我们可以从下面的曲线上看出,在交点之后,垂直扩展与水平扩展相比,成本呈指数级增长。

数据科学通识第九讲:大数据平台

分布式计算

分布式计算,即水平扩展,是指一组相互独立的联网计算机,仅仅通过消息传递的方式来使各自的硬件和软件相互协作,进而实现一个共同的计算或处理目标。一组计算机被称作一个计算机集群,其中每一台计算机都有各自的处理器、各自的内存,都是独立可运行的计算机。

数据科学通识第九讲:大数据平台

关于分布式计算的研究,最早可以追溯到网络刚刚发明的时候。在上世纪70年代末和80年代初,分布式计算就成为了计算机科学的一个新的分支。

DEC系统研究中心在1988年启动了第一个基于因特网的分布式计算项目,这个项目通过给志愿者发送电子邮件,邀请志愿者在空闲的时间运行一些程序,然后将结果返回给DEC系统研究中心并获得新任务。简单来说就是很多志愿者利用计算机的空闲时间,来帮助DEC系统研究中心做一些任务。截至1990年,一共有100位志愿者参与了这个项目。

数据科学通识第九讲:大数据平台

到了1999年,一个真正可以正常运行工作的分布式计算项目——SETI@Home 出现了。这个项目通过分析波多黎各的Arecibo射电望远镜收集的无线电信号,来寻找外星智能生物生存的证据。这个项目于1999年5月开始启动,面向全球招募志愿者,将SETI@Home的程序运行在这些志愿者的计算机上。这个项目得到了全球许多志愿者的支持,截至2005年,已经有超过543万的志愿者参与到了这个项目中。

数据科学通识第九讲:大数据平台

分布式计算类型

早期的网格计算是分布式计算的类型之一。网格计算主要解决如何将一个需要非常巨大计算能力才能解决的问题分成许多小的部分,然后把这些部分再分配给许多计算机进行处理,最后再把这些计算结果综合起来,得到最终的处理结果。这样网上的各种各样的计算资源、存储资源和输出设备,在统一的网格资源管理系统的管理下,就可以提供给位于多个地点的不同用户来分布式地共享和使用。

数据科学通识第九讲:大数据平台

另一个分布式计算的类型是云计算。云计算实际上是通过网络构成一个“网云”,进而将巨大的数据计算处理程序分解成无数个小程序,然后通过多台服务器组成的系统来处理和分析这些小程序,得到结果再返回给用户。云计算发展到今天,实际上就是我们熟知的各类云服务

数据科学通识第九讲:大数据平台

分布式计算特点

无论是网格计算还是云计算,它都具有以下几个特点:

资源共享,用户或程序可以使用系统中任何位置的任何硬件、软件或数据开放性,分布式系统具有良好的扩展与提升能力并发性,在系统中多个活动可以同时进行良好的可扩展性,用户可以方便地在系统中添加更多的资源,系统也可以方便地支持更多的用户

数据科学通识第九讲:大数据平台

容错性也是分布式计算所独有的一个特性。对于分布式系统来说,某一台计算机或某一个局部网络发生故障,不会影响整个系统的正常运行。

数据科学通识第九讲:大数据平台

实现方式

大数据平台是具体实现分布式计算的方式之一。通过大数据平台,用户能够更方便地在计算机集群中部署和使用分布式存储与分布式计算能力。例如,Hadoop、Spark和Storm都是非常好的大数据平台。

数据科学通识第九讲:大数据平台

基于批处理的大数据平台

批处理技术适用于对时间要求不高的大规模数据处理场景。批处理技术是对一段时间内存储的数据块进行统一地集中处理。比如,某个金融公司一周内所有的交易记录可以被看作是一个数据块,某个城市一天内汇总的所有的交通数据也可以被看作是一个数据块。简单来说,数据攒了一周、一天或是固定一段时间后再来进行处理,这样的批处理框架包括,Apache Hadoop,Apache Spark等。

数据科学通识第九讲:大数据平台

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。它是用Java编写的开源的、可伸缩的、有着良好容错性的一个大数据处理框架,并且它可以部署在廉价的计算机集群中。也就是说,我们用几台普通的台式机就可以组成一个小型的Hadoop集群。

数据科学通识第九讲:大数据平台

Hadoop为在多个机器上处理数据提供了一个有效的框架,它可以在多台机器上运行,来提供数据的并行处理。如下图所示,我们可以把一台机器设置为主节点,把其它的机器设置为从节点,这样的多台计算机就构成一个小型的Hadoop集群。

数据科学通识第九讲:大数据平台

Apache Spark是由美国加州伯克利大学的AMP实验室开发的,是专为大规模数据处理而设计的快速通用的计算引擎。用户使用Spark,可以构建大型的、低延迟的数据分析应用程序。

数据科学通识第九讲:大数据平台

Spark的特点,简单来说就是如闪电般快速。这是因为它在调度上采用了先进的DAG(Directed Acyclic Graph)调度程序,查询上则利用了查询优化器和物理执行引擎等技术。

与Hadoop相比,对100TB的数据进行排序,Hadoop需要2100台机器运行72分钟,而Spark使用207台机器,只需运行23分钟就做完了。再看逻辑回归算法的表现,在Hadoop上,运行需要110秒,而在Spark上只需要0.9秒。由这些数据,我们就可以更直观地看出Spark快如闪电的特点。

数据科学通识第九讲:大数据平台

基于流处理的大数据平台

流处理技术指能够在每条新数据到达时,实时地对数据进行处理。与批处理技术不同,在流处理的过程中到达的每一条新数据都不会存储,而是直接进行处理并输出结果,因此这样的技术特别适用于对实时数据处理要求很高的大数据应用场景。常见的流处理工具包括Apache Storm框架,Spark Streaming组件,Apache Flink框架等。

数据科学通识第九讲:大数据平台

流处理技术的其中一种被称为微批量处理技术。对于需要支持窗口操作的流处理技术框架,我们也可以存储很短时间内的数据,作为批量数据(微批量数据)来进行处理,我们也可以把这里的“微批量”理解为一个很小的数据块。与流处理技术相比,微批量处理技术会带来一定时间的延迟。

数据科学通识第九讲:大数据平台

将流处理技术与批处理技术二者相比较:在数据量上,流处理技术处理的是最近记录的数据,而批处理处理的是所有或大部分的数据;在处理延迟上,批处理通常有着以分钟或者小时为单位的延迟,而流处理技术的延迟通常是以毫秒或者秒为单位的;二者的常用处理框架也不相同。

数据科学通识第九讲:大数据平台

以上就是数据科学通识第九讲:大数据平台的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/127106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月27日 15:38:55
下一篇 2025年11月27日 15:49:16

相关推荐

  • SASS 中的 Mixins

    mixin 是 css 预处理器提供的工具,虽然它们不是可以被理解的函数,但它们的主要用途是重用代码。 不止一次,我们需要创建多个类来执行相同的操作,但更改单个值,例如字体大小的多个类。 .fs-10 { font-size: 10px;}.fs-20 { font-size: 20px;}.fs-…

    2025年12月24日
    000
  • React 或 Vite 是否会自动加载 CSS?

    React 或 Vite 是否自动加载 CSS? 在 React 中,如果未显式导入 CSS,而页面却出现了 CSS 效果,这可能是以下原因造成的: 你使用的第三方组件库,例如 AntD,包含了自己的 CSS 样式。这些组件库在使用时会自动加载其 CSS 样式,无需显式导入。在你的代码示例中,cla…

    2025年12月24日
    000
  • React 和 Vite 如何处理 CSS 加载?

    React 或 Vite 是否会自动加载 CSS? 在 React 中,默认情况下,使用 CSS 模块化时,不会自动加载 CSS 文件。需要手动导入或使用 CSS-in-JS 等技术才能应用样式。然而,如果使用了第三方组件库,例如 Ant Design,其中包含 CSS 样式,则这些样式可能会自动加…

    2025年12月24日
    000
  • ElementUI el-table 子节点选中后为什么没有打勾?

    elementui el-table子节点选中后没有打勾? 当您在elementui的el-table中选择子节点时,但没有出现打勾效果,可能是以下原因造成的: 在 element-ui 版本 2.15.7 中存在这个问题,升级到最新版本 2.15.13 即可解决。 除此之外,请确保您遵循了以下步骤…

    2025年12月24日
    200
  • 如何使用 Ant Design 实现自定义的 UI 设计?

    如何使用 Ant Design 呈现特定的 UI 设计? 一位开发者提出: 我希望使用 Ant Design 实现如下图所示的 UI。作为一个前端新手,我不知从何下手。我尝试使用 a-statistic,但没有任何效果。 为此,提出了一种解决方案: 可以使用一个图表库,例如 echarts.apac…

    2025年12月24日
    000
  • 您不需要 CSS 预处理器

    原生 css 在最近几个月/几年里取得了长足的进步。在这篇文章中,我将回顾人们使用 sass、less 和 stylus 等 css 预处理器的主要原因,并向您展示如何使用原生 css 完成这些相同的事情。 分隔文件 分离文件是人们使用预处理器的主要原因之一。尽管您已经能够将另一个文件导入到 css…

    2025年12月24日
    000
  • Antdv 如何实现类似 Echarts 图表的效果?

    如何使用 antdv 实现图示效果? 一位前端新手咨询如何使用 antdv 实现如图所示的图示: antdv 怎么实现如图所示?前端小白不知道怎么下手,尝试用了 a-statistic,但没有任何东西出来,也不知道为什么。 针对此问题,回答者提供了解决方案: 可以使用图表库 echarts 实现类似…

    2025年12月24日
    300
  • 如何使用 antdv 创建图表?

    使用 antdv 绘制如所示图表的解决方案 一位初学前端开发的开发者遇到了困难,试图使用 antdv 创建一个特定图表,却遇到了障碍。 问题: 如何使用 antdv 实现如图所示的图表?尝试了 a-statistic 组件,但没有任何效果。 解答: 虽然 a-statistic 组件不能用于创建此类…

    2025年12月24日
    200
  • 如何在 Ant Design Vue 中使用 ECharts 创建一个类似于给定图像的圆形图表?

    如何在 ant design vue 中实现圆形图表? 问题中想要实现类似于给定图像的圆形图表。这位新手尝试了 a-statistic 组件但没有任何效果。 为了实现这样的图表,可以使用 [apache echarts](https://echarts.apache.org/) 库或其他第三方图表库…

    好文分享 2025年12月24日
    100
  • CSS 中如何正确使用 box-shadow 设置透明度阴影?

    css 中覆盖默认 box-shadow 样式时的报错问题 在尝试修改导航栏阴影时遇到报错,分析发现是 box-shadow 样式引起的问题。 问题原因 使用 !important 仍无法覆盖默认样式的原因在于,你使用了 rgb() 而不是 rgba(),这会导致语法错误。 立即学习“前端免费学习笔…

    2025年12月24日
    300
  • 为何scss中嵌套使用/*rtl:ignore*/无法被postcss-rtl插件识别?

    postcss-rtl插件为何不支持在scss中嵌套使用/*rtl:ignore*/ 在使用postcss-rtl插件时,如果希望对某个样式不进行转换,可以使用/*rtl:ignore*/在选择器前面进行声明。然而,当样式文件为scss格式时,该声明可能会失效,而写在css文件中则有效。 原因 po…

    2025年12月24日
    000
  • Sass 中使用 rgba(var –color) 时的透明度问题如何解决?

    rgba(var –color)在 Sass 中无效的解决方法 在 Sass 中使用 rgba(var –color) 时遇到透明问题,可能是因为以下原因: 编译后的 CSS 代码 rgba($themeColor, 0.8) 在编译后会变为 rgba(var(–…

    2025年12月24日
    000
  • ## PostCSS vs. Sass/Less/Stylus:如何选择合适的 CSS 代码编译工具?

    PostCSS 与 Sass/Less/Stylus:CSS 代码编译转换中的异同 在 CSS 代码的编译转换领域,PostCSS 与 Sass/Less/Stylus 扮演着重要的角色,但它们的作用却存在细微差异。 区别 PostCSS 主要是一种 CSS 后处理器,它在 CSS 代码编译后进行处…

    2025年12月24日
    000
  • echarts地图中点击图例后颜色变化的原因和修改方法是什么?

    图例颜色变化解析:echarts地图的可视化配置 在使用echarts地图时,点击图例会触发地图颜色的改变。然而,选项中并没有明确的配置项来指定此颜色。那么,这个颜色是如何产生的,又如何对其进行修改呢? 颜色来源:可视化映射 echarts中有一个名为可视化映射(visualmap)的对象,它负责将…

    2025年12月24日
    000
  • SCSS 简介:增强您的 CSS 工作流程

    在 web 开发中,当项目变得越来越复杂时,编写 css 可能会变得重复且具有挑战性。这就是 scss (sassy css) 的用武之地,它是一个强大的 css 预处理器。scss 带来了变量、嵌套、混合等功能,使开发人员能够编写更干净、更易于维护的代码。在这篇文章中,我们将深入探讨 scss 是…

    2025年12月24日
    000
  • 在 Sass 中使用 Mixin

    如果您正在深入研究前端开发世界,那么您很可能遇到过sass(语法很棒的样式表)。 sass 是一个强大的 css 预处理器,它通过提供变量、嵌套、函数和 mixins 等功能来增强您的 css 工作流程。在这些功能中,mixins 作为游戏规则改变者脱颖而出,允许您有效地重用代码并保持样式表的一致性…

    2025年12月24日
    200
  • SCSS:创建模块化 CSS

    介绍 近年来,css 预处理器的使用在 web 开发人员中显着增加。 scss (sassy css) 就是这样一种预处理器,它允许开发人员编写模块化且可维护的 css 代码。 scss 是 css 的扩展,添加了更多特性和功能,使其成为设计网站样式的强大工具。在本文中,我们将深入探讨使用 scss…

    2025年12月24日
    000
  • SCSS – 增强您的 CSS 工作流程

    在本文中,我们将探索 scss (sassy css),这是一个 css 预处理器,它通过允许变量、嵌套规则、mixins、函数等来扩展 css 的功能。 scss 使 css 的编写和维护变得更加容易,尤其是对于大型项目。 1.什么是scss? scss 是 sass(syntropically …

    2025年12月24日
    000
  • 如何正确使用 CSS:简洁高效样式的最佳实践

    层叠样式表 (css) 是 web 开发中的一项基本技术,允许设计人员和开发人员创建具有视觉吸引力和响应灵敏的网站。然而,如果没有正确使用,css 很快就会变得笨拙且难以维护。在本文中,我们将探索有效使用 css 的最佳实践,确保您的样式表保持干净、高效和可扩展。 什么是css? css(层叠样式表…

    2025年12月24日
    000
  • css网页设计模板怎么用

    通过以下步骤使用 CSS 网页设计模板:选择模板并下载到本地计算机。了解模板结构,包括 index.html(内容)和 style.css(样式)。编辑 index.html 中的内容,替换占位符。在 style.css 中自定义样式,修改字体、颜色和布局。添加自定义功能,如 JavaScript …

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信