偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

連你女朋友都能看懂的分布式架構(gòu)原理!

開發(fā) 架構(gòu)
假設(shè)之前你的3億條數(shù)據(jù)都在一個(gè)30GB的大文件里,然后你一個(gè)Java程序一條一條慢慢讀慢慢計(jì)算,需要耗費(fèi)30小時(shí)。

這篇文章聊一個(gè)話題:什么是分布式計(jì)算系統(tǒng)?

一、從一個(gè)新聞門戶網(wǎng)站案例引入

現(xiàn)在很多同學(xué)經(jīng)常會(huì)看到一些名詞,比如分布式服務(wù)框架,分布式系統(tǒng),分布式存儲(chǔ)系統(tǒng),分布式消息系統(tǒng)。

但是有些經(jīng)驗(yàn)尚淺的同學(xué),可能都很容易被這些名詞給搞暈。所以這篇文章就對(duì)“分布式計(jì)算系統(tǒng)”這個(gè)概念做一個(gè)科普類的分析。

如果你要理解啥是分布式計(jì)算,就必須先得理解啥是分布式存儲(chǔ),現(xiàn)在我們從一個(gè)小例子來引入。

比如說現(xiàn)在你有一個(gè)網(wǎng)站,咱們假設(shè)是一個(gè)新聞門戶網(wǎng)站好了。每天是不是會(huì)有可能上千萬用戶會(huì)涌入進(jìn)來看你的新聞?

好的,那么他們會(huì)怎么看新聞呢?

其實(shí)很簡單,首先他們會(huì)點(diǎn)擊一些板塊,比如“體育板塊”,“娛樂板塊”。

然后,點(diǎn)擊一些新聞標(biāo)題,比如“20年來最刺激的一場(chǎng)比賽即將拉開帷幕”,接著還可能會(huì)發(fā)表一些評(píng)論,或者點(diǎn)擊對(duì)某個(gè)好的新聞進(jìn)行收藏。

那么你的這些用戶干的這些事兒有一個(gè)專業(yè)的名詞,叫做“用戶行為”。

因?yàn)樵谀愕木W(wǎng)站或者APP上,用戶一定會(huì)進(jìn)行各種操作,點(diǎn)擊各種按鈕,發(fā)表一些信息,這些都是各種行為,統(tǒng)稱為“用戶行為”。

好了,現(xiàn)在假如說新聞門戶網(wǎng)站的boss說想要做一個(gè)功能,在網(wǎng)站里每天做一個(gè)排行榜,統(tǒng)計(jì)出來每天每個(gè)版塊被點(diǎn)擊的次數(shù),包括最熱門的一些新聞。

然后呢,在網(wǎng)站后臺(tái)系統(tǒng)里需要有一些報(bào)表,要讓他看到不同的編輯產(chǎn)出的文章的點(diǎn)擊量匯總,做一個(gè)編輯的績效排名,還有很多類似的事情。

這些事情叫什么呢?你可以認(rèn)為是基于用戶行為數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì),產(chǎn)出各種各樣的數(shù)據(jù)統(tǒng)計(jì)分析報(bào)表和結(jié)果,供網(wǎng)站的用戶、管理人員來查看。

這也有一個(gè)專業(yè)的名詞,叫做“用戶行為分析”。

二、推算一下你需要分析多少條數(shù)據(jù)?

好,咱么繼續(xù)。如果你要對(duì)用戶行為進(jìn)行分析,那你是不是首先需要收集這些用戶行為的數(shù)據(jù)?

比如說有個(gè)哥兒們現(xiàn)在點(diǎn)了一下“體育”板塊,你需要在網(wǎng)頁前端或者是APP上立馬發(fā)送一條日志到后臺(tái),記錄清楚“id為117的用戶點(diǎn)擊了一下id位003的板塊”。

同樣,這個(gè)東西也有一個(gè)專業(yè)的名詞,叫做“用戶行為日志”。

那你可以來計(jì)算一下,這些用戶行為如果采用日志的方式收集,每天大概會(huì)產(chǎn)生多少條數(shù)據(jù)?

假設(shè)每天1000萬人訪問你的新聞網(wǎng)站,平均每個(gè)人做出30個(gè)點(diǎn)擊、評(píng)論以及收藏等行為,那么就是3億條用戶行為日志。

假設(shè)每條用戶行為日志的大小是100個(gè)字節(jié),因?yàn)榭赡馨撕芏嗪芏嗟淖侄?,比如他是在網(wǎng)頁點(diǎn)擊的,還是在手機(jī)APP上點(diǎn)擊的,手機(jī)APP是用的什么操作系統(tǒng),android還是IOS,類似這樣的字段是很多的。

那么你就有每天大概28GB左右的數(shù)據(jù),這里一共包含3億條。

假如對(duì)這3億條數(shù)據(jù),你就自己寫個(gè)Java程序,從一個(gè)超大的28GB的大日志文件里,一條一條讀取日志來統(tǒng)計(jì)分析和計(jì)算,一直到把3億條數(shù)據(jù)都計(jì)算完畢,你覺得會(huì)花費(fèi)多少時(shí)間?

不可想象,根據(jù)你的計(jì)算邏輯復(fù)雜度來說,搞不好要花費(fèi)幾十個(gè)小時(shí)的時(shí)間。

所以你覺得這種大數(shù)據(jù)場(chǎng)景下的分析,這么玩兒靠譜么?不靠譜。

三、黃金搭檔:分布式存儲(chǔ)+分布式計(jì)算

所以這個(gè)時(shí)候,你就可以首先采用分布式存儲(chǔ)的方式,把那3億條數(shù)據(jù)分散存放在比如30臺(tái)機(jī)器上,每臺(tái)機(jī)器大概就放1000萬條數(shù)據(jù),大概就1GB的數(shù)據(jù)量。

大家看看下面的圖:


接著你就可以上分布式計(jì)算了,你可以把統(tǒng)計(jì)分析數(shù)據(jù)的計(jì)算任務(wù),拆分成30個(gè)計(jì)算任務(wù),每個(gè)計(jì)算任務(wù)都分發(fā)到一臺(tái)機(jī)器上去運(yùn)行。

也就是說,就專門針對(duì)機(jī)器本地的1GB數(shù)據(jù),那1000萬條數(shù)據(jù)進(jìn)行分析和計(jì)算。

這樣的好處就是可以依托30臺(tái)機(jī)器的資源并行的進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)和分析,這也就是所謂的分布式計(jì)算了。

每臺(tái)機(jī)器的計(jì)算結(jié)果出來之后,就可以進(jìn)行綜合性的匯總,然后就可以拿到最終的一個(gè)分析結(jié)果,大家看下圖。

假設(shè)之前你的3億條數(shù)據(jù)都在一個(gè)30GB的大文件里,然后你一個(gè)Java程序一條一條慢慢讀慢慢計(jì)算,需要耗費(fèi)30小時(shí)。

那么現(xiàn)在把計(jì)算任務(wù)并行到了30臺(tái)機(jī)器上去,就可以提升30倍的計(jì)算速度,是不是就只需要1小時(shí)就可以完成計(jì)算了?

所以這個(gè)就是所謂的分布式計(jì)算,他一般是針對(duì)超大數(shù)據(jù)集,也就是現(xiàn)在很流行的大數(shù)據(jù)進(jìn)行計(jì)算的。

首先需要將超大數(shù)據(jù)集拆分成很多數(shù)據(jù)塊分散在多臺(tái)機(jī)器上,然后把計(jì)算任務(wù)分發(fā)到各個(gè)機(jī)器上去,利用多臺(tái)機(jī)器的CPU、內(nèi)存等計(jì)算資源來進(jìn)行計(jì)算。

這種分布式計(jì)算的方式,對(duì)于超大數(shù)據(jù)集的計(jì)算可以提升幾十倍甚至幾百倍的效率,其實(shí)這個(gè)理論和概念,也是大數(shù)據(jù)技術(shù)的基礎(chǔ)。

比如現(xiàn)在最流行的大數(shù)據(jù)技術(shù)棧里,Hadoop HDFS就是用做分布式存儲(chǔ)的,他可以把一個(gè)超大文件拆分為很多小的數(shù)據(jù)塊放在很多機(jī)器上。

而像Spark就是分布式計(jì)算系統(tǒng),他可以把計(jì)算任務(wù)分發(fā)到各個(gè)機(jī)器上,對(duì)各個(gè)數(shù)據(jù)塊進(jìn)行并行計(jì)算。

以上就是用大白話+畫圖,給小白同學(xué)們科普了一下分布式計(jì)算系統(tǒng)的相關(guān)知識(shí),相信大家看了之后,對(duì)分布式計(jì)算系統(tǒng),應(yīng)該有一個(gè)初步的認(rèn)識(shí)了。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2020-06-22 08:07:48

Spring依賴場(chǎng)景

2020-02-15 17:16:05

Kubernetes容器

2020-09-28 14:25:39

HTTPS加密算法

2018-05-24 22:58:26

大數(shù)據(jù)分布式計(jì)算統(tǒng)計(jì)

2022-07-04 08:31:42

GitOpsGit基礎(chǔ)設(shè)施

2018-11-19 08:34:22

Hadoop架構(gòu)HDFS

2020-01-21 10:16:15

Kubernetes教程容器

2020-12-01 09:03:22

分庫分表MySQL

2019-12-27 09:47:05

大數(shù)據(jù)TomcatWeb

2018-11-21 09:40:57

熔斷實(shí)踐AOP

2019-10-08 10:10:52

中臺(tái) IT后臺(tái)

2018-05-30 09:27:15

大數(shù)據(jù)分布式計(jì)算

2021-09-27 13:50:13

Python裝飾器函數(shù)

2018-11-21 15:40:08

HTTP協(xié)議前端

2019-09-05 11:14:12

監(jiān)控系統(tǒng)拓?fù)鋱D

2020-08-14 09:04:34

分布式事務(wù)

2019-03-26 11:15:34

AI機(jī)器學(xué)習(xí)人工智能

2013-09-22 10:34:08

碼農(nóng)機(jī)器學(xué)習(xí)算法

2019-01-22 09:37:47

紅黑樹數(shù)據(jù)二叉樹

2019-05-16 09:38:04

Redis高可用數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)