大數(shù)據(jù)需要學(xué)什么嘱朽?

注意本文非廣告,閱讀時間四分鐘左右怔接,適合大數(shù)據(jù)入門級讀者閱讀

大數(shù)據(jù)需要學(xué)習(xí)什么搪泳?很多人問過我這個問題。每一次回答完都覺得自己講得太片面了扼脐,總是沒有一個合適的契機去好好總結(jié)這些內(nèi)容岸军,直到開始寫這篇東西。大數(shù)據(jù)是近五年興起的行業(yè)瓦侮,發(fā)展迅速凛膏,很多技術(shù)經(jīng)過這些年的迭代也變得比較成熟了,同時新的東西也不斷涌現(xiàn)脏榆,想要保持自己競爭力的唯一辦法就是不斷學(xué)習(xí)。

思維導(dǎo)圖

下面的是我整理的一張思維導(dǎo)圖台谍,內(nèi)容分成幾大塊须喂,包括了分布式計算與查詢,分布式調(diào)度與管理趁蕊,持久化存儲坞生,大數(shù)據(jù)常用的編程語言等等內(nèi)容,每個大類下有很多的開源工具掷伙,這些就是作為大數(shù)據(jù)程序猿又愛又恨折騰得死去活來的東西了是己。

image

大數(shù)據(jù)需要的語言

Java

java可以說是大數(shù)據(jù)最基礎(chǔ)的編程語言,據(jù)我這些年的經(jīng)驗任柜,我接觸的很大一部分的大數(shù)據(jù)開發(fā)都是從Jave Web開發(fā)轉(zhuǎn)崗過來的(當(dāng)然也不是絕對我甚至見過產(chǎn)品轉(zhuǎn)崗大數(shù)據(jù)開發(fā)的卒废,逆了個天)。

  • 一是因為大數(shù)據(jù)的本質(zhì)無非就是海量數(shù)據(jù)的計算宙地,查詢與存儲摔认,后臺開發(fā)很容易接觸到大數(shù)據(jù)量存取的應(yīng)用場景

  • 二就是java語言本事了,天然的優(yōu)勢宅粥,因為大數(shù)據(jù)的組件很多都是用java開發(fā)的像HDFS,Yarn,Hbase,MR,Zookeeper等等参袱,想要深入學(xué)習(xí),填上生產(chǎn)環(huán)境中踩到的各種坑,必須得先學(xué)會java然后去啃源碼抹蚀。

說到啃源碼順便說一句剿牺,開始的時候肯定是會很難,需要對組件本身和開發(fā)語言都有比較深入的理解环壤,熟能生巧慢慢來晒来,等你過了這個階段,習(xí)慣了看源碼解決問題的時候你會發(fā)現(xiàn)源碼真香镐捧。

Scala

scala和java很相似都是在jvm運行的語言潜索,在開發(fā)過程中是可以無縫互相調(diào)用的。Scala在大數(shù)據(jù)領(lǐng)域的影響力大部分都是來自社區(qū)中的明星Spark和kafka,這兩個東西大家應(yīng)該都知道(后面我會有文章多維度介紹它們)懂酱,它們的強勢發(fā)展直接帶動了Scala在這個領(lǐng)域的流行竹习。

Python和Shell

shell應(yīng)該不用過多的介紹非常的常用,屬于程序猿必備的通用技能列牺。python更多的是用在數(shù)據(jù)挖掘領(lǐng)域以及寫一些復(fù)雜的且shell難以實現(xiàn)的日常腳本整陌。

分布式計算

什么是分布式計算?分布式計算研究的是如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分瞎领,然后把這些部分分配給許多服務(wù)器進行處理泌辫,最后把這些計算結(jié)果綜合起來得到最終的結(jié)果。

舉個栗子九默,就像是組長把一個大項目拆分震放,讓組員每個人開發(fā)一部分,最后將所有人代碼merge驼修,大項目完成殿遂。聽起來好像很簡單,但是真正參與過大項目開發(fā)的人一定知道中間涉及的內(nèi)容可不少乙各。

比如這個大項目如何拆分墨礁?任務(wù)如何分配?每個人手頭已有工作怎么辦耳峦?每個人能力不一樣怎么辦恩静?每個人開發(fā)進度不一樣怎么辦?開發(fā)過程中組員生病要請長假他手頭的工作怎么辦蹲坷?指揮督促大家干活的組長請假了怎么辦驶乾?最后代碼合并過程出現(xiàn)問題怎么辦?項目延期怎么辦循签?項目最后黃了怎么辦轻掩?

仔細(xì)想想上面的奪命十連問,其實每一條都是對應(yīng)了分布式計算可能會出現(xiàn)的問題懦底,具體怎么對應(yīng)大家思考吧我就不多說了唇牧,其實已經(jīng)是非常明顯了罕扎。也許有人覺得這些問題其實在多人開發(fā)的時候都不重要不需要特別去考慮怎么辦,但是在分布式計算系統(tǒng)中不一樣丐重,每一個都是非常嚴(yán)重并且非城徽伲基礎(chǔ)的問題,需要有很好的解決方案扮惦。

最后提一下臀蛛,分布式計算目前流行的工具有:

  • 離線工具Spark,MapReduce等

  • 實時工具Spark Streaming崖蜜,Storm浊仆,F(xiàn)link等

這幾個東西的區(qū)別和各自的應(yīng)用場景我們之后再聊。

分布式存儲

傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用的是集中的存儲服務(wù)器存放所有數(shù)據(jù)豫领,單臺存儲服務(wù)器的io能力是有限的抡柿,這成為了系統(tǒng)性能的瓶頸,同時服務(wù)器的可靠性和安全性也不能滿足需求等恐,尤其是大規(guī)模的存儲應(yīng)用洲劣。

分布式存儲系統(tǒng),是將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備上课蔬。采用的是可擴展的系統(tǒng)結(jié)構(gòu)囱稽,利用多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置服務(wù)器定位存儲信息二跋,它不但提高了系統(tǒng)的可靠性战惊、可用性和存取效率,還易于擴展扎即。

image

上圖是hdfs的存儲架構(gòu)圖样傍,hdfs作為分布式文件系統(tǒng),兼?zhèn)淞丝煽啃院蛿U展性铺遂,數(shù)據(jù)存儲3份在不同機器上(兩份存在同一機架,一份存在其他機架)保證數(shù)據(jù)不丟失茎刚。由NameNode統(tǒng)一管理元數(shù)據(jù)襟锐,可以任意擴展集群。

主流的分布式數(shù)據(jù)庫有很多hbase膛锭,mongoDB粮坞,GreenPlum,redis等等等等初狰,沒有孰好孰壞之分莫杈,只有合不合適,每個數(shù)據(jù)庫的應(yīng)用場景都不同奢入,其實直接比較是沒有意義的筝闹,后續(xù)我也會有文章一個個講解它們的應(yīng)用場景原理架構(gòu)等。

分布式調(diào)度與管理

現(xiàn)在人們好像都很熱衷于談"去中心化",也許是區(qū)塊鏈帶起的這個潮流关顷。但是"中心化"在大數(shù)據(jù)領(lǐng)域還是很重要的糊秆,至少目前來說是的。

  • 分布式的集群管理需要有個組件去分配調(diào)度資源給各個節(jié)點议双,這個東西叫yarn;

  • 需要有個組件來解決在分布式環(huán)境下"鎖"的問題痘番,這個東西叫zookeeper;

  • 需要有個組件來記錄任務(wù)的依賴關(guān)系并定時調(diào)度任務(wù)平痰,這個東西叫azkaban汞舱。

當(dāng)然這些“東西”并不是唯一的,其實都是有很多替代品的宗雇,我這里只舉了幾個比較常用的例子昂芜。

說兩句

回答完這個問題,準(zhǔn)備說點其他的逾礁。最近想了很久说铃,準(zhǔn)備開始寫一系列的文章,記錄這些年來的所得所想嘹履,感覺內(nèi)容比較多不知從哪里開始腻扇,就畫了文章開頭的思維導(dǎo)圖確定了大的方向,大家都知道大數(shù)據(jù)的主流技術(shù)變化迭代很快砾嫉,不斷會有新的東西加入幼苛,所以這張圖里內(nèi)容也會根據(jù)情況不斷添加。細(xì)節(jié)的東西我會邊寫邊定焕刮,大家也可以給我一些建議舶沿,我會根據(jù)寫的內(nèi)容實時更新這張圖以及下面的目錄。

關(guān)于分組

上面的大數(shù)據(jù)組件分組其實是比較糾結(jié)的配并,特別是作為一個有強迫癥的程序猿括荡,有些組件好像放在其他組也可以,而且我又不想要分太多的組看起來會很亂溉旋,所以上面這張圖的分組方式會稍主觀一些畸冲。分組方式肯定不是絕對的。

舉個例子观腊,像kafka這種消息隊列一般不會和其它的數(shù)據(jù)庫或者像HDFS這種文件系統(tǒng)放在一起邑闲,但是它們同樣都具備有分布式持久化存儲的功能,所以就把它們放在一塊兒了梧油;還有openTsDB這種時序數(shù)據(jù)庫苫耸,說是數(shù)據(jù)庫實際上只是基于HBase上的一個應(yīng)用,我覺得這個東西更側(cè)重于查詢和以及用何種方式存儲儡陨,而不在于存儲本身褪子,所以就主觀地放在了“分布式計算與查詢”這一類量淌,還有OLAP的工具也同樣放在了這一組。

同樣的情況還存在很多褐筛,大家有異議也可以說出來討論下类少。

目的

大家都知道大數(shù)據(jù)的技術(shù)日新月異,作為一個程序猿想要保持競爭力就必須得不斷地學(xué)習(xí)渔扎。寫這些文章的目的比較簡單硫狞,一是可以當(dāng)做一個筆記,梳理知識點晃痴;二是希望能幫到一些人了解學(xué)習(xí)大數(shù)據(jù)残吩。每一篇的篇幅不會太長,閱讀時間控制在5到10分鐘倘核。我的公眾號大叔據(jù)泣侮,會同步更新。喜歡看公眾號文章的同學(xué)可以關(guān)注下紧唱,文章的篇幅不會太長活尊,不會占用你太多的閱讀時間,每天花一點時間學(xué)習(xí)漏益,長期積累總是會有收獲的蛹锰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绰疤,隨后出現(xiàn)的幾起案子铜犬,更是在濱河造成了極大的恐慌,老刑警劉巖轻庆,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癣猾,死亡現(xiàn)場離奇詭異,居然都是意外死亡余爆,警方通過查閱死者的電腦和手機纷宇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾方,“玉大人像捶,你說我怎么就攤上這事∽叮” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵唆垃,是天一觀的道長五芝。 經(jīng)常有香客問我,道長辕万,這世上最難降的妖魔是什么枢步? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任沉删,我火速辦了婚禮,結(jié)果婚禮上醉途,老公的妹妹穿的比我還像新娘矾瑰。我一直安慰自己,他們只是感情好隘擎,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布殴穴。 她就那樣靜靜地躺著,像睡著了一般货葬。 火紅的嫁衣襯著肌膚如雪采幌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天震桶,我揣著相機與錄音休傍,去河邊找鬼。 笑死蹲姐,一個胖子當(dāng)著我的面吹牛磨取,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柴墩,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忙厌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拐邪?” 一聲冷哼從身側(cè)響起慰毅,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扎阶,沒想到半個月后汹胃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡东臀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年着饥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惰赋。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡宰掉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赁濒,到底是詐尸還是另有隱情轨奄,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布拒炎,位于F島的核電站挪拟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏击你。R本人自食惡果不足惜玉组,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一谎柄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惯雳,春花似錦朝巫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸵钝,卻和暖如春糙臼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恩商。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工变逃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人怠堪。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓揽乱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粟矿。 傳聞我的和親對象是個殘疾皇子凰棉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容