1、大數據技術基礎
一、linux操做基礎
linux系統簡介與安裝
linux經常使用命令–文件操做
linux經常使用命令–用戶管理與權限
linux經常使用命令–系統管理
linux經常使用命令–免密登錄配置與網絡管理
linux上經常使用軟件安裝
linux本地yum源配置及yum軟件安裝
linux防火牆配置
linux高級文本處理命令cut、sed、awk
linux定時任務crontab
二、shell編程
shell編程–基本語法
shell編程–流程控制
shell編程–函數
shell編程–綜合案例–自動化部署腳本
三、內存數據庫redis
redis和nosql簡介
redis客戶端鏈接
redis的string類型數據結構操做及應用-對象緩存
redis的list類型數據結構操做及應用案例-任務調度隊列
redis的hash及set數據結構操做及應用案例-購物車
redis的sortedset數據結構操做及應用案例-排行榜
四、布式協調服務zookeeper
zookeeper簡介及應用場景
zookeeper集羣安裝部署
zookeeper的數據節點與命令行操做
zookeeper的java客戶端基本操做及事件監聽
zookeeper核心機制及數據節點
zookeeper應用案例–分佈式共享資源鎖
zookeeper應用案例–服務器上下線動態感知
zookeeper的數據一致性原理及leader選舉機制
五、java高級特性加強
Java多線程基本知識
Java同步關鍵詞詳解
java併發包線程池及在開源軟件中的應用
Java併發包消息隊裏及在開源軟件中的應用
Java JMS技術
Java動態代理反射
六、輕量級RPC框架開發
RPC原理學習
Nio原理學習
Netty經常使用API學習
輕量級RPC框架需求分析及原理分析
輕量級RPC框架開發
2、離線計算系統
一、hadoop快速入門
hadoop背景介紹
分佈式系統概述
離線數據分析流程介紹
集羣搭建
集羣使用初步
二、HDFS加強
HDFS的概念和特性
HDFS的shell(命令行客戶端)操做
HDFS的工做機制
NAMENODE的工做機制
java的api操做
案例1:開發shell採集腳本
三、MAPREDUCE詳解
自定義hadoop的RPC框架
Mapreduce編程規範及示例編寫
Mapreduce程序運行模式及debug方法
mapreduce程序運行模式的內在機理
mapreduce運算框架的主體工做流程
自定義對象的序列化方法
MapReduce編程案例
四、MAPREDUCE加強
Mapreduce排序
自定義partitioner
Mapreduce的combiner
mapreduce工做機制詳解
五、MAPREDUCE實戰
maptask並行度機制-文件切片
maptask並行度設置
倒排索引
共同好友
六、federation介紹和hive使用
Hadoop的HA機制
HA集羣的安裝部署
集羣運維測試之Datanode動態上下線
集羣運維測試之Namenode狀態切換管理
集羣運維測試之數據塊的balance
HA下HDFS-API變化
hive簡介
hive架構
hive安裝部署
hvie初使用
七、hive加強和flume介紹
HQL-DDL基本語法
HQL-DML基本語法
HIVE的join
HIVE 參數配置
HIVE 自定義函數和Transform
HIVE 執行HQL的實例分析
HIVE最佳實踐注意點
HIVE優化策略
HIVE實戰案例
Flume介紹
Flume的安裝部署
案例:採集目錄到HDFS
案例:採集文件到HDFS
3、流式計算
一、Storm從入門到精通
Storm是什麼
Storm架構分析
Storm架構分析
Storm編程模型、Tuple源碼、併發度分析
Storm WordCount案例及經常使用Api分析
Storm集羣部署實戰
Storm+Kafka+Redis業務指標計算
Storm源碼下載編譯
Strom集羣啓動及源碼分析
Storm任務提交及源碼分析
Storm數據發送流程分析
Storm通訊機制分析
Storm消息容錯機制及源碼分析
Storm多stream項目分析
編寫本身的流式任務執行框架
二、Storm上下游及架構集成
消息隊列是什麼
Kakfa核心組件
Kafka集羣部署實戰及經常使用命令
Kafka配置文件梳理
Kakfa JavaApi學習
Kafka文件存儲機制分析
Redis基礎及單機環境部署
Redis數據結構及典型案例
Flume快速入門
Flume+Kafka+Storm+Redis整合
4、內存計算體系Spark
一、scala編程
scala編程介紹
scala相關軟件安裝
scala基礎語法
scala方法和函數
scala函數式編程特色
scala數組和集合
scala編程練習(單機版WordCount)
scala面向對象
scala模式匹配
actor編程介紹
option和偏函數
實戰:actor的併發WordCount
柯里化
隱式轉換
二、AKKA與RPC
Akka併發編程框架
實戰:RPC編程實戰
三、Spark快速入門
spark介紹
spark環境搭建
RDD簡介
RDD的轉換和動做
實戰:RDD綜合練習
RDD高級算子
自定義Partitioner
實戰:網站訪問次數
廣播變量
實戰:根據IP計算歸屬地
自定義排序
利用JDBC RDD實現數據導入導出
WorldCount執行流程詳解
四、RDD詳解
RDD依賴關係
RDD緩存機制
RDD的Checkpoint檢查點機制
Spark任務執行過程分析
RDD的Stage劃分
五、Spark-Sql應用
Spark-SQL
Spark結合Hive
DataFrame
實戰:Spark-SQL和DataFrame案例
六、SparkStreaming應用實戰
Spark-Streaming簡介
Spark-Streaming編程
實戰:StageFulWordCount
Flume結合Spark Streaming
Kafka結合Spark Streaming
窗口函數
ELK技術棧介紹
ElasticSearch安裝和使用
Storm架構分析
Storm編程模型、Tuple源碼、併發度分析
Storm WordCount案例及經常使用Api分析
七、Spark核心源碼解析
Spark源碼編譯
Spark遠程debug
Spark任務提交行流程源碼分析
Spark通訊流程源碼分析
SparkContext建立過程源碼分析
DriverActor和ClientActor通訊過程源碼分析
Worker啓動Executor過程源碼分析
Executor向DriverActor註冊過程源碼分析
Executor向Driver註冊過程源碼分析
DAGScheduler和TaskScheduler源碼分析
Shuffle過程源碼分析
Task執行過程源碼分析
5、機器學習算法
一、python及numpy庫
機器學習簡介
機器學習與python
python語言–快速入門
python語言–數據類型詳解
python語言–流程控制語句
python語言–函數使用
python語言–模塊和包
phthon語言–面向對象
python機器學習算法庫–numpy
機器學習必備數學知識–機率論
二、經常使用算法實現
knn分類算法–算法原理
knn分類算法–代碼實現
knn分類算法–手寫字識別案例
lineage迴歸分類算法–算法原理
lineage迴歸分類算法–算法實現及demo
樸素貝葉斯分類算法–算法原理
樸素貝葉斯分類算法–算法實現
樸素貝葉斯分類算法–垃圾郵件識別應用案例
kmeans聚類算法–算法原理
kmeans聚類算法–算法實現
kmeans聚類算法–地理位置聚類應用
決策樹分類算法–算法原理
決策樹分類算法–算法實現前端
下面是大數據開發的課程內容:
階段一:JavaSE開發
階段二:JavaEE開發
階段三:併發編程實戰開發
階段四:Linux精講
階段五:Hadoop生態體系
階段六:Python實戰開發
階段七:Storm實時開發
階段八:Spark生態體系
階段九:ElasticSearch
階段十:Docker容器引擎
階段十一:機器學習
階段十二:超大集羣調優
階段十三:大數據項目實戰
從上面的課程內容看,大數據開發學習要掌握java、linux、hadoop、python、storm、spark、elastic search、docker、機器學習等基礎知識。
大數據分析的課程內容:
階段一:WEB前端實戰開發
階段二:數據庫實戰
階段三:Python實戰開發
階段四:Echart數據分析
階段五:D3大數據分析
階段六:BI平臺大數據分析
階段七:SmartBI大數據分析
階段八:Sap Design Studio大數據分析
階段九:Tableau大數據分析
階段十:R語言大數據分析
階段十一:七大行業數據建模可視化分析
階段十二:大數據可視化分析項目實戰
大數據分析課程跟大數據開發不一樣,須要掌握的基礎知識也不一樣,大數據分析須要掌握的基礎有:web、數據庫、python、echarts、d三、bi、smartbi、tableau、r語言以及數據建模等知識。java
大數據學習路線
java(Java se,javaweb)
Linux(shell,高併發架構,lucene,solr)
Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)
機器學習(R,mahout)
Storm(Storm,kafka,redis)
Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)
Python(python,spark python)
雲計算平臺(docker,kvm,openstack)
名詞解釋
1、Linux
lucene: 全文檢索引擎的架構
solr: 基於lucene的全文搜索服務器,實現了可配置、可擴展並對查詢性能進行了優化,而且提供了一個完善的功能管理界面。
2、Hadoop
HDFS: 分佈式存儲系統,包含NameNode,DataNode。NameNode:元數據,DataNode。DataNode:存數數據。
yarn: 能夠理解爲MapReduce的協調機制,本質就是Hadoop的處理分析機制,分爲ResourceManager NodeManager。
MapReduce: 軟件框架,編寫程序。
Hive: 數據倉庫 能夠用SQL查詢,能夠運行Map/Reduce程序。用來計算趨勢或者網站日誌,不該用於實時查詢,須要很長時間返回結果。
HBase: 數據庫。很是適合用來作大數據的實時查詢。Facebook用Hbase存儲消息數據並進行消息實時的分析
ZooKeeper: 針對大型分佈式的可靠性協調系統。Hadoop的分佈式同步等靠Zookeeper實現,例如多個NameNode,active standby切換。
Sqoop: 數據庫相互轉移,關係型數據庫和HDFS相互轉移
Mahout: 可擴展的機器學習和數據挖掘庫。用來作推薦挖掘,彙集,分類,頻繁項集挖掘。
Chukwa: 開源收集系統,監視大型分佈式系統,創建在HDFS和Map/Reduce框架之上。顯示、監視、分析結果。
Ambari: 用於配置、管理和監視Hadoop集羣,基於Web,界面友好。
2、Cloudera
Cloudera Manager: 管理 監控 診斷 集成
Cloudera CDH:(Cloudera's Distribution,including Apache Hadoop) Cloudera對Hadoop作了相應的改變,發行版本稱爲CDH。
Cloudera Flume: 日誌收集系統,支持在日誌系統中定製各種數據發送方,用來收集數據。
Cloudera Impala: 對存儲在Apache Hadoop的HDFS,HBase的數據提供直接查詢互動的SQL。
Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供全部CDH組件的shell界面的接口,能夠在hue編寫mr。
3、機器學習/R
R: 用於統計分析、繪圖的語言和操做環境,目前有Hadoop-R
mahout: 提供可擴展的機器學習領域經典算法的實現,包括聚類、分類、推薦過濾、頻繁子項挖掘等,且可經過Hadoop擴展到雲中。
4、storm
Storm: 分佈式,容錯的實時流式計算系統,能夠用做實時分析,在線機器學習,信息流處理,連續性計算,分佈式RPC,實時處理消息並更新數據庫。
Kafka: 高吞吐量的分佈式發佈訂閱消息系統,能夠處理消費者規模的網站中的全部動做流數據(瀏覽,搜索等)。相對Hadoop的日誌數據和離線分析,能夠實現實時處理。目前經過Hadoop的並行加載機制來統一線上和離線的消息處理
Redis: 由c語言編寫,支持網絡、可基於內存亦可持久化的日誌型、key-value型數據庫。
5、Spark
Scala: 一種相似java的徹底面向對象的編程語言。node
jblas: 一個快速的線性代數庫(JAVA)。基於BLAS與LAPACK,矩陣計算實際的行業標準,並使用先進的基礎設施等全部的計算程序的ATLAS藝術的實現,使其很是快。python
Spark: Spark是在Scala語言中實現的相似於Hadoop MapReduce的通用並行框架,除了Hadoop MapReduce所具備的優勢,但不一樣於MapReduce的是job中間輸出結果能夠保存在內存中,從而不須要讀寫HDFS,所以Spark能更好的適用於數據挖掘與機器學習等須要迭代的MapReduce算法。能夠和Hadoop文件系統並行運做,用過Mesos的第三方集羣框架能夠支持此行爲。
Spark SQL: 做爲Apache Spark大數據框架的一部分,可用於結構化數據處理並能夠執行相似SQL的Spark數據查詢
Spark Streaming: 一種構建在Spark上的實時計算框架,擴展了Spark處理大數據流式數據的能力。
Spark MLlib: MLlib是Spark是經常使用的機器學習算法的實現庫,目前(2014.05)支持二元分類,迴歸,聚類以及協同過濾。同時也包括一個底層的梯度降低優化基礎算法。MLlib以來jblas線性代數庫,jblas自己以來遠程的Fortran程序。linux
Spark GraphX: GraphX是Spark中用於圖和圖並行計算的API,能夠在Spark之上提供一站式數據解決方案,能夠方便且高效地完成圖計算的一整套流水做業。web
Fortran: 最先出現的計算機高級程序設計語言,普遍應用於科學和工程計算領域。redis
BLAS: 基礎線性代數子程序庫,擁有大量已經編寫好的關於線性代數運算的程序。
LAPACK: 著名的公開軟件,包含了求解科學與工程計算中最多見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。
ATLAS: BLAS線性算法庫的優化版本。
Spark Python: Spark是由scala語言編寫的,可是爲了推廣和兼容,提供了java和python接口。
6、Python
Python: 一種面向對象的、解釋型計算機程序設計語言。
7、雲計算平臺
Docker: 開源的應用容器引擎
kvm: (Keyboard Video Mouse)算法
openstack: 開源的雲計算管理平臺項目sql