正文:html
大數據本質也是數據,可是又有了新的特徵,包括數據來源廣、數據格式多樣化(結構化數據、非結構化數據、Excel文件、文本文件等)、數據量大(最少也是TB級別的、甚至多是PB級別)、數據增加速度快等。java
針對以上主要的4個特徵咱們須要考慮如下問題:linux
數據來源廣,該如何採集彙總?,對應出現了Sqoop,Cammel,Datax等工具。nginx
數據採集以後,該如何存儲?,對應出現了GFS,HDFS,TFS等分佈式文件存儲系統。git
因爲數據增加速度快,數據存儲就必須能夠水平擴展。github
數據存儲以後,該如何經過運算快速轉化成一致的格式,該如何快速運算出本身想要的結果?算法
對應的MapReduce這樣的分佈式運算框架解決了這個問題;可是寫MapReduce須要Java代碼量很大,因此出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;sql
普通的MapReduce處理數據只能一批一批地處理,時間延遲太長,爲了實現每輸入一條數據就能獲得結果,因而出現了Storm/JStorm這樣的低時延的流式計算框架;shell
可是若是同時須要批處理和流處理,按照如上就得搭兩個集羣,Hadoop集羣(包括HDFS+MapReduce+Yarn)和Storm集羣,不易於管理,因此出現了Spark這樣的一站式的計算框架,既能夠進行批處理,又能夠進行流處理(實質上是微批處理)。數據庫
然後Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。
爲了提升工做效率,加快運速度,出現了一些輔助工具:
以上大體就把整個大數據生態裏面用到的工具所解決的問題列舉了一遍,知道了他們爲何而出現或者說出現是爲了解決什麼問題,進行學習的時候就有的放矢了。
大數據方向的工做目前主要分爲三個主要方向:
附上大數據工程師技能圖:
必須掌握的技能11條
高階技能6條
假設天天能夠抽出3個小時的有效學習時間,加上週末天天保證10個小時的有效學習時間;
3個月會有(21*3+4*2*10)*3=423小時的學習時間。
第一階段(基礎階段)
1)Linux學習(跟鳥哥學就ok了)—–20小時
官網:https://www.centos.org/download/
中文社區:http://www.linuxidc.com/Linux/2017-09/146919.htm
2)Java 高級學習(《深刻理解Java虛擬機》、《Java高併發實戰》)—30小時
官網:https://www.java.com/zh_CN/
中文社區:http://www.java-cn.com/index.html
3)Zookeeper學習(能夠參照這篇博客進行學習:http://www.cnblogs.com/wuxl360/p/5817471.html)
官網:http://zookeeper.apache.org/
中文社區:http://www.aboutyun.com/forum-149-1.html
第二階段(攻堅階段)
4)Hadoop (《Hadoop 權威指南》)—80小時
HDFS
MapReduce
MapReduce的Java應用開發
官網:http://hadoop.apache.org/
中文文檔:http://hadoop.apache.org/docs/r1.0.4/cn/
中文社區:http://www.aboutyun.com/forum-143-1.html
5)Hive(《Hive開發指南》)–20小時
Hive 基本概念
Hive 基本操做
Hive 執行過程分析及優化策略
官網:https://hive.apache.org/
中文入門文檔:http://www.aboutyun.com/thread-11873-1-1.html
中文社區:http://www.aboutyun.com/thread-7598-1-1.html
6)HBase(《HBase權威指南》)—20小時
官網:http://hbase.apache.org/
中文文檔:http://abloz.com/hbase/book.html
中文社區:http://www.aboutyun.com/forum-142-1.html
7)Scala(《快學Scala》)–20小時
官網:http://www.scala-lang.org/
初級中文教程:http://www.runoob.com/scala/scala-tutorial.html
8)Spark (《Spark 權威指南》)—60小時
Spark core
RDD
Spark SQL and DataFrame/DataSet
Spark Streaming
Structured Streaming
其餘(MLlib and GraphX )
這個部分通常工做中若是不是數據挖掘,機器學習通常用不到,能夠等到須要用到的時候再深刻學習。
第三階段(輔助工具工學習階段)
11)Sqoop(CSDN,51CTO ,以及官網)—20小時
推薦學習博客:http://student-lp.iteye.com/blog/2157983
官網:http://sqoop.apache.org/
12)Flume(CSDN,51CTO ,以及官網)—20小時
推薦學習博客:http://www.aboutyun.com/thread-8917-1-1.html
官網:http://flume.apache.org
13)Oozie(CSDN,51CTO ,以及官網)–20小時
推薦學習博客:http://www.infoq.com/cn/articles/introductionOozie
官網:http://oozie.apache.org/
14)Hue(CSDN,51CTO ,以及官網)–20小時
推薦學習博客:http://ju.outofmemory.cn/entry/105162
官網:http://gethue.com/
第四階段(不斷學習階段)
天天都會有新的東西出現,須要關注最新技術動態,不斷學習。任何通常技術都是先學習理論,而後在實踐中不斷完善理論的過程。
備註
1)若是你以爲本身看書效率太慢,你能夠網上搜集一些課程,跟着課程走也OK 。若是看書效率不高就很網課,相反的話就本身看書。
2)企業目前更傾向於使用Spark進行微批處理,Storm只有在對時效性要求極高的狀況下,纔會使用,因此能夠作了解。重點學習Spark Streaming。
3)快速學習的能力、解決問題的能力、溝通能力**真的很重要。
4)要善於使用StackOverFlow和Google(遇到解決不了的問題,先Google,若是Google找不到解決方能就去StackOverFlow提問,通常印度三哥都會在2小時內回答你的問題)。
/*
5)視頻課程推薦:
能夠去萬能的淘寶購買一些視頻課程,你輸入「大數據視頻課程」,會出現不少,多購買幾份(100塊之內能夠搞定),而後選擇一個適合本身的。我的認爲小象學院的董西成和陳超的課程含金量會比較高。\
*/