零基礎轉行大資料工程師艱辛歷程記!看了讓我感慨萬千
我們相信人人都可以成為一個大資料程式設計師,現在開始,找個師兄,帶你入門,學習的路上不再迷茫。
不少想進入大資料行業的零基礎學員經常會有這樣一些疑問:零基礎應該怎麼學習?自己適合學習大資料嗎?
人生,就是在不斷地做選擇,然後在這個選擇過程中成長,讓自己從一棵小樹苗變成參天大樹。就是我們每個對大資料充滿幻想終於下定決心行動的學員的選擇,我們給了自己4個月的時間,想要在大資料這個領域汲取養分,讓自己壯大成長。分享方向,行動以前先分享下一個大資料交流分享資源群868847735 ,歡迎想學習,想轉行的,進階中你加入,現在分享我自己的經歷。
明確方向
通過國家的戰略規劃,看到BAT的大牛們都在大資料行業佈局,新聞媒體追捧這大資料行業的專案和熱點,我想如果我還沒有能力獨立判斷的時候,跟著國家政策和網際網路大佬們的步調走,這應該是錯不了的。
付諸行動
明確了方向之後,我就整裝待發,剛開始是在網路上購買了很多的視訊教程,也買了很多書籍,但是最大的問題就在於,我不知道怎麼入手,沒關係,有信心有耐心肯定能戰勝困難,我堅持了一個月,學習的節奏越來越亂,陸陸續續出現了很多的問題,沒人指導,請教了幾個業內的朋友,但對方工作繁忙,問了幾次之後就不好意思了,自學陷入了死迴圈。
意識到我學習效率的低下,以及無人指導的問題想想未來的康莊大道,咬咬牙告訴自己,一定好好好學,不然就浪費太多時間最後還會是一無所獲。
找到組織一起學習進步
大資料零基礎路線
有信心能堅持學習的話,那就當下開始行動吧!
一、大資料技術基礎
1、linux操作基礎
- linux系統簡介與安裝
- linux常用命令–檔案操作
- linux常用命令–使用者管理與許可權
- linux常用命令–系統管理
- linux常用命令–免密登陸配置與網路管理
- linux上常用軟體安裝
- linux本地yum源配置及yum軟體安裝
- linux防火牆配置
- linux高階文字處理命令cut、sed、awk
- linux定時任務crontab
2、shell程式設計
- shell程式設計–基本語法
- shell程式設計–流程控制
- shell程式設計–函式
- shell程式設計–綜合案例–自動化部署指令碼
3、記憶體資料庫redis
- redis和nosql簡介
- redis客戶端連線
- redis的string型別資料結構操作及應用-物件快取
- redis的list型別資料結構操作及應用案例-任務排程佇列
- redis的hash及set資料結構操作及應用案例-購物車
- redis的sortedset資料結構操作及應用案例-排行榜
4、布式協調服務zookeeper
- zookeeper簡介及應用場景
- zookeeper叢集安裝部署
- zookeeper的資料節點與命令列操作
- zookeeper的java客戶端基本操作及事件監聽
- zookeeper核心機制及資料節點
- zookeeper應用案例–分散式共享資源鎖
- zookeeper應用案例–伺服器上下線動態感知
- zookeeper的資料一致性原理及leader選舉機制
5、java高階特性增強
- Java多執行緒基本知識
- Java同步關鍵詞詳解
- java併發包執行緒池及在開源軟體中的應用
- Java併發包訊息隊裡及在開源軟體中的應用
- Java JMS技術
- Java動態代理反射
6、輕量級RPC框架開發
- RPC原理學習
- Nio原理學習
- Netty常用API學習
- 輕量級RPC框架需求分析及原理分析
- 輕量級RPC框架開發
二、離線計算系統
1、hadoop快速入門
- hadoop背景介紹
- 分散式系統概述
- 離線資料分析流程介紹
- 叢集搭建
- 叢集使用初步
2、HDFS增強
- HDFS的概念和特性
- HDFS的shell(命令列客戶端)操作
- HDFS的工作機制
- NAMENODE的工作機制
- java的api操作
- 案例1:開發shell採集指令碼
3、MAPREDUCE詳解
- 自定義hadoop的RPC框架
- Mapreduce程式設計規範及示例編寫
- Mapreduce程式執行模式及debug方法
- mapreduce程式執行模式的內在機理
- mapreduce運算框架的主體工作流程
- 自定義物件的序列化方法
- MapReduce程式設計案例
4、MAPREDUCE增強
- Mapreduce排序
- 自定義partitioner
- Mapreduce的combiner
- mapreduce工作機制詳解
5、MAPREDUCE實戰
- maptask並行度機制-檔案切片
- maptask並行度設定
- 倒排索引
- 共同好友
6、federation介紹和hive使用
- Hadoop的HA機制
- HA叢集的安裝部署
- 叢集運維測試之Datanode動態上下線
- 叢集運維測試之Namenode狀態切換管理
- 叢集運維測試之資料塊的balance
- HA下HDFS-API變化
- hive簡介
- hive架構
- hive安裝部署
- hvie初使用
7、hive增強和flume介紹
- HQL-DDL基本語法
- HQL-DML基本語法
- HIVE的join
- HIVE 引數配置
- HIVE 自定義函式和Transform
- HIVE 執行HQL的例項分析
- HIVE最佳實踐注意點
- HIVE優化策略
- HIVE實戰案例
- Flume介紹
- Flume的安裝部署
- 案例:採集目錄到HDFS
- 案例:採集檔案到HDFS
三、流式計算
1、Storm從入門到精通
- Storm是什麼
- Storm架構分析
- Storm架構分析
- Storm程式設計模型、Tuple原始碼、併發度分析
- Storm WordCount案例及常用Api分析
- Storm叢集部署實戰
- Storm+Kafka+Redis業務指標計算
- Storm原始碼下載編譯
- Strom叢集啟動及原始碼分析
- Storm任務提交及原始碼分析
- Storm資料傳送流程分析
- Storm通訊機制分析
- Storm訊息容錯機制及原始碼分析
- Storm多stream專案分析
- 編寫自己的流式任務執行框架
2、Storm上下游及架構整合
- 訊息佇列是什麼
- Kakfa核心元件
- Kafka叢集部署實戰及常用命令
- Kafka配置檔案梳理
- Kakfa JavaApi學習
- Kafka檔案儲存機制分析
- Redis基礎及單機環境部署
- Redis資料結構及典型案例
- Flume快速入門
- Flume+Kafka+Storm+Redis整合
四、記憶體計算體系Spark
1、scala程式設計
- scala程式設計介紹
- scala相關軟體安裝
- scala基礎語法
- scala方法和函式
- scala函數語言程式設計特點
- scala陣列和集合
- scala程式設計練習(單機版WordCount)
- scala面向物件
- scala模式匹配
- actor程式設計介紹
- option和偏函式
- 實戰:actor的併發WordCount
- 柯里化
- 隱式轉換
2、AKKA與RPC
- Akka併發程式設計框架
- 實戰:RPC程式設計實戰
3、Spark快速入門
- spark介紹
- spark環境搭建
- RDD簡介
- RDD的轉換和動作
- 實戰:RDD綜合練習
- RDD高階運算元
- 自定義Partitioner
- 實戰:網站訪問次數
- 廣播變數
- 實戰:根據IP計算歸屬地
- 自定義排序
- 利用JDBC RDD實現資料匯入匯出
- WorldCount執行流程詳解
4、RDD詳解
- RDD依賴關係
- RDD快取機制
- RDD的Checkpoint檢查點機制
- Spark任務執行過程分析
- RDD的Stage劃分
5、Spark-Sql應用
- Spark-SQL
- Spark結合Hive
- DataFrame
- 實戰:Spark-SQL和DataFrame案例
6、SparkStreaming應用實戰
- Spark-Streaming簡介
- Spark-Streaming程式設計
- 實戰:StageFulWordCount
- Flume結合Spark Streaming
- Kafka結合Spark Streaming
- 視窗函式
- ELK技術棧介紹
- ElasticSearch安裝和使用
- Storm架構分析
- Storm程式設計模型、Tuple原始碼、併發度分析
- Storm WordCount案例及常用Api分析
7、Spark核心原始碼解析
- Spark原始碼編譯
- Spark遠端debug
- Spark任務提交行流程原始碼分析
- Spark通訊流程原始碼分析
- SparkContext建立過程原始碼分析
- DriverActor和ClientActor通訊過程原始碼分析
- Worker啟動Executor過程原始碼分析
- Executor向DriverActor註冊過程原始碼分析
- Executor向Driver註冊過程原始碼分析
- DAGScheduler和TaskScheduler原始碼分析
- Shuffle過程原始碼分析
- Task執行過程原始碼分析
五、機器學習演算法
1、python及numpy庫
- 機器學習簡介
- 機器學習與python
- python語言–快速入門
- python語言–資料型別詳解
- python語言–流程控制語句
- python語言–函式使用
- python語言–模組和包
- phthon語言–面向物件
- python機器學習演算法庫–numpy
- 機器學習必備數學知識–概率論
2、常用演算法實現
- knn分類演算法–演算法原理
- knn分類演算法–程式碼實現
- knn分類演算法–手寫字識別案例
- lineage迴歸分類演算法–演算法原理
- lineage迴歸分類演算法–演算法實現及demo
- 樸素貝葉斯分類演算法–演算法原理
- 樸素貝葉斯分類演算法–演算法實現
- 樸素貝葉斯分類演算法–垃圾郵件識別應用案例
- kmeans聚類演算法–演算法原理
- kmeans聚類演算法–演算法實現
- kmeans聚類演算法–地理位置聚類應用
- 決策樹分類演算法–演算法原理
- 決策樹分類演算法–演算法實現