• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

01 移动计算比移动数据更划算

武飞扬头像
Primarbird
帮助1

        大数据和传统的软件开发技术在架构思路上有很大不同,大数据技术更关注数据。因此相关的技术都是围绕数据的,要考虑如下三个核心要素

  •          数据存储
  •          计算
  •          大规模数据传输

传统的软件计算处理模型是是“输入 -> 计算 -> 输出”模型,大数据要采取分布式架构的思路。

关于分布式架构,可以参考《大型网站技术架构:核心原理与案例分析》,采用分布式集群的解决方案,利用数千或者数万台计算机构建一个大数据集群。

        围绕这样的思路,大数据系统可以简单的总结成如下四个维度:

       【目的】 大数据的计算处理通常针对的是网站的存量数据,网站大数据系统要做的就是将这些统计规律和关联计算出来,并由此改善用户的体验和运营策略。

       【核心思路】数据量既然是庞大的,而程序比数据要小的多,将数据输入给程序就不如将程序分发到数据所在的地方进行计算,也就是移动计算比移动数据划算。

        【具体实现】要向多台计算机合作构成一个系统,必须要在技术上实现架构,这就是广泛使用的负载均衡分布式缓存分布式数据库分布式服务等种种分布式系统。具体实现如下:

  1. 将大规模的数据存储在服务器集群的所有服务器上:使用HDFS分布式文件存储系统,将文件分块(Block),以块的形式存储在服务器上
  2. 根据不同节点的存储能力,在各服务器启动分布式任务。
  3. 使用大数据计算框架支持的编程模型进行编程,Hadoop的MapReduce编程模型,或者Spark的RDD编程模型。
  4. 用hadoop或者spark启动命令执行这个jar包,执行引擎会解析数据的路径,数据量,给数据分片(split),每一个数据偏都分配给一个任务执行进程。
  5. 任务执行进程收到分配任务,检查是否有程序包,下载后通过反射的方式去加载。
  6. 程序根据分片的文件地址和数据在文件内的偏移进行执行。

        【原则】尽量使用无状态的服务,不同服务实例之间不共享状态,也就是不持有数据,用户请求交给任何一个服务实例计算,处理的结果都是一样的。

        移动程序到数据所在的地方去执行,就类似于杀毒软件从服务器更新病毒库,然后再windows上内查杀,也是一种移动计算,比移动数据更划算的例子

        大数据移动计算这一个编程技巧上升到编程模型的高度,并发了相应的框架,让开发只需要关注大数据的算法实现,而不必关心如何将这个算法在分布式环境中执行,极大简化了大数据开发难度。

下一篇:02 大规模数据存储问题

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgffjac
系列文章
更多 icon
同类精品
更多 icon
继续加载