第一階段:linux+搜索+hadoop體系 Linux大綱 這章是基礎課程,幫你們進入大數據領域打好Linux基礎,以便更好地學習Hadoop,hbase,NoSQL,Spark,Storm,docker,kvm,openstack等衆多課程。由於企業中無一例外的是使用Linux來搭建或部署項目。 1) Linux的介紹,Linux的安裝:VMware Workstation虛擬軟件安裝過程、CentOS虛擬機安裝過程 2) 瞭解機架服務器,採用真實機架服務器部署linux 3) Linux的經常使用命令:經常使用命令的介紹、經常使用命令的使用和練習 4) Linux系統進程管理基本原理及相關管理工具如ps、pkill、top、htop等的使用; 5) Linux啓動流程,運行級別詳解,chkconfig詳解 6) VI、VIM編輯器:VI、VIM編輯器的介紹、VI、VIM扥使用和經常使用快捷鍵 7) Linux用戶和組帳戶管理:用戶的管理、組管理 8) Linux磁盤管理,lvm邏輯卷,nfs詳解 9) Linux系統文件權限管理:文件權限介紹、文件權限的操做 10) Linux的RPM軟件包管理:RPM包的介紹、RPM安裝、卸載等操做 11) yum命令,yum源搭建 12) Linux網絡:Linux網絡的介紹、Linux網絡的配置和維護 13) Shell編程:Shell的介紹、Shell腳本的編寫 14) Linux上常見軟件的安裝:安裝JDK、安裝Tomcat、安裝mysql,web項目部署 大型網站 高併發處理 經過本章的學習你們將會了解大數據的源頭,數據從何而來,繼而更好的瞭解大數據。而且經過學習何果處理大型網站高併發問題反向更深刻的學習了Linux,同時站在了更高的角度去觸探了架構。 1) 第四層負載均衡 a) Lvs負載均衡 i. 負載算法,NAT模式,直接路由模式(DR),隧道模式(TUN) b) F5負載均衡器介紹 2) 第七層負載均衡 a) Nginx b) Apache 3) Tomcat、jvm優化提升併發量 4) 緩存優化 a) Java緩存框架 i. Oscache,ehcache b) 緩存數據庫 i. Redis,Memcached 5) Lvs+nginx+tomcat+redis|memcache構建二層負載均衡千萬併發處理 6) Haproxy 7) Fastdfs小文件獨立存儲管理 8) Redis緩存系統 a) Redis基本使用 b) Redis sentinel高可用 c) Redis好友推薦算法 Lucene課程 在大數據裏面文本數據的搜索是很重要的一塊,特別是裏面的分詞技術,是後面機器學習裏面文本挖掘的基石,咱們須要深刻學習java領域裏面的搜索核心技術lucene,同時也能夠了解到百度 google這樣的搜索系統是怎麼架構實現的。 1) Lucene介紹 2) Lucene 倒排索引原理 > 3) 建索引 IndexWriter 4) 搜索 IndexSearcher 5) Query 6) Sort和 過濾 (filter) 7) 索引優化和高亮 Solr課程 接着前面lucene技術搜索,若是把lucene技術好比爲發動機,那solr就是一兩成型的汽車了。學習完solr能夠幫助你在企業裏面快速的架構搜索系統。首先Solr是基於Lucene作的,Lucene是一套信息檢索工具包,但並不包含搜索引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能,所以在使用Lucene時你仍須要關注搜索引擎系統,例如數據獲取、解析、分詞等方面的東西。而Solr的目標是打造一款企業級的搜索引擎系統,所以它更接近於咱們認識到的搜索引擎系統,它是一個搜索引擎服務,經過各類API可讓你的應用使用搜索服務,而不須要將搜索邏輯耦合在應用中。並且Solr能夠根據配置文件定義數據解析的方式,更像是一個搜索框架,它也支持主從、熱換庫等操做。還添加了飄紅、facet等搜索引擎常見功能的支持。 1) 什麼是solr 2) 爲何工程中要使用solr 3) Solr的原理 4) 如何在tomcat中運行solr 5) 如何利用solr進行索引與搜索 6) solr的各類查詢 7) solr的Filter 8) solr的排序 9) solr的高亮 10) solr的某個域統計 11) solr的範圍統計 12) solrcloud集羣搭建 Hadoop 離線計算大綱 1、初識hadoop 聽過大數據,必聽過hadoop,此部分帶領你們瞭解hadoop的用途,在大數據中的用途,以及快速搭建一個hadoop的實驗環境,在本過程當中不只將用到前面的Linux知識,並且會對hadoop的架構有深刻的理解,併爲你之後架構大數據項目打下堅實基礎。 1) Hadoop生態環境介紹 2) Hadoop雲計算中的位置和關係 3) 國內外Hadoop應用案例介紹 4) Hadoop 概念、版本、歷史 5) Hadoop 核心組成介紹及hdfs、mapreduce 體系結構 6) Hadoop 的集羣結構 7) Hadoop 僞分佈的詳細安裝步驟 8) 經過命令行和瀏覽器觀察hadoop 2、 HDFS體系結構和shell以及java操做 詳細剖析HDFS,從知曉原理到開發網盤的項目讓你們打好學習大數據的基礎,大數據之於分佈式,分佈式學習從學習分佈式文件系統(HDFS)開始。 1) HDFS底層工做原理 2) HDFS datanode,namenode詳解 3) Hdfs shell 4) Hdfs java api 3、 詳細講解Mapreduce Mapreduce能夠說是任何一家大數據公司都會用到的計算框架,也是每一個大數據工程師應該熟練掌握的,此處的學習除了老師詳細的講解理論外,會經過大量的案例讓你們完全掌握。 1) Mapreduce四個階段介紹 2) Writable 3) InputSplit和OutputSplit 4) Maptask 5) Shuffle:Sort,Partitioner,Group,Combiner 6) Reducer 4、 Mapreduce案例案例 1) 二次排序 2) 倒排序索引 3) 最優路徑 4) 電信數據挖掘之-----移動軌跡預測分析(中國棱鏡計劃) 5) 社交好友推薦算法 6) 互聯網精準廣告推送 算法 7) 阿里巴巴天池大數據競賽 《天貓推薦算法》案例 8) Mapreduce實戰pagerank算法 5、 Hadoop2.x集羣搭建 前面帶領你們開發了大量的MapReduce程序,此部分將帶來你們讓開發的程序運行在分佈式集羣中,而且運行在健壯高可用的集羣中。 1) Hadoop2.x集羣結構體系介紹 2) Hadoop2.x集羣搭建 3) NameNode的高可用性(HA) 4) HDFS Federation 5) ResourceManager 的高可用性(HA) 6) Hadoop集羣常見問題和解決方法 7) Hadoop集羣管理 分佈式數據庫 Hbase 大數據中使用Hbase的案例多的舉不勝舉,也可凸顯你們學習的必要性。即便工做多年的大數據工程師Hbase的優化也是須要好好學習的重點。 1) HBase定義 2) HBase與RDBMS的對比 3) 數據模型 4) 系統架構 5) HBase上的MapReduce 6) 表的設計 7) 集羣的搭建過程講解 8) 集羣的監控 9) 集羣的管理 10) HBase Shell以及演示 11) Hbase 樹形表設計 12) Hbase 一對多 和 多對多 表設計 13) Hbase 微博 案例 14) Hbase 訂單案例 15) Hbase表級優化 16) Hbase 寫數據優化 17) Hbase 讀數據優化 數據倉庫Hive Hive是使用sql進行計算的hadoop框架,工做中最經常使用到的部分,也是面試的重點,此部分你們將從方方面面來學習Hive的應用,任何細節都將給你們涉及到。 1) 數據倉庫基礎知識 2) Hive定義 3) Hive體系結構簡介 4) Hive集羣 5) 客戶端簡介 6) HiveQL定義 7) HiveQL與SQL的比較 8) 數據類型 9) 外部表和分區表 10) ddl與CLI客戶端演示 11) dml與CLI客戶端演示 12) select與CLI客戶端演示 13) Operators 和 functions與CLI客戶端演示 14) Hive server2 與jdbc 15) 用戶自定義函數(UDF 和 UDAF)的開發與演示 16) Hive 優化 數據遷移工具Sqoop sqoop適用於關係型數據庫和HDFS分佈式數據系統之間進行數據轉換,在企業中,是構建數據倉庫的一大工具。 1) 介紹 和 配置Sqoop 2) Sqoop shell使用 3) Sqoop-import a) DBMS-hdfs b) DBMS-hive c) DBMS-hbase 4) Sqoop-export Flume分佈式 日誌框架 Flume最先是Cloudera提供的日誌收集系統,目前是Apache下的一個孵化項目,Flume支持在日誌系統中定製各種數據發送方,用於收集數據。你們學習完此節後不但能夠掌握Flume的使用,並且能夠進行對於Flume的開發。 1) flume簡介-基礎知識 2) flume安裝與測試 3) flume部署方式 4) flume source相關配置及測試 5) flume sink相關配置及測試 6) flume selector 相關配置與案例分析 7) flume Sink Processors相關配置和案例分析 8) flume Interceptors相關配置和案例分析 9) flume AVRO Client開發 10) flume 和kafka 的整合 Zookeeper 開發 Zookeeper在分佈式集羣(Hadoop生態圈)中的地位愈來愈突出,對分佈式應用的開發也提供了極大便利,這也是這裏咱們帶領你們深刻學習 Zookeeper的緣由。本課程主要內容包括Zookeeper深刻、客戶端開發(Java編程,案例開發)、平常運維、Web界面監控。你們這裏學好Zookeeper,對後面學習其餘技術相當重要。 1) Zookeeper java api開發 2) Zookeeper rmi高可用分佈式集羣開發 3) Zookeeper redis高可用監控實現 4) Netty 異步io通訊框架 5) Zookeeper實現netty分佈式架構的高可用 項目實戰 某大型電商日誌分析和訂單管理 在實戰中學習,技術點很是多,怎麼樣實際運用這些點是咱們在自學過程當中體驗不到的。電商日誌分析包括:pv、uv,跳出率,二跳率、廣告轉化率、搜索引擎優化等,訂單模塊有:產品推薦,商家排名,歷史訂單查詢,訂單報表統計等。 項目技術架構體系: a) Web項目和雲計算項目的整合 b) Flume經過avro實時收集web項目中的日誌 c) 數據的ETL d) Hive 批量 sql執行 e) Hive 自定義函數 f) Hive和hbase整合。 g) Hbase 數據支持 sql查詢分析 h) Mapreduce數據挖掘 i) Hbase dao處理 j) Sqoop 在項目中的使用。 k) Mapreduce 定時調用和監控 第二階段:機器學習 R語言 機器學習 R自己是一款十分優秀的數據分析和數據可視化軟件,同時做爲第一代機器學習的工具,其中包括大量用於機器學習的添加包。此部分帶領你們學習R語言更是帶領你們進入機器學習的領域,機器學習算法爲主線的同時,經過案例學習將會讓你們對內容脈絡掌握的更加清晰。 1) R語言介紹,基本函數,數據類型 2) 線性迴歸 3) 樸素貝葉斯聚類 4) 決策樹分類 5) k均值聚類 a) 離羣點檢測 6) 關聯規則探索 7) 神經網絡 Mahout 機器學習 Mahout提供一些可擴展的機器學習領域經典算法的實現,不少公司會使用Mahout方便快捷地建立智能應用程序。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。Mahout經過使用 Apache Hadoop,能夠有效地擴展到雲中。被業界奉爲第二代機器學習工具。此部分事後你們不只會學習到mahout的組件並且會有項目讓你們真正把它應用到工做中。 1) 介紹爲何使用它,它的前景 a) 簡單介紹Mahout b) 簡單介紹機器學習 c) 實例演示Mahout單機推薦程序 2) 配置安裝(hadoop2.x版本的)編譯安裝步驟說明 a) 命令行中測試運行協同過濾概念 3) 推薦 a) 講解基於用戶的協同過濾 b) 講解基於物品的協同過濾 4) 分類 a) 分類概念 b) 分類的應用及Mahout分類優點 c) 分類和聚類、推薦的區別 d) 分類工做原理 e) 分類中概念術語 f) 分類項目工做流 g) 如何定義預測變量 h) 線性分類器的介紹,及貝葉斯分類器 i) 決策樹分類器的介紹,及隨機森林分類器 j) 如何使用貝葉斯分類器和隨機森林分類器的代碼展現 5) 聚類 a) 聚類概念 b) 聚類步驟流程 c) 聚類中的距離測度 d) 講解K-means聚類 e) K-means聚類算法展現 f) 聚類其餘算法 g) 介紹TF-IDF h) 歸一化 i) 微博聚類案例 項目實戰 微博營銷數據挖掘項目 使用數據來自微博平臺,項目目標經過機器學習所學知識挖掘目標客戶羣體,找到代言人進行微博營銷廣告投放。 項目技術架構體系: a) 分佈式平臺 Hadoop,MapReduce b) 數據採集 Flume c) 數據清洗 ETL d) 數據庫 Hbase,Redis e) 機器學習 Mahout 第三階段:storm流式計算 redis緩存 系統課程大綱 1) redis特色、與其餘數據庫的比較 2) 如何安裝redis 3) 如何使用命令行客戶端 4) redis的字符串類型 5) redis的散列類型 6) redis的列表類型 7) redis的集合類型 8) 如何使用java訪問redis【a.python訪問redis,scala訪問redis】 9) redis的事務(transaction) 10) redis的管道(pipeline) 11) redis持久化(AOF+RDB) 12) redis優化 13) redis的主從複製 14) redis的sentinel高可用 15) twemproxy,codis實戰 16) redis3.x集羣安裝配置 Kafka課程 Kafka是當下流行的隊列,能夠說是從數據採集到大數據計算承上啓下的重要環節,你們在此部分將會詳細學習它的架構,kafka在你們大數據的項目中幾乎都會涉及到。 1) kafka是什麼 2) kafka體系結構 3) kafka配置詳解 4) kafka的安裝 5) kafka的存儲策略 6) kafka分區特色 7) kafka的發佈與訂閱 8) zookeeper協調管理 9) java編程操做kafka 10) scala編程操做kafka 11) flume 和kafka 的整合 12) Kafka 和storm 的整合 Storm 實時數據處理 本部分學習事後,你們將全面掌握Storm內部機制和原理,經過大量項目實戰,讓你們擁有完整項目開發思路和架構設計,掌握從數據採集到實時計算到數據存儲再到前臺展現,全部工做一我的搞定!譬如能夠一我的搞定淘寶雙11大屏幕項目!不光從項目的開發的層次去實現,並能夠從架構的層次站在架構師的角度去完成一個項目。 項目技術架構體系: 1) Storm的基本概念 2) Storm的應用場景 3) Storm和Hadoop的對比 4) Storm集羣的安裝的linux環境準備 5) zookeeper集羣搭建 6) Storm集羣搭建 7) Storm配置文件配置項講解 8) 集羣搭建常見問題解決 9) Storm經常使用組件和編程API:Topology、 Spout、Bolt 10) Storm分組策略(stream groupings) 11) 使用Strom開發一個WordCount例子 12) Storm程序本地模式debug、Storm程序遠程debug 13) Storm事物處理 14) Storm消息可靠性及容錯原理 15) Storm結合消息隊列Kafka:消息隊列基本概念(Producer、Consumer、Topic、Broker等)、消息隊列Kafka使用場景、Storm結合Kafka編程API 16) Storm Trident概念 17) Trident state 原理 18) Trident開發實例 19) Storm DRPC(分佈式遠程調用)介紹 20) Storm DRPC實戰講解 21) Storm和Hadoop 2.x的整合:Storm on Yarn Storm開發實戰: Kafka+Storm+Hbase+redis項目實戰,以及多個案例 項目實戰 中國移動基站保障平臺 一個市級移動公司,天天的產生海量話務數據(一線城市更高),經過大數實時分析,監控每一個基站的掉話率,基站通話總數,基站掉話總數,基站告警,3g/4g上網流量實時監控。對以上維度進行實時分析以達到對基站工做狀況的監控。 項目技術架構體系: Storm+hbase+kafka+flume+echarts a) flume實時採集日誌 b) kafka緩衝隊列 c) storm實時處理 d) Hbase dao存儲處理結果 e) 前端Web實時展現報表 第四階段:spark內存計算 Python課程 Python語言的部分你們在學習後能夠徹底掌握Python的精髓,並經過這部分的學習給你們打好一個基礎,在其餘計算框架中多語言的使用上都會涉及到Python這門流行的語言。同時課程裏會經過機器學習的案例讓你們學習Python的同時去更好的理解機器學習。 1) 介紹Python以及特色 2) Python的安裝 3) Python基本操做(註釋、邏輯、字符串使用等) 4) Python數據結構(元組、列表、字典) 5) 使用Python進行批量重命名小例子 6) Python常見內建函數 7) 更多Python函數及使用常見技巧 8) 異常 9) Python函數的參數講解 10) Python模塊的導入 11) Python中的類與繼承 12) 網絡爬蟲案例 13) 數據庫鏈接,以及pip安裝模塊 14) Mongodb基礎入門 15) 講解如何鏈接mongodb 16) Python的機器學習案例 Scala課程 在此部份內,將更注重scala的各類語言規則與簡單直接的應用,而不在於其是如何具體實現,經過學習本課程能具有初步的Scala語言實際編程能力。本部分課程也能夠視爲你們下面學習Spark課程的鋪墊,供你們掃盲熟悉Scala,提早進行熱身運動。 1) scala解釋器、變量、經常使用數據類型等 2) scala的條件表達式、輸入輸出、循環等控制結構 3) scala的函數、默認參數、變長參數等 4) scala的數組、變長數組、多維數組等 5) scala的映射、元組等操做 6) scala的類,包括bean屬性、輔助構造器、主構造器等 7) scala的對象、單例對象、伴生對象、擴展類、apply方法等 8) scala的包、引入、繼承等概念 9) scala的特質 10) scala的操做符 11) scala的高階函數 12) scala的集合 13) scala數據庫鏈接 Spark 大數據處理 本部份內容全面涵蓋了Spark生態系統的概述及其編程模型,深刻內核的研究,Spark on Yarn,Spark Streaming流式計算原理與實踐,Spark SQL,Spark的多語言編程以及SparkR的原理和運行。不只面向項目開發人員,甚至對於研究Spark的學員,此部分都是很是有學習指引意義的課程。 1) Spark介紹 2) Spark應用場景 3) Spark和Hadoop MR、Storm的比較和優點 4) RDD 5) Transformation 6) Action 7) Spark計算PageRank 8) Lineage 9) Spark模型簡介 10) Spark緩存策略和容錯處理 11) 寬依賴與窄依賴 12) Spark配置講解 13) Spark集羣搭建 14) 集羣搭建常見問題解決 15) Spark原理核心組件和經常使用RDD 16) 數據本地性 17) 任務調度 18) DAGScheduler 19) TaskScheduler 20) Spark源碼解讀 21) 性能調優 22) Spark和Hadoop2.x整合:Spark on Yarn原理 Spark Streaming 實時計算 1) Spark Streaming:數據源和DStream 2) 無狀態transformation與有狀態transformation 3) Streaming Window的操做 4) sparksql 編程實戰 5) spark的多語言操做 6) spark最新版本的新特性 Spark MLlib 機器學習 前面課程你們已經掌握第一代機器學習工具R,然後又學習了第二代機器學習工具Mahout,這裏你們將會學習第三代機器學習工具MLlib,你們不只將會了解MLlib的組件及其調用,並且會經過Spark的項目深刻了解MLlib的現實使用。經過此部分你們也能夠看出課程不只着眼於如今,更是着眼於你們的將來在行業中的發展。 1) 介紹 a) Spark MLlib組件介紹 b) 基本數據類型 2) 迴歸算法 c) 廣義線性模型 d) 邏輯迴歸 3) 分類算法 e) 樸素貝葉斯 f) 決策樹 g) 隨機森林 4) 第四章 推薦系統 5) 第五章 聚類 h) Kmeans i) Sparse kmeans j) Kmeans++ k) Kmeans II l) Streaming kmeans m) Gaussian Mixture Model Sparkt GraphX 圖計算 a) 二分圖 b) 概述 c) 構造圖 d) 屬性圖 e) PageRank 項目實戰 智慧城市大數據分析項目 城市中每時每刻都會產生海量數據,應用數據挖掘、機器學習和可視化技術,分析出的數據能夠改進城市規劃,緩解交通擁堵,抓捕罪犯。項目會使用真實的數據。 涉及到所學知識以下: 項目技術架構體系: a) 實時流處理 Kafka,Spark Streaming b) 分佈式運算 Hadoop,Spark c) 數據庫 Hbase,Redis d) 機器學習 Spark Mllib e) 前臺web展現數據 Struts2,echart 手機軟件推薦系統項目 使用數據來自某互聯網平臺手機助手,項目目標經過機器學習所學知識挖掘平臺手機用戶喜愛,給用戶準確推薦手機軟件,相似360手機助手、華爲手機助手、百度手機助手推薦功能。 項目技術架構體系: a) 分佈式平臺 Hadoop,Spark b) 數據清洗 Hive c) 數據分析 R RStudio d) 推薦服務 Dubbox e) 規則過濾 Drools f) 機器學習 MLlib 網絡流量異常檢測項目 項目目標經過機器學習所學知識檢測出異常,包括檢測欺詐,網絡攻擊,服務器傳感器故障燈(本項目用戶如今熱門的電商網站的流量分析檢測,好比京東,天貓,淘寶等)。項目功能應用於各大互聯網平臺中,各大互聯網平臺均須要網絡安全予以重視和預防以及檢測。 項目技術架構體系: a) 數據存儲 Hadoop b) 數據準備 Spark c) 數據分析 R RStudio d) 機器學習 MLlib e) 數據評價及調參 第五階段:雲計算平臺 Docker 課程 Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口(相似 iPhone 的 app)。幾乎沒有性能開銷,能夠很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。 1) 基本介紹 2) vm docker 對比 3) docker基本架構介紹 4) unfs cgroup namespace 5) 進程虛擬化 輕量級虛擬化 6) docker 安裝 7) docker 鏡像製做 8) docker 經常使用命令 9) docker 鏡像遷移 10) docker pipework【i.openvswitch】 11) docker weave 虛擬化KVM 雲計算算平臺,好比openstack,cloudstack 底層採用的技術都是虛擬化方案,如今以kvm市場佔有率最高,咱們要深刻的去學習這些原生的虛擬化,才能深刻了解和架構openstack這樣的雲計算的平臺,也才更有能力去開發本身的雲計算平臺。 1) 虛擬化介紹,虛擬化適用場景等等 2) Qemu Libvirt & KVM 3) 安裝KVM, Qemu, Libvirt 4) QEMU-KVM: 安裝第一個能上網的虛擬機 5) Kvm虛擬機 nat,網橋基本原理 6) kvm虛擬機克隆 7) kvm虛擬機vnc配置 8) kvm虛擬機擴展磁盤空間 9) Kvm快照 10) Kvm 遷移 11) Java,python,c語言編程控制kvm 12) 構建本身的虛擬雲平臺 雲平臺OpenStack 在實戰中學習,課程毫不紙上談兵,經過搭建和調試一個真實的openstack平臺,深刻淺出, 詳細講解openstack的各個組成模塊:keystone, glance, nova, cinder, neutron, horizen。課程中遇到的各類實際問題,不只演示瞭如何解決,更是要教會你們學會去找到解決問題的方法。難點問題全面講解。在雲計算的各類技術當中,網絡部分是最難,也是最複雜多樣的。課程中針對虛擬網絡進行了詳細的講解,包括基本原理,以及實際環境搭建,問題的跟蹤和解決。講師擁有豐富的移動集團工做經驗,負責雲平臺的各方面工做,講課內容徹底貼近企業需求,毫不紙上談兵。 1) openstack介紹和模塊基本原理分析 2) openstack多節點安裝部署【a.採用centos6.x系統】 3) Keystone基本原理 4) glance 5) Cinder 6) Swift 7) Neutron 8) Openstack api 二次開發