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

大数据平台概述

随着互联网技术的发展和智能传感设备的普及,我们来到了一个数据爆炸的时代。全球的数据以每年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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
百度地图AR导航怎么用_百度地图APP AR导航使用技巧
上一篇 2025年11月27日 15:39:04
Java设计模式之策略模式的深入探究
下一篇 2025年11月27日 15:39:06

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    900
  • 修复Django电商项目中AJAX过滤产品列表图片不显示问题

    在Django电商项目中,当使用AJAX动态加载过滤后的产品列表时,常遇到图片无法正常显示的问题。这通常是由于前端模板中图片加载方式(如data-setbg属性结合JavaScript库)与AJAX动态内容更新机制不兼容所致。解决方案是直接在AJAX返回的HTML中使用标准的标签来渲染图片,确保浏览…

    2026年5月10日
    000
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    000
  • Debian syslog性能优化技巧有哪些

    提升Debian系统syslog (通常基于rsyslog)性能,关键在于精简配置和高效处理日志。以下策略能有效优化日志管理,提升系统整体性能: 精简配置,高效加载: 在rsyslog配置文件中,仅加载必要的输入、输出和解析模块。 使用全局指令设置日志级别和格式,避免不必要的处理。 自定义模板: 创…

    2026年5月10日
    000
  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • 如何让动态追加元素的类事件生效?

    如何在追加元素后使其绑定类事件生效 在页面中引入三方 JavaScript 类并通过添加相应 class 来调用事件方法是一种常见的做法。然而,如果通过 JavaScript 追加标签元素,即使添加了对应的 class,事件也可能无法生效。 为了解决这个问题,可以尝试以下步骤: 检查追加的标签是否为…

    2026年5月10日
    000
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    000
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 松下案例入选《2025企业社会责任竞争力指数报告》

    松下案例入选《2025企业社会责任竞争力指数报告》松下案例入选《2025企业社会责任竞争力指数报告》松下案例入选《2025企业社会责任竞争力指数报告》松下案例入选《2025企业社会责任竞争力指数报告》

    11月14日,中国新闻社《中国新闻周刊》在北京成功举办了第二十一届企业社会责任系列活动·2025责任之星特别节目。活动以“致明天:焕新责任竞争力”为主题,汇聚了来自政府、企业及学术界的多位代表,共同探讨新时代下企业如何通过责任创新打造核心竞争力。松下电器(中国)有限公司总裁赵炳弟作为企业界代表受邀出…

    2026年5月10日 用户投稿
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    000
  • 前端缓存策略与JavaScript存储管理

    根据数据特性选择合适的存储方式并制定清晰的读写与清理逻辑,能显著提升前端性能;合理运用Cookie、localStorage、sessionStorage、IndexedDB及Cache API,结合缓存策略与定期清理机制,可在保证用户体验的同时避免安全与性能隐患。 前端缓存和JavaScript存…

    2026年5月10日
    100
  • 网站标题关键词更新后,搜索引擎为何仍显示旧标题?

    网站标题更新后,搜索引擎为何显示旧标题? 网站SEO优化中,站长常修改网站标题关键词,期望搜索结果显示自定义标题。然而,即使更新标签、meta keywords、meta description和结构化数据中的name属性后,搜索结果仍显示旧标题,这令人费解。本文将对此进行解释。 问题:站长修改了网…

    2026年5月10日
    100
  • HTML5网页如何实现手势操作 HTML5网页移动端交互的处理技巧

    首先利用原生touch事件实现滑动判断,再通过preventDefault解决滚动冲突,接着引入Hammer.js处理复杂手势,最后通过优化点击区域、避免事件冲突和增加视觉反馈提升体验。 在移动端浏览器中,HTML5网页可以通过触摸事件实现手势操作,提升用户体验。虽然原生JavaScript提供了基…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • python中zip函数详解 python多序列压缩zip函数应用场景

    zip函数的应用场景包括:1) 同时遍历多个序列,2) 合并多个列表的数据,3) 数据分析和科学计算中的元素运算,4) 处理csv文件,5) 性能优化。zip函数是一个强大的工具,能够简化代码并提高处理多个序列时的效率。 在Python中,zip函数是一个非常有用的工具,它能够将多个可迭代对象打包成…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信