01 移动计算比移动数据更划算
大数据和传统的软件开发技术在架构思路上有很大不同,大数据技术更关注数据。因此相关的技术都是围绕数据的,要考虑如下三个核心要素:
- 数据存储
- 计算
- 大规模数据传输
传统的软件计算处理模型是是“输入 -> 计算 -> 输出”模型,大数据要采取分布式架构的思路。
关于分布式架构,可以参考《大型网站技术架构:核心原理与案例分析》,采用分布式集群的解决方案,利用数千或者数万台计算机构建一个大数据集群。
围绕这样的思路,大数据系统可以简单的总结成如下四个维度:
【目的】 大数据的计算处理通常针对的是网站的存量数据,网站大数据系统要做的就是将这些统计规律和关联计算出来,并由此改善用户的体验和运营策略。
【核心思路】数据量既然是庞大的,而程序比数据要小的多,将数据输入给程序就不如将程序分发到数据所在的地方进行计算,也就是移动计算比移动数据划算。
【具体实现】要向多台计算机合作构成一个系统,必须要在技术上实现架构,这就是广泛使用的负载均衡、分布式缓存、分布式数据库、分布式服务等种种分布式系统。具体实现如下:
- 将大规模的数据存储在服务器集群的所有服务器上:使用HDFS分布式文件存储系统,将文件分块(Block),以块的形式存储在服务器上
- 根据不同节点的存储能力,在各服务器启动分布式任务。
- 使用大数据计算框架支持的编程模型进行编程,Hadoop的MapReduce编程模型,或者Spark的RDD编程模型。
- 用hadoop或者spark启动命令执行这个jar包,执行引擎会解析数据的路径,数据量,给数据分片(split),每一个数据偏都分配给一个任务执行进程。
- 任务执行进程收到分配任务,检查是否有程序包,下载后通过反射的方式去加载。
- 程序根据分片的文件地址和数据在文件内的偏移进行执行。
【原则】尽量使用无状态的服务,不同服务实例之间不共享状态,也就是不持有数据,用户请求交给任何一个服务实例计算,处理的结果都是一样的。
移动程序到数据所在的地方去执行,就类似于杀毒软件从服务器更新病毒库,然后再windows上内查杀,也是一种移动计算,比移动数据更划算的例子
大数据移动计算这一个编程技巧上升到编程模型的高度,并发了相应的框架,让开发只需要关注大数据的算法实现,而不必关心如何将这个算法在分布式环境中执行,极大简化了大数据开发难度。
下一篇:02 大规模数据存储问题
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgffjac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01