从 0 开始学大数据
李智慧
同程艺龙交通首席架构师,前 Intel 大数据架构师,《大型网站技术架构》作者
71151 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
智慧写给你的寄语 (1讲)
从 0 开始学大数据
15
15
1.0x
00:00/00:00
登录|注册

04 | 移动计算比移动数据更划算

用户请求交给任何一个服务实例计算,处理的结果都是一样的
不同服务实例之间不共享状态
尽量使用无状态的服务
大数据技术将移动计算上升到编程模型的高度
将程序分发到数据所在的地方进行计算
使用分布式计算处理大规模数据
采用分布式集群的解决方案
传统的计算处理模型不能适用于大数据时代的计算要求
需要计算处理的数据量急速膨胀
传统的软件计算处理模型是“输入 -> 计算 -> 输出”模型
大数据技术更为关注数据,架构设计围绕数据展开
互联网应用系统架构中的重要架构原则
移动计算比移动数据更划算
解决PB级数据进行计算的问题
互联网大数据时代的计算要求
大数据技术和传统的软件开发技术在架构思路上有很大不同
为什么说移动计算比移动数据更划算?

该思维导图由 AI 生成,仅供参考

大数据技术和传统的软件开发技术在架构思路上有很大不同,大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。
传统的软件计算处理模型,都是“输入 -> 计算 -> 输出”模型。也就是说,一个程序给它传入一些数据也好,它自己从某个地方读取一些数据也好,总是先有一些输入数据,然后对这些数据进行计算处理,最后得到输出结果。
但是在互联网大数据时代,需要计算处理的数据量急速膨胀。一来是因为互联网用户数远远超过传统企业的用户,相应产生了更大量的数据;二来很多以往被忽视的数据重新被发掘利用,比如用户在一个页面的停留时长、鼠标在屏幕移动的轨迹都会被记录下来进行分析。在稍微大一点的互联网企业,需要计算处理的数据量常常以 PB 计(1015 Byte)。
正因为如此,传统的计算处理模型不能适用于大数据时代的计算要求。你能想象一个程序读取 PB 级的数据进行计算是怎样一个场景吗?一个程序所能调度的网络带宽(通常数百 MB)、内存容量(通常几十 GB )、磁盘大小(通常数 TB)、CPU 运算速度是不可能满足这种计算要求的。
那么如何解决 PB 级数据进行计算的问题呢?
这个问题的解决思路其实跟大型网站的分布式架构思路是一样的,采用分布式集群的解决方案,用数千台甚至上万台计算机构建一个大数据计算处理集群,利用更多的网络带宽、内存空间、磁盘容量、CPU 核心数去进行计算处理。关于分布式架构,你可以参考我写的《大型网站技术架构:核心原理与案例分析》这本书,但是大数据计算处理的场景跟网站的实时请求处理场景又有很大不同。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

移动计算比移动数据更划算,这是大数据技术与传统软件开发技术在架构思路上的重大不同。传统的软件计算处理模型是“输入 -> 计算 -> 输出”,但在互联网大数据时代,传统计算模型无法满足大规模数据处理需求。为解决PB级数据计算问题,技术专家们设计了一套相应的技术架构方案,即移动计算程序到数据所在位置进行计算。这种技术方案将程序分发到数据所在的地方进行计算,实现了移动计算比移动数据更划算。文章详细介绍了大数据计算实现过程,并强调了大数据技术的重要性和普及程度。文章还提出了一个思考题,探讨了互联网应用系统架构中无状态服务的设计原则及好处。整体而言,本文深入浅出地介绍了大数据技术的特点和应用,对读者快速了解大数据计算的概念和重要性具有一定的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(93)

  • 最新
  • 精选
  • 面试官问
    无状态服务的主要好处是服务间无需同步状态或者数据,便于扩缩容。

    作者回复: 是的

    2018-11-06
    152
  • 不求
    针对于思考题的一些思考: 分布式架构的原则:尽量使用无状态的服务,不同服务实例之间不共享状态,也就是不持有数据。。。 这个问题我是这样考虑的,什么是无状态的服务?为什么需要它?它是在怎样的情况下出现的? 这个应该是分布式架构的设计者在考虑架构的可扩展行(伸缩性)的时候设计出来的这样一个针对于服务的一个要求或者是标准(也就是原则); 所以我想说,这个问题太“应试”了,就像您的课程一样,之前都是顺着从无到有的一个顺序给我们讲解,我听的很爽,真的是爽,突然来了一个这样的反逻辑的“应试”问题,我有点懵。 再多说一点,好像国内的教育太“应试”的原因也有是过于拆解概念,然后对概念进行逻辑行考核验证;所以我们上学时都挺会考试的,都在应付这个逻辑,而忽略了真正的学识,一个从无到有的东西,它是如何被创造出来的,它为什么会被创造出来,它还有没有改善的余地。也是“应试”环境下的学生创造力越来越差的原因吧,更多的花费在了逻辑推理上。 老师,若有冒昧,还请批评指正,感谢🙏

    作者回复: 思考深入👍🏻

    2018-11-07
    3
    56
  • 陈柏林
    每台服务器原本都不带有程序,但是调度服务器为处理服务器分发任务之后,处理服务器就执行任务并检查是否有该程序,没有就下载,下载之后从指定路径中读取数据进行处理,处理好之后统一存放处理结果,大概的执行流程是这样吗?

    作者回复: 是的

    2018-11-07
    22
  • cellardoor
    无状态的好处: 1,伸缩性更好,应用之间无需同步状态,方便伸缩。 2,幂等,应用服务器之间都是对等的,请求落在哪里都可以得到相同的响应。 3,可用性更好,有状态,意味着有数据丢失的可能,在某些情况下,状态不一致容易造成可怕的结果。 4,性能好,应用服务器之间无需同步,减少对资源的浪费;

    作者回复: 赞 关于2幂等,应用服务器无状态,但是应用服务器依赖的数据库或者其他服务器可能有状态,无状态的应用服务器也无法幂等了。需要看情况。

    2018-11-06
    9
  • 五岳寻仙
    刚接触这个领域,认知还比较浅显。我觉得成千上万的机器之间通信会很耗费时间,无状态能保证减少机器之间的耦合,提高效率。

    作者回复: 即使有状态的服务器,也尽量做到share nothing,尽少通信,不然n对n通信,通信量巨大

    2018-11-06
    9
  • 小橘子🍊
    小白问?老师能不能举一个例子说明一下什么是有状态什么是无状态?

    作者回复: 现在流行的微服务架构,微服务通常都是无状态,状态可以理解成数据。

    2018-12-09
    6
  • 没有枫树的枫林
    有点抽象,能举例子说明一下什么是无状态的什么是有状态的吗?移动计算不就是那个节点都进行相同的计算吗?是说计算过程需要依赖其他节点的数据叫有状态?

    作者回复: 大数据的分布式都是有状态的,这个无状态是网站架构里的无状态应用,抱歉思考题跳跃有点大。 关于无状态应用可以参考我的《大型网站技术架构》这本书

    2018-11-07
    2
    6
  • 老男孩
    期待后面的文章。无状态的服务是内聚的低耦合的,同一个用户的请求可以被分发到不同服务节点上进行处理。伸缩自如。

    作者回复: 是的

    2018-11-06
    4
  • 公号-技术夜未眠
    无状态服务有利于提升分布式系统的可伸缩性。

    作者回复: 是的

    2018-11-06
    4
  • 贝特
    无状态,主要是为了可靠性和扩缩容。 可靠性体现在如果集群中单个节点故障后,其他节点能无缝接管比此节点的数据,而不需要实时做同步。 扩缩容和可靠性类似,单节点坏掉就是缩容的一个特殊场景,扩容体现在增加节点后也不需要做状态和数据同步。

    作者回复: 是的

    2018-11-11
    3
收起评论
显示
设置
留言
93
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部