分布式存储与分布式计算

分布式存储与分布式计算目录 1 从一个新闻门户网站案例引入 2 推算一下你需要分析多少条数据 3 黄金搭档 分布式存储 分布式计算这篇文章聊一个话题 什么是分布式计算系统 1 从一个新闻门户网站案例引入现在很多同学经常会看到一些名词 比如分布式服务框架 分布式系统 分布式存储系统 分布式消息系统 但是有些经验尚浅的同学 可能都很容易被这些名词给搞晕 所以这篇文章就

目录

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

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

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

 

 

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

 

(1)从一个新闻门户网站案例引入

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

(2)推算一下你需要分析多少条数据?

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

(3)黄金搭档:分布式存储+分布式计算

 

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

 

大家看看下面的图:

分布式存储与分布式计算

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

 

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

 

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

 

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

分布式存储与分布式计算

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

 

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

 

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

 

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

 

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

 

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

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

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

 

以上转载来自: 石彬的架构笔记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210635.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:12
下一篇 2026年3月19日 上午7:13


相关推荐

  • windows杀进程命令 杀不掉_windows杀掉进程

    windows杀进程命令 杀不掉_windows杀掉进程1丶获取某端口的进程netstat-ano|findstr80802丶获取任务列表tasklist|findstr148203丶杀进程taskkill/pid14820-t-f

    2025年9月14日
    9
  • 从零开始搭二维激光SLAM — 前言[通俗易懂]

    从零开始搭二维激光SLAM — 前言[通俗易懂]我眼中的SLAM从最开始接触SLAM已经3年了,从二维激光SLAM到三维激光SLAM,再到视觉SLAM,都有一些接触,现将简单梳理一下SLAM的各个模块的功能以及实现方式,为本系列文章起到个总领作用。1SLAM是什么SLAM(simultaneouslocalizationandmapping)的中文翻译为同步定位与地图构建。目的有2个,一个是进行定位,一个是进行周围环境的地图的构建,二者相互依赖,只有同时进行求解才能够解决这个问题。为什么一定要同时进行求解呢?人通过眼睛,通过手部等肢体

    2022年8月23日
    8
  • xp优化集锦

    xp优化集锦转自 url http bbs 360safe com viewthread php tid 1470 amp extra page 3D2 url 一 系统优化设置 1 删除 Windows 强加的附件 1 用记事本 NOTEPAD 修改 winntinfsyso inf 用查找 替换功能 在查找框中输入 hide 一个英文逗号紧跟 hide 将 替换为 框设为空 并选全部替换 这样

    2026年3月26日
    1
  • linux启动nginx命令行_Linux环境下启动、停止、重启nginx[通俗易懂]

    linux启动nginx命令行_Linux环境下启动、停止、重启nginx[通俗易懂]启动启动代码格式:nginx安装目录地址-cnginx配置文件地址例如:[root@LinuxServersbin]#/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf停止nginx的停止有三种方式:从容停止1、查看进程号[root@LinuxServer~]#ps-ef|grepnginx2、杀死进程[r…

    2026年4月17日
    5
  • stun client java实现_stun 协议客户端实现

    stun client java实现_stun 协议客户端实现/**Spider–AnopensourceClanguagetoolkit.**Copyright(C)2011,Inc.**lidp**Thisprogramisfreesoftware,distributedunderthetermsof*theGNUGeneralPublicLicenseVersion2.Seethe…

    2022年7月16日
    20
  • 监控android USB拔插

    监控android USB拔插最近在做项目中遇到一个需要监控USB拔插来关闭服务的问题,当时查了不少资料,都是说android3.0以上的USB类可以监控,╮(╯▽╰)╭比较难搞后来发现其实可以变通的监控外部电源来实现,相当于监控USB了呵呵,记录下来Intent.ACTION_POWER_DISCONNECTED就是它了

    2022年5月7日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号