學習大數據沒有零基礎入門,首先你要成為一名工程師 在技術論壇中或知乎上,看到近幾萬的朋友都在疑惑,學習Java應該選擇什麼發展方向,這個咱們在之前的文章中有提到過,Java發展在領域上有三個選擇方向: JavaEE,主要應用於企業級應用開發;安卓開發方向;嵌入式應用開發方向。在此建議大家選擇Java ...
學習大數據沒有零基礎入門,首先你要成為一名工程師
在技術論壇中或知乎上,看到近幾萬的朋友都在疑惑,學習Java應該選擇什麼發展方向,這個咱們在之前的文章中有提到過,Java發展在領域上有三個選擇方向:
JavaEE,主要應用於企業級應用開發;安卓開發方向;嵌入式應用開發方向。在此建議大家選擇JavaEE方向,因為應用非常廣泛,崗位設置也比較多。
Java的職業發展規劃之路我們也曾在(一文闡述Java從初級到高級的學習之路——白老師分享篇(2)
)詳細列舉,這裡就不一一列舉了。
但我們從來沒有討論過學習Java,難道這輩子就只能做Java後端開發嗎?只能在這條路上奮鬥到底嗎?難道中途沒有其他的選擇嗎?
偶然認識的一個朋友,最開始是從事Java後端開發的,後來他在業餘時間自學成功轉入大數據行業,現在是一名大數據工程師,待遇也比之前好更多。前提是他是一名Java後端開發。
大數據是我們如今比較火的一個發展方向,但是很多培訓機構有提到幾個月速成的,小編覺得不是特別靠譜。
原因有以下:
-
大數據是一個新生行業,還不太成熟。
-
Java發展了將近20年,也沒有說幾個月速成的,最多也就是帶你入門,讓你對Java的知識結構體系有一個清晰的認知,在後期的工作實踐期間成長的速度更快。
-
大數據的起點要高,並不是所謂的零基礎就可以入門的。
我們接下來講述的有關大數據的學習是有條件限制的,首先你需要是一名普通的工程師,如果你是Java工程師的話更好,但如果你是小白的話,那就只能成為一名工程師的後再來學習大數據吧。
一、認識大數據
大數據本質其實也是數據,不過也包括了些新的特征,
-
數據來源廣;
-
數據格式多樣化(結構化數據、非結構化數據、Excel文件等);
-
數據量大(最少也是TB級別的、甚至可能是PB級別);
-
數據增長速度快。
而針對以上新的特征需要考慮很多問題:
例如,數據來源廣,該如何採集彙總?採集彙總之後,又該存儲呢?數據存儲之後,該如何通過運算轉化成自己想要的結果呢?
對於這些問題,我們需要有相對應的知識解決。
二、大數據所需技能要求
Python語言:編寫一些腳本時會用到。
Scala語言:編寫Spark程式的最佳語言,當然也可以選擇用Python。
Ozzie,azkaban:定時任務調度的工具。
Hue,Zepplin:圖形化任務執行管理,結果查看工具。
Allluxio,Kylin等:通過對存儲的數據進行預處理,加快運算速度的工具。
必須掌握的技能:
Java高級(虛擬機、併發)、Linux 基本操作、Hadoop(HDFS+MapReduce+Yarn )、 HBase(JavaAPI操作+Phoenix )、Hive(Hql基本操作和原理理解)、 Kafka、Storm/JStorm、Scala、Python、Spark (Core+sparksql+Spark streaming ) 、輔助小工具(Sqoop/Flume/Oozie/Hue等)
高階技能6條:
機器學習演算法以及mahout庫加MLlib、 R語言、Lambda 架構、Kappa架構、Kylin、Alluxio
三、學習規劃
每天需要有3個小時的學習時間,周末的時候需要10小時,如果做不到的話,只能是
第一階段(基礎階段)
-
Linux學習
Linux操作系統介紹與安裝、Linux常用命令、Linux常用軟體安裝、Linux網路、 防火牆、Shell編程等。
-
Java 高級學習(《深入理解Java虛擬機》、《Java高併發實戰》)
掌握多線程、掌握併發包下的隊列、掌握JVM技術、掌握反射和動態代理、瞭解JMS。
-
Zookeeper學習
Zookeeper分散式協調服務介紹、Zookeeper集群的安裝部署、Zookeeper數據結構、命令。
第二階段(攻堅階段)
Hadoop、Hive、HBase、Scala、Spark、Python
第三階段(輔助工具工學習階段)
Sqoop、Flume、Oozie、Hue這些工具的學習主要在CSDN,51CTO以及官網都可以學習。
四、學習資源推薦
-
Apache 官網(//apache.org/)
-
Stackoverflow(https://stackoverflow.com/)
-
Github(https://github.com/)
-
About 雲 ://www.aboutyun.com/
-
CSDN(//www.csdn.net/)
-
51CTO (//www.51cto.com/)
總結
在技術行業裡面,每天都會有新的東西出現,需要關註最新技術動態,不斷學習。任何一般技術都是先學習理論,然後在實踐中不斷完善理論的過程。
-
如果你覺得自己看書效率太慢,你可以網上搜集一些課程。
-
快速學習的能力、解決問題的能力、溝通能力在這個行業是真的非常重要的指標。
-
要善於使用StackOverFlow和Google來幫助你學習過程遇到的問題。
-
視頻課程推薦:可以去萬能的淘寶購買一些視頻課程,你輸入“大數據視頻課程”,會出現很多,多購買幾份(100塊以內可以搞定),然後選擇一個適合自己的。
以上是我們對大數據學習的總結,當然我們也提到了,並不是說零基礎的就可以直接學習,需要有編程的基礎,要先掌握扎實的編程基礎,在此建議學習Java,成為一名工程師的時候,有一定編程經驗,自學起來也相對比開始要簡單一點,然後對大數據有興趣或者想要進入這個行業的就可以去學習了。