做了這么多年Java程序員,我想轉(zhuǎn)大數(shù)據(jù)了
做了這么多年Java開發(fā),如何快速轉(zhuǎn)行大數(shù)據(jù)
分享轉(zhuǎn)行經(jīng)驗(yàn)路線
對(duì)于Java程序員,大數(shù)據(jù)的主流平臺(tái)hadoop是基于Java開發(fā)的,所以Java程序員往大數(shù)據(jù)開發(fā)方向轉(zhuǎn)行從語言環(huán)境上更為順暢,另外很多基于大數(shù)據(jù)的應(yīng)用框架也是Java的,所以在很多大數(shù)據(jù)項(xiàng)目里掌握J(rèn)ava語言是有一定優(yōu)勢(shì)的。
當(dāng)然,hadoop核心價(jià)值在于提供了分布式文件系統(tǒng)和分布式計(jì)算引擎,對(duì)于大部分公司而言,并不需要對(duì)這個(gè)引擎進(jìn)行修改。這時(shí)候除了熟悉編程,你通常還需要學(xué)習(xí)數(shù)據(jù)處理和數(shù)據(jù)挖掘的一些知識(shí)。尤其是往數(shù)據(jù)挖掘工程師方向發(fā)展,則你需要掌握更多的算法相關(guān)的知識(shí)。
對(duì)于數(shù)據(jù)挖掘工程師而言,雖然也需要掌握編程工具,但大部分情況下是把hadoop當(dāng)做平臺(tái)和工具,借助這個(gè)平臺(tái)和工具提供的接口使用各種腳本語言進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)挖掘。因此,如果你是往數(shù)據(jù)挖掘工程方向發(fā)展,那么,熟練掌握分布式編程語言如scala、spark-mllib等可能更為重要。
Java程序員轉(zhuǎn)大數(shù)據(jù)工程師的學(xué)習(xí)路線圖:
***步:分布式計(jì)算框架
掌握hadoop和spark分布式計(jì)算框架,了解文件系統(tǒng)、消息隊(duì)列和Nosql數(shù)據(jù)庫,學(xué)習(xí)相關(guān)組件如hadoop、MR、spark、hive、hbase、redies、kafka等;
第二步:算法和工具
學(xué)習(xí)了解各種數(shù)據(jù)挖掘算法,如分類、聚類、關(guān)聯(lián)規(guī)則、回歸、決策樹、神經(jīng)網(wǎng)絡(luò)等,熟練掌握一門數(shù)據(jù)挖掘編程工具:Python或者Scala。目前主流平臺(tái)和框架已經(jīng)提供了算法庫,如hadoop上的Mahout和spark上的Mllib,你也可以從學(xué)習(xí)這些接口和腳本語言開始學(xué)習(xí)這些算法。
第三步:數(shù)學(xué)
補(bǔ)充數(shù)學(xué)知識(shí):高數(shù)、概率論和線代
第四步:項(xiàng)目實(shí)踐
- 1)開源項(xiàng)目:tensorflow:Google的開源庫,已經(jīng)有40000多個(gè)star,非常驚人,支持移動(dòng)設(shè)備;
- 2)參加數(shù)據(jù)競(jìng)賽
- 3)通過企業(yè)實(shí)習(xí)獲取項(xiàng)目經(jīng)驗(yàn)
如果你僅僅是做大數(shù)據(jù)開發(fā)和運(yùn)維,則可以跳過第二步和第三步,如果你是側(cè)重于應(yīng)用已有算法進(jìn)行數(shù)據(jù)挖掘,那么第三步也可以先跳過。