中國(guó)IDC圈1月28日?qǐng)?bào)道:隨著兩會(huì)中間央視新聞天天說(shuō)大數(shù)據(jù),很多人紛紛開始關(guān)注大數(shù)據(jù)和Hadoop以及數(shù)據(jù)挖掘和數(shù)據(jù)可視化了,我現(xiàn)在創(chuàng)業(yè),遇到很多傳統(tǒng)數(shù)據(jù)行業(yè)往Hadoop上面去轉(zhuǎn)型的公司和個(gè)人,提了很多問(wèn)題,大多數(shù)問(wèn)題還都是差不多的。所以我想整理一些,也可能是很多人都關(guān)注的問(wèn)題。
關(guān)于Hadoop版本的選擇?
目前為止,作為半只腳邁進(jìn)Hadoop大門的人,我建議大家還是選擇Hadoop 1.x用??赡芎芏嗳藭?huì)說(shuō),Hadoop都出到2.4,為啥還用1.x呢,說(shuō)這話一聽就沒(méi)玩過(guò)hadoop。
理由一: Hadoop 1.x和2.x是完全兩個(gè)不同的東西,并不是像說(shuō)單機(jī)的webserver從1.0升級(jí)到2.0那么簡(jiǎn)單的事情。也不是說(shuō)我現(xiàn)在用的mysql 5.0,只要編譯一個(gè)新版本就直接無(wú)縫遷移到5.5的事情。Hadoop從1.0過(guò)度到2.0是整個(gè)架構(gòu)體系全部推翻重寫的。從實(shí)現(xiàn)方式到用戶接口完全是兩個(gè)完全不同的東西,不要簡(jiǎn)單的認(rèn)為那不過(guò)就像nginx從0.8升級(jí)到1.4一樣。所以我給的建議是,生產(chǎn)環(huán)境用1.x,實(shí)驗(yàn)環(huán)境部署2.x作為熟悉使用。
理由二: 依然是,Hadoop不是webserver,分布式系統(tǒng)盡管Hadoop實(shí)現(xiàn)出來(lái)了,但是他仍然是非常復(fù)雜的一套體系,單說(shuō)HDFS存儲(chǔ),以前Hadoop 0.20.2想升級(jí)到0.20.203,首先你需要在所有節(jié)點(diǎn)部署上新版的Hadoop,然后停止整個(gè)集群的所有服務(wù),做好元數(shù)據(jù)備份,然后做HDFS升級(jí),還不能保證HDFS一定能升級(jí)成功。這樣升級(jí)一次的代價(jià)是很大的,停服務(wù)不說(shuō),萬(wàn)一升級(jí)不成功能不能保證元數(shù)據(jù)完整無(wú)誤都是不可預(yù)知的。遠(yuǎn)比你想象的麻煩的多得多得多。千萬(wàn)不要以為有了Cloudera Manager或者其他管理軟件你就真的可以自動(dòng)化運(yùn)維了,部署Hadoop只是萬(wàn)里長(zhǎng)征的第一步而已。
理由三: Hadoop 2.x目前很不穩(wěn)定,Bug比較多,更新迭代速度太快,如果你想選擇2.x,想清楚再做決定,這玩意不是說(shuō)你選擇新的版本就萬(wàn)無(wú)一失了,Openssl多少年了,還出現(xiàn)了心臟滴血的漏洞,何況剛出來(lái)才不到一年的Hadoop2,要知道,Hadoop升級(jí)到1.0用了差不多7,8年的時(shí)間,而且經(jīng)過(guò)了無(wú)數(shù)大公司包括Yahoo,F(xiàn)acebook,BAT這樣的公司不停的更新,修補(bǔ),才穩(wěn)定下來(lái)。Hadoop2才出現(xiàn)不到一年,根本沒(méi)有經(jīng)過(guò)長(zhǎng)期穩(wěn)定的測(cè)試和運(yùn)行,看最近Hadoop從2.3升級(jí)到2.4只用了一個(gè)半月,就修復(fù)了400多個(gè)bug。
所以,不建議大家現(xiàn)在直接在生產(chǎn)集群就上2.x,再等等看吧,等穩(wěn)定了再上也不遲。如果大家關(guān)注Apache JIRA的話,可以看到Hadoop 3.0已經(jīng)開始內(nèi)部bug跟蹤了。
關(guān)于Hadoop的人才?
我覺(jué)得企業(yè)需要從兩個(gè)方面來(lái)考慮hadoop的人才問(wèn)題,一個(gè)是開發(fā)人才,一個(gè)是維護(hù)人才。
開發(fā)人才目前比較匱乏,基本都集中在互聯(lián)網(wǎng),但這個(gè)是一個(gè)在相對(duì)短時(shí)間內(nèi)能解決的事情,隨著Hadoop培訓(xùn)的普及和傳播。以及Hadoop本身在接口方面的完善,這樣的人才會(huì)越來(lái)越多。
維護(hù)人才我覺(jué)得互聯(lián)網(wǎng)外的行業(yè)一段時(shí)間內(nèi)基本不用考慮,不是太多了,而是根本沒(méi)有。Hadoop和云計(jì)算最后拼的就是運(yùn)維,大規(guī)模分布式系統(tǒng)的運(yùn)維人才極難培養(yǎng)。特別是DevOps,本身DevOps就很稀缺,而在稀缺人才中大部分又是用puppet, fabric去搞web運(yùn)維的,轉(zhuǎn)向分布式系統(tǒng)運(yùn)維難度還是有的。所以這種人才很難招聘,也很難培養(yǎng)。參看左耳朵耗子的InfoQ訪談 http://www.infoq.com/cn/articles/chenhao-on-cloud。
然后你需要明確自己想要的開發(fā)人才類型,打個(gè)比方Hadoop就好象是windows或者linux操作系統(tǒng),在這個(gè)操作系統(tǒng)上,既可以用photoshop畫圖,又可以用3dmax做動(dòng)畫,也可以用Office處理表格,但是應(yīng)用軟件所實(shí)現(xiàn)的目的是不一樣的。這還是需要CTO,CIO對(duì)大數(shù)據(jù)和Hadoop及周邊應(yīng)用有個(gè)起碼的了解。不要把Hadoop跟mysql php或者傳統(tǒng)的J2EE做類比,認(rèn)為沒(méi)什么難的,大不了外包。完全不是這么回事。
關(guān)于Hadoop的培訓(xùn)內(nèi)容?
經(jīng)過(guò)幾家企業(yè)的Hadoop內(nèi)部培訓(xùn),我發(fā)現(xiàn)剛轉(zhuǎn)型企業(yè)都有一個(gè)問(wèn)題是貪多。想做一次培訓(xùn)把hadoop和周邊所有東西都了解透了,比較典型的是我最近去上海培訓(xùn)的一個(gè)公司,從Hadoop到HBase到Mahout到分詞到Spark Storm全要聽。然后培訓(xùn)機(jī)構(gòu)就只能找?guī)讉€(gè)老師分別講不同的內(nèi)容,我覺(jué)得這種培訓(xùn)對(duì)企業(yè)的意義不大,頂多就是給員工一個(gè)扎堆睡午覺(jué)的機(jī)會(huì)。
第一、Hadoop就不是一兩次講課就能搞明白的東西,除了理論知識(shí),還需要大量的實(shí)踐經(jīng)驗(yàn)的支持。