關於Hadoop版本的選擇?
php
目前爲止,做爲半隻腳邁進Hadoop大門的人,我建議你們仍是選擇Hadoop 1.x用。可能不少人會說,Hadoop都出到2.4,爲啥還用1.x呢,說這話一聽就沒玩過hadoop。mysql
理由一: 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做爲熟悉使用。
linux
理由二: 依然是,Hadoop不是webserver,分佈式系統儘管Hadoop實現出來了,可是他仍然是很是複雜的一套體系,單說HDFS存儲,之前Hadoop 0.20.2想升級到0.20.203,首先你須要在全部節點部署上新版的Hadoop,而後中止整個集羣的全部服務,作好元數據備份,而後作HDFS升級,還不能保證HDFS必定能升級成功。這樣升級一次的代價是很大的,停服務不說,萬一升級不成功能不能保證元數據完整無誤都是不可預知的。遠比你想象的麻煩的多得多得多。千萬不要覺得有了Cloudera Manager或者其餘管理軟件你就真的能夠自動化運維了,部署Hadoop只是萬里長征的第一步而已。
nginx
理由三: Hadoop 2.x目前很不穩定,Bug比較多,更新迭代速度太快,若是你想選擇2.x,想清楚再作決定,這玩意不是說你選擇新的版本就萬無一失了,Openssl多少年了,還出現了心臟滴血的漏洞,況且剛出來纔不到一年的Hadoop2,要知道,Hadoop升級到1.0用了差很少7,8年的時間,並且通過了無數大公司包括Yahoo,Facebook,BAT這樣的公司不停的更新,修補,才穩定下來。Hadoop2纔出現不到一年,根本沒有通過長期穩定的測試和運行,看最近Hadoop從2.3升級到2.4只用了一個半月,就修復了400多個bug。
web
因此,不建議你們如今直接在生產集羣就上2.x,再等等看吧,等穩定了再上也不遲。若是你們關注Apache JIRA的話,能夠看到Hadoop 3.0已經開始內部bug跟蹤了。
sql
關於Hadoop的人才?
數據庫
我以爲企業須要從兩個方面來考慮hadoop的人才問題,一個是開發人才,一個是維護人才。
編程
開發人才目前比較匱乏,基本都集中在互聯網,但這個是一個在相對短期內能解決的事情,隨着Hadoop培訓的普及和傳播。以及Hadoop自己在接口方面的完善,這樣的人才會愈來愈多。
windows
維護人才我以爲互聯網外的行業一段時間內基本不用考慮,不是太多了,而是根本沒有。Hadoop和雲計算最後拼的就是運維,大規模分佈式系統的運維人才極難培養。特別是DevOps,自己DevOps就很稀缺,而在稀缺人才中大部分又是用puppet, fabric去搞web運維的,轉向分佈式系統運維難度仍是有的。因此這種人才很難招聘,也很難培養。參看左耳朵耗子的InfoQ訪談 http://www.infoq.com/cn/articles/chenhao-on-cloud。服務器
而後你須要明確本身想要的開發人才類型,打個比方Hadoop就好象是windows或者linux操做系統,在這個操做系統上,既能夠用photoshop畫圖,又能夠用3dmax作動畫,也能夠用Office處理表格,可是應用軟件所實現的目的是不同的。這仍是須要CTO,CIO對大數據和Hadoop及周邊應用有個起碼的瞭解。不要把Hadoop跟mysql php或者傳統的J2EE作類比,認爲沒什麼難的,大不了外包。徹底不是這麼回事。
關於Hadoop的培訓內容?
通過幾家企業的Hadoop內部培訓,我發現剛轉型企業都有一個問題是貪多。想作一次培訓把hadoop和周邊全部東西都瞭解透了,比較典型的是我最近去上海培訓的一個公司,從Hadoop到HBase到Mahout到分詞到Spark Storm全要聽。而後培訓機構就只能找幾個老師分別講不一樣的內容,我以爲這種培訓對企業的意義不大,頂多就是給員工一個扎堆睡午覺的機會。
第1、Hadoop就不是一兩次講課就能搞明白的東西,除了理論知識,還須要大量的實踐經驗的支持。
第2、每一個Hadoop生態組件都是一個很複雜的玩意,使用確實簡單,可是要真正理解每個組件沒那麼容易。尤爲是Mahout,Spark,R這些涉及大量統計學和數學理論的玩意,你叫一幫搞產品的,毫無編程和統計學背景的人來聽課,他們真的只能睡午覺,我都以爲讓他們過來聽Hadoop是很殘忍的事情,明明聽不懂,由於領導在旁邊,還不得不努力堅持不睡覺。
第3、每一個人擅長的領域不一樣,沒有任何一個老師既能講Windows服務器運維,又能講Excal高級技巧還能講3DMax動畫PhotoShop繪圖的。而培訓機構爲了搶單,每每承諾企業找幾個老師一塊兒講,企業也每每以爲,同樣的價格,我把全部都聽了,多爽啊。其實否則,每一個老師的講課風格,知識點水平,內容設計都是不一樣的,雞肉,麪粉,蔬菜放在一塊兒不必定是大盤雞和皮帶面,也頗有多是方便麪,最後搞得食之無味棄之惋惜。因此企業在選擇作培訓的時候必定要有的放矢,不要搞大而全,浪費資源不說,還毫無效果。能夠分開幾種不一樣的培訓方向,找不一樣的,專業性強的培訓機構來完成。固然,這也須要CTO,CIO具備必定的想法和眼光,更多的是,起碼你做爲領導者,應該比別人瞭解的更多一點,不是說技術細節上的,而是技術方向上的把握要比員工更精準。
關於與傳統業務的對接?
這個也是不少人關心的,特別是傳統企業,以前用的是Oracle,大量的數據存放在裏面,一會兒用Hadoop替代是不可能的。這個我以爲就屬於想多了,Hadoop說白了是離線分析處理工具,目的不是代替你的數據庫,事實上也根本不可能代替關係型數據庫。他所做的是關係型數據庫作不了的髒活累活,是原有業務架構的補充,而不是替換者。
並且這種輔助和替換是逐步完成的,不能一蹴而就,在我所認知的範圍內,沒有任何一家公司上來就說我直接把mysql不用了,直接上Hadoop,碰上這樣的,我首先會讚歎他的決心,而後我拒絕給他出方案,我會明確告訴他,這樣是不可能的。
Hadoop提供了多種工具給你們作傳統數據庫業務的對接,除了sqoop,你還能夠本身寫,Hadoop接口很簡單的,JDBC接口也很簡單的。