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

揭秘:“撩”大數(shù)據(jù)的正確姿勢

企業(yè)動態(tài)
話說當下技術(shù)圈的朋友,一起聚個會聊個天,如果不會點大數(shù)據(jù)的知識,感覺都融入不了圈子,為了以后聚會時讓你有聊有料,接下來就跟隨我的講述,一起與大數(shù)據(jù)混個臉熟吧。

 生動示例解說大數(shù)據(jù)“三駕馬車”。

我是我:“緣起于美麗,相識于邂逅,廝守到白頭!” 

眾聽眾:“呃,難道今天是要分享如何作詩?!”

我是我:“大家不要誤會,今天主要的分享不是如何作詩,而是《揭秘:‘撩’大數(shù)據(jù)的正確姿勢》,下面進入正題。”

話說當下技術(shù)圈的朋友,一起聚個會聊個天,如果不會點大數(shù)據(jù)的知識,感覺都融入不了圈子,為了以后聚會時讓你有聊有料,接下來就跟隨我的講述,一起與大數(shù)據(jù)混個臉熟吧,不過在“撩”大數(shù)據(jù)之前,還是先揭秘一下研發(fā)這些年我們都經(jīng)歷了啥?

緣起:應(yīng)用系統(tǒng)架構(gòu)的從 0 到 1

揭秘:研發(fā)這些年我們都經(jīng)歷了啥?

大道至簡。生活在技術(shù)圈里,大家靜下來想想,無論一個應(yīng)用系統(tǒng)多龐大、多復雜,無非也就是由一個漂亮的網(wǎng)站門面 + 一個丑陋的管理模塊 + 一個悶頭干活的定時任務(wù)三大板塊組成。

我們負責的應(yīng)用系統(tǒng)當然也不例外,起初設(shè)計的時候三大模塊綁在一起(All in one),線上跑一個 Tomcat 輕松就搞定,可謂是像極了一個大泥球。

衍化至繁。由于網(wǎng)站模塊、管理平臺、定時任務(wù)三大模塊綁定在一起,開發(fā)協(xié)作會比較麻煩,時不時會有代碼合并沖突出現(xiàn);線上應(yīng)用升級時,也會導致其它模塊暫時不能使用,例如如果修改了一個定時任務(wù)的配置,可能會導致網(wǎng)站、管理平臺的服務(wù)暫時不能用。面對諸多的不便,就不得不對 All in one 的大泥球系統(tǒng)進行拆解。

隨著產(chǎn)品需求的快速迭代,網(wǎng)站 WEB 功能逐漸增多,我們起初設(shè)計時雄心勃勃(All in one 的單體架構(gòu)),以為直接按模塊設(shè)計疊加實現(xiàn)就好了,誰成想系統(tǒng)越發(fā)顯得臃腫(想想也是走彎路啦?。?。所以不得不改變實現(xiàn)思路,讓模塊服務(wù)下沉,分布式思想若現(xiàn)——讓原來網(wǎng)站 WEB 一個系統(tǒng)做的事,變成由子系統(tǒng)分擔去完成。

應(yīng)用架構(gòu)的演變,服務(wù)模塊化拆分,隨之而來的就是業(yè)務(wù)日志、業(yè)務(wù)數(shù)據(jù)散落在各處。隨著業(yè)務(wù)的推廣,業(yè)務(wù)量逐日增多,沉淀的數(shù)據(jù)日益龐大,在業(yè)務(wù)層面、運維層面上的很多問題,逐漸開始暴露。

  • 在業(yè)務(wù)層面上,面對監(jiān)管機構(gòu)的監(jiān)管,整合提取散落在各地的海量數(shù)據(jù)稍顯困難;海量數(shù)據(jù)散落,想做個統(tǒng)計分析報表也非常不易。

  • 在運維層面上,由于缺少統(tǒng)一的日志歸檔,想基于日志做快速分析也比較困難;如果想從散落在各模塊的日志中,進行調(diào)用鏈路的分析也是相當費勁。

面對上述問題,此時一個碩大的紅色問號出現(xiàn)在我們面前,到底該如何解決?

面對結(jié)構(gòu)化的業(yè)務(wù)數(shù)據(jù),不妨先考慮采用國內(nèi)比較成熟的開源數(shù)據(jù)庫中間件 Sharding-JDBC、MyCat 看是否能夠解決業(yè)務(wù)問題;面對日志數(shù)據(jù),可以考慮采用 ELK 等開源組件。如果以上方案或者能嘗試的方式都無法幫我們解決,嘗試搬出大數(shù)據(jù)吧。

那到底什么時候需要用大數(shù)據(jù)呢?大數(shù)據(jù)到底能幫我們解決什么問題呢?注意,前方高能預警,門外漢“撩”大數(shù)據(jù)的正確姿勢即將開啟。

邂逅:一起撬開大數(shù)據(jù)之門

槽點:門外漢“撩”大數(shù)據(jù)的正確姿勢

與大數(shù)據(jù)的邂逅,源于兩個頭痛的問題。第一個問題是海量數(shù)據(jù)的存儲,如何解決?第二個問題是海量數(shù)據(jù)的計算,如何解決?

面對這兩個頭痛的問題,不得不提及谷歌的“三駕馬車”(分布式文件系統(tǒng) GFS、MapReduce 和 BigTable),谷歌“三駕馬車”的出現(xiàn),奠定了大數(shù)據(jù)發(fā)展的基石,毫不夸張地說,沒有谷歌的“三駕馬車”就沒有大數(shù)據(jù),所以接下來很有必要逐一認識。

大家都知道,谷歌搜索引擎每天要抓取數(shù)以億計的網(wǎng)頁,那么抓取的海量數(shù)據(jù)該怎么存儲?

谷歌痛則思變,重磅推出分布式文件系統(tǒng) GFS。面對谷歌推出的分布式文件系統(tǒng) GFS 架構(gòu),如 PPT 中示意,參與角色著實很簡單,主要分為 GFS Master(主服務(wù)器)、GFS Chunkserver(塊存儲服務(wù)器)、GFS Client(客戶端)。

不過對于首次接觸這個的你,可能還是一臉懵 ,大家心莫慌,接下來容我抽象一下。

GFS Master 我們姑且認為是古代的皇上,統(tǒng)籌全局,運籌帷幄。主要負責掌控管理所有文件系統(tǒng)的元數(shù)據(jù),包括文件和塊的命名空間、從文件到塊的映射、每個塊所在的節(jié)點位置。說白了,就是要維護哪個文件存在哪些文件服務(wù)器上的元數(shù)據(jù)信息,并且定期通過心跳機制與每一個 GFS Chunkserver 通信,向其發(fā)送指令并收集其狀態(tài)。

GFS Chunkserver 可以認為是宰相,因為宰相肚子里面能撐船,能夠海納百川。主要提供數(shù)據(jù)塊的存儲服務(wù),以文件的形式存儲于 Chunkserver 上。

GFS Client 可以認為是使者,對外提供一套類似傳統(tǒng)文件系統(tǒng)的 API 接口,對內(nèi)主要通過與皇帝通信來獲取元數(shù)據(jù),然后直接和宰相交互,來進行所有的數(shù)據(jù)操作。

為了讓大家對 GFS 背后的讀寫流程有更多認識,獻上兩首歌謠。

到這里,大家應(yīng)該對分布式文件系統(tǒng) GFS 不再陌生,以后在飯桌上討論該話題時,也能與朋友交涉兩嗓子啦。

不過這還只是了解了海量數(shù)據(jù)怎么存儲,那如何從海量數(shù)據(jù)存儲中,快速計算出我們想要的結(jié)果呢?

面對海量數(shù)據(jù)的計算,谷歌再次創(chuàng)新,推出了 MapReduce 編程模型及實現(xiàn)。

MapReduce 主要是采取分而治之的思想,通俗地講,主要是將一個大規(guī)模的問題,分成多個小規(guī)模的問題,把多個小規(guī)模問題解決,然后再合并小規(guī)模問題的結(jié)果,就能夠解決大規(guī)模的問題。

也有人說 MapReduce 就像光頭強的鋸子和錘子,世界上的萬事萬物都可以先鋸幾下,然后再錘幾下,就能輕松搞定,至于鋸子怎么鋸,錘子怎么錘,那就是個人的手藝了。

這么解釋不免顯得枯燥乏味,我們不妨換種方式,走進生活真實感受 MapReduce。

斗地主估計大家都玩過,每次開玩之前,都會統(tǒng)計一副牌的張數(shù)到底夠不夠,最快的步驟莫過于:分幾份給大家一起數(shù),最后大家把數(shù)累加,算總張數(shù),接著就可以愉快地玩耍啦... ...這不就是分而治之的思想嗎?!不得不說架構(gòu)思想來源于人們的生活!

再舉個不太貼切的例子來感受MapReduce 背后的運轉(zhuǎn)流程,估計很多人掰過玉米,每當玉米成熟的季節(jié),地主家就開始忙碌起來。

首先地主將一畝地的玉米分給處于空閑狀態(tài)的長工來處理;專門負責掰玉米的長工領(lǐng)取任務(wù),開始掰玉米操作(Map 操作),并把掰好的玉米放到在麻袋里(緩沖區(qū)),麻袋裝不下時,會被裝到木桶中(溢寫),木桶被劃分為藍色的生玉米木桶、紅色的熟玉米木桶(分區(qū)),地主通知二當家來“收”屬于自己的那部分玉米,二當家收到地主的通知后,就到相應(yīng)的長工那兒“拿回”屬于自己的那部分玉米(Fetch 操作),二當家對收取的玉米進行處理(Reduce 操作),并把處理后的結(jié)果放入糧倉。

一個不太貼切的生活體驗 + 一張畫得不太對的丑圖 = 苦澀難懂的技術(shù),也不知道這樣解釋,你了解了多少?不過如果以后再談大數(shù)據(jù),知道 MapReduce 這個詞的存在,那這次的分享就算成功(哈哈)。

MapReduce 解決了海量數(shù)據(jù)的計算問題,可謂是力作,但谷歌新的業(yè)務(wù)需求一直在不斷出現(xiàn)。眾所周知,谷歌要存儲爬取的海量網(wǎng)頁,由于網(wǎng)頁會不斷更新,所以要不斷地針對同一個 URL 進行爬取,那么就需要能夠存儲一個 URL 不同時期的多個版本的網(wǎng)頁內(nèi)容。谷歌面臨很多諸如此類的業(yè)務(wù)場景,面對此類頭痛的需求,該怎么辦?

谷歌重磅打造了一款類似以“URL + contents + time stamp”為 key,以“html 網(wǎng)頁內(nèi)容”為值的存儲系統(tǒng),于是就有了 BigTable 這個鍵值系統(tǒng)的存在(本文不展開詳述)。

至此,兩個頭痛的問題就算解決了。面對海量數(shù)據(jù)存儲難題,谷歌推出了分布式文件系統(tǒng) GFS、結(jié)構(gòu)化存儲系統(tǒng) BigTable;面對海量數(shù)據(jù)的計算難題,谷歌推出了 MapReduce。

不過靜下來想想,GFS 也好、MapReduce 也罷,無非都是秉承了大道至簡、一人掌權(quán)、其它人辦事、人多力量大的設(shè)計理念。另外畫龍畫虎難畫骨,建議閑暇之余也多些思考:為什么架構(gòu)要這么設(shè)計?架構(gòu)設(shè)計的目標到底是如何體現(xiàn)的?

基于谷歌的“三駕馬車”,出現(xiàn)了一大堆開源的輪子,不得不說谷歌的“三駕馬車”開啟了大數(shù)據(jù)時代。了解了谷歌的“三駕馬車”的設(shè)計理念后,再去看這些開源的輪子,應(yīng)該會比較好上手。

好了,門外漢“撩”大數(shù)據(jù)就聊到這兒吧,希望通過上文的分享能夠了解幾個關(guān)鍵詞:大道至簡、衍化至繁、谷歌三駕馬車(GFS、MapReduce、BigTable)、痛則思變、開源輪子。

白頭:番外篇

扯淡:不妨換一種態(tài)度

本文至此也即將接近尾聲,最后是番外篇~

首先,借用日本劍道學習心訣“守、破、離”,希望我們一起做一個精進的人。

最后,在有限的時間內(nèi)要多學習,不要停下學習的腳步,在了解和使用已經(jīng)有的成熟技術(shù)之時,更要多思考,開創(chuàng)適合自己工作場景的解決方案。

【本文是51CTO專欄機構(gòu)宜信技術(shù)學院的原創(chuàng)文章,微信公眾號“宜信技術(shù)學院( id: CE_TECH)”】

戳這里,看該作者更多好文

 

責任編輯:張燕妮 來源: 宜信技術(shù)學院
相關(guān)推薦

2016-12-12 08:48:24

2018-01-11 15:31:39

命令Linux關(guān)機

2019-07-24 06:05:32

2018-09-03 11:57:28

大數(shù)據(jù)存儲Spark

2013-07-10 10:17:07

2017-02-23 15:37:44

OptionObject容器

2016-05-09 10:41:03

算法分析開發(fā)

2017-09-06 08:23:01

數(shù)據(jù)備份恢復過程正確姿勢

2017-07-10 13:09:45

前端Flexbox

2017-03-16 11:39:33

Openstack源碼姿勢

2023-01-30 07:41:43

2019-12-27 09:47:05

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

2017-10-12 11:30:34

Spark代碼PR

2021-01-08 08:10:34

MySQL表空間回收

2015-09-01 10:52:16

安全數(shù)據(jù)分析架構(gòu)

2021-09-15 16:20:02

Spring BootFilterJava

2024-09-25 08:22:06

2019-10-30 17:06:50

AWS物聯(lián)網(wǎng)IoT

2020-02-24 15:26:40

Python短信免費

2019-01-02 10:49:54

Tomcat內(nèi)存HotSpot VM
點贊
收藏

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