給剛玩Hadoop的朋友一些建議

2022-04-03 06:07:52 字數 3030 閱讀 4814

隨著兩會中間央視新聞天天說大資料,很多人紛紛開始關注大資料和hadoop以及資料探勘和資料視覺化了,我現在創業,遇到很多傳統資料行業往hadoop上面去轉型的公司和個人,提了很多問題,大多數問題還都是差不多的。所以我想整理一些,也可能是很多人都關注的問題。

關於hadoop版本的選擇?

目前為止,作為半隻腳邁進hadoop大門的人,我建議大家還是選擇hadoop 1.x用。可能很多人會說,hadoop都出到2.4,為啥還用1.x呢,說這話一聽就沒玩過hadoop。

理由一: hadoop 1.x和2.x是完全兩個不同的東西,並不是像說單機的webserver從1.0公升級到2.0那麼簡單的事情。也不是說我現在用的mysql 5.0,只要編譯乙個新版本就直接無縫遷移到5.5的事情。hadoop從1.0過度到2.0是整個架構體系全部推翻重寫的。從實現方式到使用者介面完全是兩個完全不同的東西,不要簡單的認為那不過就像nginx從0.8公升級到1.4一樣。所以我給的建議是,生產環境用1.x,實驗環境部署2.x作為熟悉使用。

理由二: 依然是,hadoop不是webserver,分布式系統儘管hadoop實現出來了,但是他仍然是非常複雜的一套體系,單說hdfs儲存,以前hadoop 0.20.2想公升級到0.20.203,首先你需要在所有節點部署上新版的hadoop,然後停止整個集群的所有服務,做好元資料備份,然後做hdfs公升級,還不能保證hdfs一定能公升級成功。這樣公升級一次的代價是很大的,停服務不說,萬一公升級不成功能不能保證元資料完整無誤都是不可預知的。遠比你想象的麻煩的多得多得多。千萬不要以為有了cloudera manager或者其他管理軟體你就真的可以自動化運維了,部署hadoop只是萬里長征的第一步而已。

理由三: hadoop 2.x目前很不穩定,bug比較多,更新迭代速度太快,如果你想選擇2.x,想清楚再做決定,這玩意不是說你選擇新的版本就萬無一失了,openssl多少年了,還出現了心臟滴血的漏洞,何況剛出來才不到一年的hadoop2,要知道,hadoop公升級到1.0用了差不多7,8年的時間,而且經過了無數大公司包括yahoo,facebook,bat這樣的公司不停的更新,修補,才穩定下來。hadoop2才出現不到一年,根本沒有經過長期穩定的測試和執行,看最近hadoop從2.3公升級到2.4只用了乙個半月,就修復了400多個bug。

所以,不建議大家現在直接在生產集群就上2.x,再等等看吧,等穩定了再上也不遲。如果大家關注apache jira的話,可以看到hadoop 3.0已經開始內部bug跟蹤了。

關於hadoop的人才?

我覺得企業需要從兩個方面來考慮hadoop的人才問題,乙個是開發人才,乙個是維護人才。

開發人才目前比較匱乏,基本都集中在網際網路,但這個是乙個在相對短時間內能解決的事情,隨著hadoop培訓的普及和傳播。以及hadoop本身在介面方面的完善,這樣的人才會越來越多。

維護人才我覺得網際網路外的行業一段時間內基本不用考慮,不是太多了,而是根本沒有。hadoop和雲計算最後拼的就是運維,大規模分布式系統的運維人才極難培養。特別是devops,本身devops就很稀缺,而在稀缺人才中大部分又是用puppet, fabric去搞web運維的,轉向分布式系統運維難度還是有的。所以這種人才很難招聘,也很難培養。參看左耳朵耗子的infoq訪談 

然後你需要明確自己想要的開發人才型別,打個比方hadoop就好象是windows或者linux作業系統,在這個作業系統上,既可以用photoshop畫圖,又可以用3dmax做動畫,也可以用office處理**,但是應用軟體所實現的目的是不一樣的。這還是需要cto,cio對大資料和hadoop及周邊應用有個起碼的了解。不要把hadoop跟mysql php或者傳統的j2ee做模擬,認為沒什麼難的,大不了外包。完全不是這麼回事。

關於hadoop的培訓內容?

經過幾家企業的hadoop內部培訓,我發現剛轉型企業都有乙個問題是貪多。想做一次培訓把hadoop和周邊所有東西都了解透了,比較典型的是我最近去上海培訓的乙個公司,從hadoop到hbase到mahout到分詞到spark storm全要聽。然後培訓機構就只能找幾個老師分別講不同的內容,我覺得這種培訓對企業的意義不大,頂多就是給員工乙個扎堆睡午覺的機會。

第一、hadoop就不是一兩次講課就能搞明白的東西,除了理論知識,還需要大量的實踐經驗的支援。

第二、每個hadoop生態元件都是乙個很複雜的玩意,使用確實簡單,但是要真正理解每乙個元件沒那麼容易。尤其是mahout,spark,r這些涉及大量統計學和數學理論的玩意,你叫一幫搞產品的,毫無程式設計和統計學背景的人來聽課,他們真的只能睡午覺,我都覺得讓他們過來聽hadoop是很殘忍的事情,明明聽不懂,因為領導在旁邊,還不得不努力堅持不睡覺。

第三、每個人擅長的領域不同,沒有任何乙個老師既能講windows伺服器運維,又能講excal高階技巧還能講3dmax動畫photoshop繪圖的。而培訓機構為了搶單,往往承諾企業找幾個老師一起講,企業也往往覺得,一樣的**,我把所有都聽了,多爽啊。其實不然,每個老師的講課風格,知識點水平,內容設計都是不同的,雞肉,麵粉,蔬菜放在一起不一定是**雞和皮帶面,也很有可能是速食麵,最後搞得食之無味棄之可惜。所以企業在選擇做培訓的時候一定要有的放矢,不要搞大而全,浪費資源不說,還毫無效果。可以分開幾種不同的培訓方向,找不同的,專業性強的培訓機構來完成。當然,這也需要cto,cio具有一定的想法和眼光,更多的是,起碼你作為領導者,應該比別人了解的更多一點,不是說技術細節上的,而是技術方向上的把握要比員工更精準。

關於與傳統業務的對接?

這個也是很多人關心的,特別是傳統企業,之前用的是oracle,大量的資料存放在裡面,一下子用hadoop替代是不可能的。這個我覺得就屬於想多了,hadoop說白了是離線分析處理工具,目的不是代替你的資料庫,事實上也根本不可能代替關係型資料庫。他所作的是關係型資料庫做不了的髒活累活,是原有業務架構的補充,而不是替換者。

而且這種輔助和替換是逐步完成的,不能一蹴而就,在我所認知的範圍內,沒有任何一家公司上來就說我直接把mysql不用了,直接上hadoop,碰上這樣的,我首先會讚嘆他的決心,然後我拒絕給他出方案,我會明確告訴他,這樣是不可能的。

hadoop提供了多種工具給大家做傳統資料庫業務的對接,除了sqoop,你還可以自己寫,hadoop介面很簡單的,jdbc介面也很簡單的。

給學Hadoop的同學一些建議

1 讀書 英文原版電子書籍已在附件中 1 hadoop in action 2 hadoop the definitive guide 2nd edition 權威指南 3 pro hadoop 2 看 最基本的就是wordcount,更直接的是nutch的原始碼 hadoop是doug cutti...

給最近要離職的朋友一些建議

很短,自己看看,愛信不信。1 不要裸辭 別整天以為你能找到更好的。即使你能找到更好的,中間的空閒的精神壓力會讓你選擇不咋地的工作。閒下來實在是太舒服了,也會讓你不想找工作。2 提前選好三家想去的企業,非常有針對性準備。為什麼是三家?因為你未必進得去。為什麼只選三家?因為精力有限,你不可能可以了解這麼...

對初學LoadRunner朋友們的一些建議

隨著internet的普及與迅速發展,企業業務量的迅速加大,資料大集中成為一種趨勢,it系統承載的負荷越來越重,系統效能的好壞嚴重的影響了企業對外提供的服務質量。從而對it系統的效能進行測試和調優引起企業的重視,進而效能測試工程師成為it市場的 香悖悖 並且效能測試有著極高的技術挑戰。於是吸引了大量...