1.Linux基礎和分散式集群技術 學完此階段可掌握的核心能力: 熟練使用linux,熟練安裝Linux上的軟體,瞭解熟悉負載均衡、高可靠等集群相關概念,搭建互聯網高併發、高可靠的服務架構; 學完此階段可解決的現實問題: 搭建負載均衡、高可靠的伺服器集群,可以增大網站的併發訪問量,保證服務不間斷地對 ...
1.Linux基礎和分散式集群技術
學完此階段可掌握的核心能力:
熟練使用linux,熟練安裝Linux上的軟體,瞭解熟悉負載均衡、高可靠等集群相關概念,搭建互聯網高併發、高可靠的服務架構;
學完此階段可解決的現實問題:
搭建負載均衡、高可靠的伺服器集群,可以增大網站的併發訪問量,保證服務不間斷地對外服務;
學完此階段可擁有的市場價值:
具備初級程式員必要具備的Linux伺服器運維能力。
分享之前我還是要推薦下我自己創建的大數據學習交流Qun531629188無論是大牛還是想轉行想學習的大學生小編我都挺歡迎,今天的已經資訊上傳到群文件,不定期分享乾貨,包括我自己整理的一份最新的適合2018年學習的大數據教程,歡迎初學和進階中的小伙伴。
1.內容介紹:
在大數據領域,使用最多的操作系統就是Linux系列,並且幾乎都是分散式集群。該課程為大數據的基礎課程,主要介紹Linux操作系統、Linux常用命令、Linux常用軟體安裝、Linux網路、防火牆、Shell編程等。
2.案例:搭建互聯網高併發、高可靠的服務架構。
1. 離線計算系統課程階段
Hadoop核心技術框架
學完此階段可掌握的核心能力:
1、通過對大數據技術產生的背景和行業應用案例瞭解hadoop的作用;2、掌握hadoop底層分散式文件系統HDFS的原理、操作和應用開發;3、掌握MAPREDUCE分散式運算系統的工作原理和分散式分析應用開發;4、掌握Hive數據倉庫工具的工作原理及應用開發。
學完此階段可解決的現實問題:
1、熟練搭建海量數據離線計算平臺;2、根據具體業務場景設計、實現海量數據存儲方案;3、根據具體數據分析需求實現基於mapreduce的分散式運算程式;
學完此階段可擁有的市場價值:
具備企業數據部初級應用開發人員的能力
1.1 HADOOP快速入門
1.1.1 hadoop知識背景
什麼是hadoop、hadoop產生背景、hadoop在大數據雲計算中的位置和關係、國內hadoop的就業情況分析及課程大綱介紹
國內外hadoop應用案例介紹
分散式系統概述、hadoop生態圈及各組成部分的簡介
1.1.2hive快速入門
hive基本介紹、hive的使用、數據倉庫基本知識
1.1.3 數據分析流程案例
web點擊流日誌數據挖掘的需求分析、數據來源、處理流程、數據分析結果導出、數據展現
1.1.4 hadoop數據分析系統集群搭建
集群簡介、伺服器介紹、網路環境設置、伺服器系統環境設置、JDK環境安裝、hadoop集群安裝部署、集群啟動、集群狀態測試
HIVE的配置安裝、HIVE啟動、HIVE使用測試
1.2 HDFS詳解
1.2.1 HDFS的概念和特性
什麼是分散式文件系統、HDFS的設計目標、HDFS與其他分散式存儲系統的優劣勢比較、HDFS的適用場景
1.2.2 HDFS的shell操作
HDFS命令行客戶端啟動、HDFS命令行客戶端的基本操作、命令行客戶端支持的常用命令、常用參數介紹
1.2.3 HDFS的工作機制
HDFS系統的模塊架構、HDFS寫數據流程、HDFS讀數據流程
NAMENODE工作機制、元數據存儲機制、元數據手動查看、元數據checkpoint機制、NAMENODE故障恢復、DATANODE工作機制、DATANODE動態增減、全局數據負載均衡
1.2.4 HDFS的Java應用開發
搭建開發環境、獲取api中的客戶端對象、HDFS的java客戶端所具備的常用功能、HDFS客戶端對文件的常用操作實現、利用HDFS的JAVA客戶端開發數據採集和存儲系統
1.3 MAPREDUCE詳解
1.3.1 MAPREDUCE快速上手
為什麼需要MAPREDUCE、MAPREDUCE程式運行演示、MAPREDUCE編程示例及編程規範、MAPREDUCE程式運行模式、MAPREDUCE程式調試debug的幾種方式
1.3.2 MAPREDUCE程式的運行機制
MAPREDUCE程式運行流程解析、MAPTASK併發數的決定機制、MAPREDUCE中的combiner組件應用、MAPREDUCE中的序列化框架及應用、MAPREDUCE中的排序、MAPREDUCE中的自定義分區實現、MAPREDUCE的shuffle機制、MAPREDUCE利用數據壓縮進行優化、MAPREDUCE程式與YARN之間的關係、MAPREDUCE參數優化
通過以上各組件的詳解,深刻理解MAPREDUCE的核心運行機制,從而具備靈活應對各種複雜應用場景的能力
MAPREDUCE實戰編程案例:通過一個實戰案例來熟悉複雜MAPREDUCE程式的開發。該程式是從nginx伺服器產生的訪問伺服器中計算出每個訪客的訪問次數及每次訪問的時長。原始數據樣例如下:
通過一系列的MAPREDUCE程式——清洗、過濾、訪問次數及時間分析,最終計算出需求所要的結果,用於支撐頁面展現:
1.4 HIVE增強
1.4.1 HIVE基本概念
HIVE應用場景、HIVE內部架構、HIVE與hadoop的關係、HIVE與傳統資料庫對比、HIVE的數據存儲機制、HIVE的運算執行機制
1.4.2 HIVE基本操作
HIVE中的DDL操作、HIVE中的DML操作、在HIVE中如何實現高效的JOIN查詢、HIVE的內置函數應用、HIVE shell的高級使用方式、HIVE常用參數配置、HIVE自定義函數和TRANSFORM的使用技巧、HIVE UDF開發實例
1.4.3 HIVE高級應用
HIVE執行過程分析及優化策略、HIVE在實戰中的最佳實踐案例、HIVE優化分類詳解、HIVE實戰案例--數據ETL、HIVE實戰案例--用戶訪問時長統計
HIVE實戰案例--級聯求和報表實例:
離線數據挖掘系統
學完此階段可掌握的核心能力:
1、通過對數據倉庫知識的加強初步掌握數據倉庫的核心概念和設計流程;2、通過對HADOOP生態圈關鍵輔助工具的學習掌握hadoop分析系統的整合能力;3、通過電商系統點擊流日誌數據挖掘系統實戰項目,掌握hadoop離線數據挖掘系統從數據採集、入庫、分析及報表展現的整套流程
學完此階段可解決的現實問題:
1、可根據企業具體場景設計海量數據分析系統的通用架構2、根據具體場景的特點有針對性地調整數據分析各環節的技術選型;3、根據具體需求搭建起整套離線數據分析系統;4、簡單數據倉庫模型的設計和架構5、各環節具體功能模塊的開發實現
學完此階段可擁有的市場價值:
具備企業數據部中高級應用開發和初級架構師能力
2.1 數據倉庫增強
2.1.1 數據倉庫及數據模型入門
什麼是數據倉庫、數據倉庫的意義、數據倉庫核心概念、數據倉庫的體繫結構
2.1.2 數據倉庫設計
建立數據倉庫的步驟、數據的抽取、數據的轉換、數據的載入、什麼是數據模型、數據模型的常見類型、如何設計數據模型、如何選擇數據建模的架構
典型數據模型——星型建模實例
2.1.3 數據倉庫建模樣例
業務建模、領域建模、邏輯建模、物理建模
web點擊流日誌分析系統數據倉庫設計實戰:
通過對數據特點和業務需求的分析,關係梳理,設計出一個主題明確、層次合理的數據模型
2.2 離線輔助系統
2.2.1 數據採集系統
數據採集概念介紹
FLUME日誌採集框架介紹、FLUME工作機制、FLUME核心組件、FLUME參數配置說明、FLUME採集nginx日誌實戰案例
2.2.2 任務調度系統
任務調度系統概念介紹、常用任務調度工具比較、OOZIE介紹、OOZIE核心概念、OOZIE的配置說明、OOIZE實現mapreduce/hive等任務調度實戰案例
2.2.3 數據導出
數據導出概念介紹、SQOOP基礎知識、SQOOP原理及配置說明、SQOOP數據導入實戰、SQOOP數據導出實戰、SQOOP批量作業操作
2.3 web點擊流日誌分析系統實戰項目
2.3.1 項目介紹
1. 在PC時代,營銷的核心是購買,在移動互聯網時代,其核心是如何實現用戶個性化互動,對用戶傳播更為精準化的內容,而實現這一核心的基礎就是對數據的管理和分析——數據驅動型商業模型。
2. 各類互聯網服務產品(如網站、APP)都可以通過前端技術獲取用戶的詳細行為數據(如訪問的頁面,點擊的區域、登陸的頻次、註冊行為、購買的行為等),將這些點擊流日誌數據與後臺商業數據綜合起來,就可以挖掘對公司運營決策意義非凡的商業價值。
3. 本項目則是一個用大數據技術平臺實現的點擊流日誌分析數據挖掘系統,項目內容涵蓋一個典型數據挖掘系統中,包括需求分析、數據採集、數據存儲管理、數據清洗、數據倉庫設計、ETL、業務模型統計分析、數據可視化的全部流程。
2.3.2 需求分析
什麼是點擊流日誌、點擊流日誌的商業價值、點擊流日誌分析需求
業務模型指標體系設計——流量分析、來源分析、受訪分析、訪客分析、轉化率分析
2.3.3 系統設計及開發
1. 系統架構設計
2. 數據採集設計及開發——數據格式、數據內容分析、數據生成規律、採集系統技術選型解析、FLUME採集系統實現
3. 數據存儲設計及開發——存儲技術選型、存儲業務流程解析、存儲目錄規劃及文件命名規則、小文件合併實現
4. 數據統計設計及開發——數據預處理、數據載入、原始數據表的創建、數據入庫、數據ETL
5. 報表統計設計——數據模型設計、事實表設計、維度表梳理
6. 業務指標設計及開發——PV統計(時間維度、終端維度、地域維度)、來訪次數統計(時間維度、地域維度、終端維度)、獨立訪客統計(時間維度、終端維度、地域維度)、受訪頁面統計(時間維度、欄目維度)、頁面熱點圖、轉化率分析、來源關鍵詞分析、來源搜索引擎分析、來源廣告推廣分析
2.3.4 任務調度系統設計實現
任務調度單元實現、各環節任務運行頻次及依賴關係梳理、工作流設計及實現、工作流定義配置上傳部署、工作流啟動即狀態監控
2.3.5 數據可視化——結果報表展現
1. hive分析結果使用sqoop導出到msyql資料庫
2. 報表展現系統技術選型:
後臺使用spingmvc +spring+ mybatis
前端頁面使用全靜態非同步刷新技術jQuery+ Echarts
3. web展現程式架構搭建,使用maven構建項目工程
4. web展現程式頁面設計開發:原型頁面設計、js代碼開發
5. 最終實現以下數據可視化效果:
(1)流量概況可視化效果:
(2)來源地域分析可視化效果:
(3)來源類型分析可視化效果:
實時課程分為兩個部分:流式計算核心技術和流式計算計算案例實戰。
1.流式計算核心技術
流式計算核心技術主要分為兩個核心技術點:Storm和Kafka,學完此階段能夠掌握Storm開發及底層原理、Kafka的開發及底層原理、Kafka與Storm集成使用。具備開發基於storm實時計算程式的技術能力。
學完此階段可掌握的核心能力:
(1)、理解實時計算及應用場景
(2)、掌握Storm程式的開發及底層原理、掌握Kafka消息隊列的開發及底層原理
(3)、具備Kafka與Storm集成使用的能力
學完此階段可解決的現實問題:
具備開發基於storm的實時計算程式的能力
學完此階段可擁有的市場價值:
具備實時計算開發的技術能力、但理解企業業務的能力不足
1.1、流式計算一般結構
2011年在海量數據處理領域,Hadoop是人們津津樂道的技術,Hadoop不僅可以用來存儲海量數據,還以用來計算海量數據。因為其高吞吐、高可靠等特點,很多互聯網公司都已經使用Hadoop來構建數據倉庫,高頻使用並促進了Hadoop生態圈的各項技術的發展。一般來講,根據業務需求,數據的處理可以分為離線處理和實時處理,在離線處理方面Hadoop提供了很好的解決方案,但是針對海量數據的實時處理卻一直沒有比較好的解決方案。就在人們翹首以待的時間節點,storm橫空出世,與生俱來的分散式、高可靠、高吞吐的特性,橫掃市面上的一些流式計算框架,漸漸的成為了流式計算的首選框架。如果龐麥郎在的話,他一定會說,這就是我要的滑板鞋!
上圖是流式分析的一般架構圖,抽象出四個步驟就是數據採集、數據緩衝、數據處理、數據輸出。一般情況下,我們採用Flume+kafka+Storm+Redis的結構來進行流式數據分析。實時部分的課程主要是針對Kafka、Storm進行學習
1.2、流式計算可以用來乾什麼
一淘-實時分析系統:實時分析用戶的屬性,並反饋給搜索引擎。最初,用戶屬性分析是通過每天在雲梯上定時運行的MR job來完成的。為了滿足實時性的要求,希望能夠實時分析用戶的行為日誌,將最新的用戶屬性反饋給搜索引擎,能夠為用戶展現最貼近其當前需求的結果。
攜程-網站性能監控:實時分析系統監控攜程網的網站性能。利用HTML5提供的performance標準獲得可用的指標,並記錄日誌。Storm集群實時分析日誌和入庫。使用DRPC聚合成報表,通過歷史數據對比等判斷規則,觸發預警事件。
一個游戲新版本上線,有一個實時分析系統,收集游戲中的數據,運營或者開發者可以在上線後幾秒鐘得到持續不斷更新的游戲監控報告和分析結果,然後馬上針對游戲的參數和平衡性進行調整。這樣就能夠大大縮短游戲迭代周期,加強游戲的生命力。
實時計算在騰訊的運用:精準推薦(廣點通廣告推薦、新聞推薦、視頻推薦、游戲道具推薦);實時分析(微信運營數據門戶、效果統計、訂單畫像分析);實時監控(實時監控平臺、游戲內介面調用)
為了更加精準投放廣告,阿裡媽媽後臺計算引擎需要維護每個用戶的興趣點(理想狀態是,你對什麼感興趣,就向你投放哪類廣告)。用戶興趣主要基於用戶的歷史行為、用戶的實時查詢、用戶的實時點擊、用戶的地理信息而得,其中實時查詢、實時點擊等用戶行為都是實時數據。考慮到系統的實時性,阿裡媽媽使用Storm維護用戶興趣數據,併在此基礎上進行受眾定向的廣告投放。
1.3、Storm核心技術點
基礎技術點
linux環境準備、zookeeper集群搭建、Storm集群搭建、Storm配置文件配置項講解、集群搭建常見問題解決。
Storm練習案例
根據螞蟻金服提供的最新數據,今年雙十一的交易峰值為8.59萬筆/秒,是去年3.85萬筆/秒的2.23倍。這一數據也超過了6萬筆/秒的預估。如何實時的計算訂單金額,讓公司領導層看到呢?
(圖為雙十一支付寶成交金額)
Storm基礎及原理
Storm常用組件和編程API:Topology、 Spout、Bolt、Storm分組策略(stream groupings)、Storm項目maven環境搭建、使用Strom開發一個WordCount例子、Storm程式本地模式debug、Storm消息可靠性及容錯原理、Storm任務提交流程、Strom消息容錯機制。
(圖為storm組件)
1.4、Kafka核心技術點
Storm結合消息隊列Kafka:消息隊列基本概念(Producer、Consumer、Topic、Broker等)、消息隊列Kafka使用場景、Storm結合Kafka編程API、Kafka負載均衡、Kafka消息存儲原理等。
(圖為Kafka消息隊列原理)
2.流式計算案例實戰
實戰案例部分主要有三個企業實戰案列,分別是基於點擊流的日誌分析系統、基於系統日誌的監控告警系統、基於訂單系統的交易風控系統,三個案列是企業中的典型項目。學完此階段能夠獨立根據企業的業務性質開發相關的storm程式。
學完此階段可掌握的核心能力:
1、掌握企業核心業務需求
2、掌握實時系統常見的開發流程及運營經驗
學完此階段可解決的現實問題:
可以獨立開發storm程式來滿足業務需求
學完此階段可擁有的市場價值:
熟練學習和掌握後,可滿足企業開發的初級需求,根據市場反饋數據看,薪資普遍在15000-18000元/月。
2.1、案例:流量日誌分析
流量日誌分析之漏斗模型:大型電商網站,上億規模的用戶,千萬級別的活躍用戶,如何評估一個商品專題頁面的效果好不好呢?比如:瀏覽次數、加入購物車次數、下單次數、支付次數、完成。
(圖為日誌分析漏斗模型-數據部必備)
流量日誌分析之基礎數據分析:電商網上商品數量在千萬級別,店鋪數量在百萬級別,如何實時的計算一個每個商品頁的訪問數、用戶數、來源信息等基礎信息呢?如何實時的計算每個店鋪的訪問數、用戶數、來源信息等基礎數據呢?
(圖為頁面瀏覽分析-數據部必備)
2.2、案例:統一監控告警系統
隨著公司業務發展,支撐公司業務的各種系統越來越多,為了保證公司的業務正常發展,急需要對這些線上系統的運行進行監控,做到問題的及時發現和處理,最大程度減少對業務的影響。不同業務的會有幾十上百台伺服器去支撐,大型企業可能是成千上萬台伺服器,那麼每台伺服器的硬體狀態、業務應用狀態如何實時的監控,做到及時發現,快速解決問題呢?
(圖為企業產生日誌的系統清單)
統一監控系統觸發的簡訊告警
統一監控系統觸發的郵件告警
2.3、案例:交易風控系統
電子商務是以互聯網路為平臺的貿易新模式,它的一個最大特點是強調參加交易的各方和所合作的伙伴都要通過Internet密切結合起來,共同從事在網路環境下的商業電子化應用。用戶信息容易受到電腦病毒、黑客的攻擊,商業信息和數據易於搭截偵聽、口令試探和竊取,為了防止用戶信息異常給商家和用戶帶來不必要的損失,企業期望針對用戶的訂單進行分析,對觸發規則的訂單進行風險預警,在必要情況下進行攔截及鎖定訂單。
(圖為訂單異常攔截)
學完此階段可掌握的核心能力:
1.掌握Scala函數式編程特性,熟練使用scala開發程式,可以看懂其他用Scala編寫源碼。
2.搭建Spark集群、使用Scala編寫Spark計算程式,熟練掌握Spark原理,可以閱讀Spark源碼。
3.理解DataFrame和RDD之間的關係,熟練使用DataFrame的API,熟練使用Spark SQL處理結構化數據,通過Spark SQL對接各種數據源,並將處理後結果寫回到存儲介質中。
4.理解Spark Streaming的核心DStream,掌握DStream的編程API並編寫實時計算程式。
學完此階段可解決的現實問題:
熟練使用Scala快速開發Spark大數據應用,通過計算分析大量數據,挖掘出其中有價值的數據,為企業提供決策依據。
學完此階段可擁有的市場價值:
學習完spark並掌握其內容,將具備中級大數據工程師能力,薪水可以達到20K~25K。
1.Scala函數式編程
介紹:Scala是一門集面向對象和函數式編程與一身的編程語言,其強大的表達能力、優雅的API、高效的性能等優點受到越來越多程式員的青睞。Spark底層就是用Scala語言編寫,如果想徹底掌握Spark,就必須學好Scala。
案例:Scala編程實戰,基於Akka框架,編寫一個簡單的分散式RPC通信框架
2.使用Spark處理離線數據
介紹:Spark是基於記憶體計算的大數據並行計算框架,具有高容錯性和高可伸縮性,可以在大量廉價硬體之上部署大規模集群,在同等條件下要比Hadoop快10到100倍。
3.使用Spark SQL處理結構化數據
介紹:Spark SQL的前身是Shark,專門用來處理結構化的數據,類似Hive,是將SQL轉換成一系列RDD任務提交到Spark集群中運行,由於是在記憶體中完成計算,要比hive的性能高很多,並且簡化了開發Spark程式的難度同時提高了開發效率。
4.使用Spark Streaming完成實時計算
介紹:Spark Streaming類似於Apache Storm,用於流式數據的處理。根據其官方文檔介紹,Spark Streaming有高吞吐量和容錯能力強等特點。Spark Streaming支持的數據輸入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和簡單的TCP套接字等等。數據輸入後可以用Spark的高度抽象原語如:map、reduce、join、window等進行運算。而結果也能保存在很多地方,如HDFS,資料庫等。另外Spark Streaming也能和MLlib(機器學習)以及Graphx完美融合
5.Spark綜合項目:
介紹:該項目使用了Spark SQL和Spark Streaming對游戲整個生命周期產生的數據進行了分析,從玩家第一次登錄游戲到每天產生的游戲日誌,通過大量的數據來分析該游戲的運營情況和玩家的各種行為:如活躍用戶、用戶留存、充值比例、游戲收人、外掛分析等。
通過玩家登錄游戲產生的數據分析一天之內各個時間段進入游戲的情況
通過玩家登陸游戲產生的數據分析玩家在全國地區的分步情況,調整廣告投放策略
用戶留存指標可以分析游戲對玩家的吸引力,分析用戶流失原因
用戶等級信息可以分析玩家等等級分佈情況、調整裝備爆率和游戲難度
通過上面游戲各個數據指標的分析,可以讓游戲運維者瞭解游戲的運維情況,為運維者提供各種個性化的調整策略,從而保證游戲健康、穩定的運營。