目录

  • 从一个新闻门户网站案例引入
  • 推算一下你需要分析多少条数据?
  • 黄金搭档:分布式存储+分布式计算

这篇文章聊一个话题:什么是分布式计算系统?


一、从一个新闻门户网站案例引入

现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。

但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。

如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。

比如说现在你有一个网站,咱们假设是一个新闻门户网站好了。每天是不是会有可能上千万用户会涌入进来看你的新闻?

好的,那么他们会怎么看新闻呢


其实很简单,首先他们会点击一些板块,比如“体育板块”,“娱乐板块”。

然后,点击一些新闻标题,比如“20年来最刺激的一场比赛即将拉开帷幕”,接着还可能会发表一些评论,或者点击对某个好的新闻进行收藏。

那么你的这些用户干的这些事儿有一个专业的名词,叫做“用户行为”。

因为在你的网站或者APP上,用户一定会进行各种操作,点击各种按钮,发表一些信息,这些都是各种行为,统称为“用户行为”。

好了,现在假如说新闻门户网站的boss说想要做一个功能,在网站里每天做一个排行榜,统计出来每天每个版块被点击的次数,包括最热门的一些新闻。


然后呢,在网站后台系统里需要有一些报表,要让他看到不同的编辑产出的文章的点击量汇总,做一个编辑的绩效排名,还有很多类似的事情。

这些事情叫什么呢?你可以认为是基于用户行为数据进行分析和统计,产出各种各样的数据统计分析报表和结果,供网站的用户、管理人员来查看。

这也有一个专业的名词,叫做“用户行为分析”。


二、推算一下你需要分析多少条数据?

好,咱么继续。如果你要对用户行为进行分析,那你是不是首先需要收集这些用户行为的数据?

比如说有个哥儿们现在点了一下“体育”板块,你需要在网页前端或者是APP上立马发送一条日志到后台,记录清楚“id为117的用户点击了一下id位003的板块”。

同样,这个东西也有一个专业的名词,叫做“用户行为日志”。

那你可以来计算一下,这些用户行为如果采用日志的方式收集,每天大概会产生多少条数据?


假设每天1000万人访问你的新闻网站,平均每个人做出30个点击、评论以及收藏等行为,那么就是3亿条用户行为日志。

假设每条用户行为日志的大小是100个字节,因为可能包含了很多很多的字段,比如他是在网页点击的,还是在手机APP上点击的,手机APP是用的什么操作系统,android还是IOS,类似这样的字段是很多的。

那么你就有每天大概28GB左右的数据,这里一共包含3亿条。

假如对这3亿条数据,你就自己写个Java程序,从一个超大的28GB的大日志文件里,一条一条读取日志来统计分析和计算,一直到把3亿条数据都计算完毕,你觉得会花费多少时间?

不可想象,根据你的计算逻辑复杂度来说,搞不好要花费几十个小时的时间。

所以你觉得这种大数据场景下的分析,这么玩儿靠谱么?不靠谱。


三、黄金搭档:分布式存储+分布式计算

所以这个时候,你就可以首先采用分布式存储的方式,把那3亿条数据分散存放在比如30台机器上,每台机器大概就放1000万条数据,大概就1GB的数据量。

大家看看下面的图:

接着你就可以上分布式计算了,你可以把统计分析数据的计算任务,拆分成30个计算任务,每个计算任务都分发到一台机器上去运行。

也就是说,就专门针对机器本地的1GB数据,那1000万条数据进行分析和计算。

这样的好处就是可以依托30台机器的资源并行的进行数据的统计和分析,这也就是所谓的分布式计算了。

每台机器的计算结果出来之后,就可以进行综合性的汇总,然后就可以拿到最终的一个分析结果,大家看下图。

假设之前你的3亿条数据都在一个30GB的大文件里,然后你一个Java程序一条一条慢慢读慢慢计算,需要耗费30小时。

那么现在把计算任务并行到了30台机器上去,就可以提升30倍的计算速度,是不是就只需要1小时就可以完成计算了?

所以这个就是所谓的分布式计算,他一般是针对超大数据集,也就是现在很流行的大数据进行计算的。

首先需要将超大数据集拆分成很多数据块分散在多台机器上,然后把计算任务分发到各个机器上去,利用多台机器的CPU、内存等计算资源来进行计算。

这种分布式计算的方式,对于超大数据集的计算可以提升几十倍甚至几百倍的效率,其实这个理论和概念,也是大数据技术的基础。


比如现在最流行的大数据技术栈里,Hadoop HDFS就是用做分布式存储的,他可以把一个超大文件拆分为很多小的数据块放在很多机器上。

而像Spark就是分布式计算系统,他可以把计算任务分发到各个机器上,对各个数据块进行并行计算。

以上就是用大白话+画图,给小白同学们科普了一下分布式计算系统的相关知识,相信大家看了之后,对分布式计算系统,应该有一个初步的认识了。

连你女朋友都能看懂的分布式架构原理!相关推荐

  1. 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

    本文来自:石杉的架构笔记 目录 一.前奏 二.HDFS的NameNode架构原理 一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN ...

  2. 人人都能看懂的Spring底层原理,看完绝对不会懵逼

    人人都能看懂的Spring原理,绝对不会懵逼 为什么要使用Spring? Spring的核心组件 Spring是如何实现IOC和DI的? 定义了BeanDefinition 扫描加载BeanDefin ...

  3. 女朋友都能看懂的SpringCloud!!!

    一.前言 https://github.com/ZhongFuCheng3y/msc-Demo 项目结构图: 二.集群/分布式/微服务/SOA是什么? 像我这种技术小白,看到这些词(集群/分布式/微服 ...

  4. 你女朋友都能看懂的“三握四挥”

    今天,我们来说一下这个面试中经常问到的"三握四挥".不过,我们不从技术层面来说,毕竟对于小白来说,弄的太高大上,未必就是好的.我将以全国(梵蒂冈)最简单的方式来说这个问题. 首先, ...

  5. 女朋友都能看懂,Spring如何解决循环依赖?

    介绍 先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成 Spring的循环依赖有两种场景 构造器的循环依赖 ...

  6. 99%的人都能看懂的分布式最佳「补偿」实践

    来源:跨界架构师 「补偿」机制的意义 以电商的购物场景为例: 客户端 ---->购物车微服务 ---->订单微服务 ----> 支付微服务. 这种调用链非常普遍. 那么为什么需要考虑 ...

  7. [图解]小白都能看懂的FASTER R-CNN – 原理和实现细节

    Contents [hide] 1 论文原文 2 介绍 3 Anchors 3.1 如何确定一个anchor是正样本还是负样本? 4 实现细节 5 调试信息 6 参考资料 论文原文 Faster R- ...

  8. 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构

    点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 (1)TB级数据放在一台机器上:难啊! (2 ...

  9. 人人都能看懂的Spring源码解析,Spring如何解决循环依赖

    人人都能看懂的Spring源码解析,Spring如何解决循环依赖 原理解析 什么是循环依赖 循环依赖会有什么问题? 如何解决循环依赖 问题的根本原因 如何解决 为什么需要三级缓存? Spring的三级 ...

最新文章

  1. 公共技术点之 Java 反射 Reflection
  2. WinSock的recv返回值处理
  3. python学习教程,12306火车票抢票系统
  4. 在阿里云上以Daemon进程方式运行SAP Cloud Connector portable版本的尝试
  5. mysql中文编码问题
  6. 福布斯中国2020科技女性榜:蓝港互动廖明香、百度李莹等上榜
  7. java 初始化和清楚_浅谈Java中的初始化和清理
  8. Python之socketserver源码分析
  9. memcached java api_Memcached Java Client API详解
  10. 《移动端UI框架》Vant
  11. AIMD吞吐量公式的推导
  12. h5微信f分享链接给对方获取对方手机号_裂变、分享、传播:App推广社交玩法全解析...
  13. 2019强网杯部分writeup
  14. OpenCV 3.0 高动态范围图像
  15. python幂次_python n次幂
  16. 外贸工具WhatsApp
  17. svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
  18. 2019宁夏计算机考试报名时间,2019年上半年宁夏计算机二级考试报名时间
  19. PDF文件怎么修改,如何替换PDF中的一页
  20. Linux总线之I2C

热门文章

  1. 国产运维工具Commander
  2. 科技英语计算机单元答案,科技英语课后练习答案.doc
  3. 在Visual Studio Code 中配置Python 中文乱码问题
  4. jq过渡收缩动画用js实现
  5. IP报文发送过程和原理
  6. 2023最新短视频解析接口
  7. Python3 基础语法介绍
  8. uniapp h5页面打开app,没有下载则跳转下载
  9. 【观察】解读神州鲲泰:二十年磨一剑,积硅步至千里
  10. 如何理解元数据、数据元、元模型、数据字典、数据模型这五个的关系?如何进行数据治理呢?数据治理该从哪方面入手呢?