大數據學習路線
下面和大家講一下大數據學習的路線,幫助大家快速進入大數據行業。我會結合自己的實際經歷還說明學習路線。該路線針對的對象是零基礎小白,目標是到初中級大數據工程師,要求掌握數據建模,數據存儲,數據存儲,數據傳輸,數據分析等能力達到大數據崗位的應聘標准。
(一)Java基礎和web開發
很多人問過我,學大數據要不要學Java,我的答案是肯定的。首先Java是一門面向對象的編程語言,也是一門應用非常之廣的語言,對於零基礎的小白必須先有一些基本的編碼能力和面向對象編程的思想。其次很多框架的底層就是用Java進行開發的,比如Hadoop,如果想要更近一步,源碼是要看的。所以學習Java基礎是十分必要的。Java基礎重點包括:
- Java常用類【特別是字符串處理相關的類】
- 異常處理
- 集合泛型
- IO流
- 多線程
- 反射
- 網絡編程
- 常見設計模式
- JVM【難點+重點,但比較花時間】
那么JavaWeb開發要不要會呢?我的建議是了解就行,了解常見的SSM框架,了解Web項目大致的開發流程,對整個軟件的開發有一個感性的認識,這樣就足夠了。當然學有余力請繼續深入。
(二)工具類
軟件開發都繞不開使用別人的輪子,好的工具讓我們開發效率大大提升,下面工具必須掌握:
編輯器:Eclipse + IDEA
項目構建工具:Maven + Gradle(有余力)
數據庫:Mysql【初期先了解增刪改查,后面有時間能多深入就多深入】
操作系統:Linux【常見命令會就行】
腳本語言:Shell【看得懂就行】
虛擬機:VMware 創建-克隆虛擬機,拍攝-還原快照【操作過就行】
(三)Hadoop生態系統
- HDFS:學會搭建完全分布式集群,知道如何根據業務編寫MapReduce程序,並放到集群上運行
- YARN:知道它是個資源管理器和k8s一樣,熟悉Job提交的過程
- Mapreduce:編寫業務程序【熟悉一些數據傾斜的解決方案和底層Shuffle過程】
- Zookeeper:分布式協調框架【知道Zookeeper選舉機制和常用命令】
- Hive:數據倉庫,底層是MapReduce【重點掌握:HQL語句書寫,窗口函數,多做一些案例總結自己的套路,優化也要了解一下】
- HBase:超大型分布式數據庫,經常用來做實時查詢【了解HBase架構,RowKey設計原則,后面開發用到再來深入】
- Flume:數據傳輸框架【知道Flume組成,攔截器和選擇器使用】
- Kafka:消息緩存框架【Kafka架構-壓測-監控-ISR同步隊列-事務-高效讀取】
- Sqoop:關系型數據庫和HDFS,HBase之間數據的傳輸框架
- Ambari: 用於配置、管理和監視Hadoop集群,基於Web,界面友好
- Impala: 對存儲在Apache Hadoop的HDFS,HBase的數據提供直接查詢互動的SQL
(四)Spark生態
到這里又要學習一門新的編程語言Scala,初入Scala可能會對它的語法結構產生不習慣,熟悉之后你會發現Java代碼是很繁瑣的。編程語言是什么不重要,關鍵是背后的思想和邏輯才重要。
Scala:了解基礎語法、函數式編程和隱式轉換就行
Spark:可以看作是對Hadoop框架的優化,它是基於內存進行計算的,性能提高很多。【熟悉Spark部署方式-提交流程-參數設置-RDD血統-寬窄依賴-轉換和行動算子-廣播變量和累加器-性能調優】
Spark-Sql:spark中負責和數據庫交互的模塊【熟悉DataFrame-DataSet,SQL語句書寫,UDF和UDTF函數使用】
Spark-Streaming:spark中負責流式計算的模塊【了解流式計算的原理,背壓機制,窗口函數】
(五)Flink框架
Flink是目前最火的處理流式數據的框架應掌握一下內容
相關資料
本文配套GitHub:https://github.com/zhutiansama/FocusBigData
本文配套公眾號:FocusBigData
回復【大數據面經】【大數據面試經驗】【大數據學習路線圖】會有驚喜哦