1.Linux基礎(chǔ)和分布式集群技術(shù)
學(xué)完此階段可掌握的核心能力:
熟練使用Linux,熟練安裝Linux上的軟件,了解熟悉負(fù)載均衡咆槽、高可靠等集群相關(guān)概念派诬,搭建互聯(lián)網(wǎng)高并發(fā)劳淆、高可靠的服務(wù)架構(gòu);
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
搭建負(fù)載均衡默赂、高可靠的服務(wù)器集群沛鸵,可以增大網(wǎng)站的并發(fā)訪問(wèn)量,保證服務(wù)不間斷地對(duì)外服務(wù)缆八;
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
具備初級(jí)程序員必要具備的Linux服務(wù)器運(yùn)維能力曲掰。?
1.內(nèi)容介紹:
在大數(shù)據(jù)領(lǐng)域,使用最多的操作系統(tǒng)就是Linux系列奈辰,并且?guī)缀醵际欠植际郊豪秆T撜n程為大數(shù)據(jù)的基礎(chǔ)課程,主要介紹Linux操作系統(tǒng)奖恰、Linux常用命令吊趾、Linux常用軟件安裝、Linux網(wǎng)絡(luò)瑟啃、防火墻趾徽、Shell編程等。
2.案例:搭建互聯(lián)網(wǎng)高并發(fā)翰守、高可靠的服務(wù)架構(gòu)孵奶。
1. 離線計(jì)算系統(tǒng)課程階段
HADOOP核心技術(shù)框架
學(xué)完此階段可掌握的核心能力:
1、通過(guò)對(duì)大數(shù)據(jù)技術(shù)產(chǎn)生的背景和行業(yè)應(yīng)用案例了解hadoop的作用蜡峰;
2了袁、掌握hadoop底層分布式文件系統(tǒng)HDFS的原理朗恳、操作和應(yīng)用開(kāi)發(fā);
3载绿、掌握MAPREDUCE分布式運(yùn)算系統(tǒng)的工作原理和分布式分析應(yīng)用開(kāi)發(fā)粥诫;
4、掌握HIVE數(shù)據(jù)倉(cāng)庫(kù)工具的工作原理及應(yīng)用開(kāi)發(fā)崭庸。
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
1怀浆、熟練搭建海量數(shù)據(jù)離線計(jì)算平臺(tái);
2怕享、根據(jù)具體業(yè)務(wù)場(chǎng)景設(shè)計(jì)执赡、實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ)方案;
3函筋、根據(jù)具體數(shù)據(jù)分析需求實(shí)現(xiàn)基于mapreduce的分布式運(yùn)算程序沙合;
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
具備企業(yè)數(shù)據(jù)部初級(jí)應(yīng)用開(kāi)發(fā)人員的能力
1.1 HADOOP快速入門(mén)
1.1.1 hadoop知識(shí)背景
什么是hadoop、hadoop產(chǎn)生背景跌帐、hadoop在大數(shù)據(jù)云計(jì)算中的位置和關(guān)系首懈、國(guó)內(nèi)hadoop的就業(yè)情況分析及課程大綱介紹
國(guó)內(nèi)外hadoop應(yīng)用案例介紹
分布式系統(tǒng)概述、hadoop生態(tài)圈及各組成部分的簡(jiǎn)介
1.1.2 HIVE快速入門(mén)
hive基本介紹谨敛、hive的使用究履、數(shù)據(jù)倉(cāng)庫(kù)基本知識(shí)
1.1.3 數(shù)據(jù)分析流程案例
web點(diǎn)擊流日志數(shù)據(jù)挖掘的需求分析、數(shù)據(jù)來(lái)源脸狸、處理流程最仑、數(shù)據(jù)分析結(jié)果導(dǎo)出、數(shù)據(jù)展現(xiàn)
1.1.4 hadoop數(shù)據(jù)分析系統(tǒng)集群搭建
集群簡(jiǎn)介肥惭、服務(wù)器介紹、網(wǎng)絡(luò)環(huán)境設(shè)置紊搪、服務(wù)器系統(tǒng)環(huán)境設(shè)置蜜葱、JDK環(huán)境安裝、hadoop集群安裝部署耀石、集群?jiǎn)?dòng)牵囤、集群狀態(tài)測(cè)試
HIVE的配置安裝、HIVE啟動(dòng)滞伟、HIVE使用測(cè)試
1.2 HDFS詳解
1.2.1 HDFS的概念和特性
什么是分布式文件系統(tǒng)揭鳞、HDFS的設(shè)計(jì)目標(biāo)、HDFS與其他分布式存儲(chǔ)系統(tǒng)的優(yōu)劣勢(shì)比較梆奈、HDFS的適用場(chǎng)景
1.2.2 HDFS的shell操作
HDFS命令行客戶(hù)端啟動(dòng)野崇、HDFS命令行客戶(hù)端的基本操作、命令行客戶(hù)端支持的常用命令亩钟、常用參數(shù)介紹
1.2.3 HDFS的工作機(jī)制
HDFS系統(tǒng)的模塊架構(gòu)乓梨、HDFS寫(xiě)數(shù)據(jù)流程鳖轰、HDFS讀數(shù)據(jù)流程
NAMENODE工作機(jī)制、元數(shù)據(jù)存儲(chǔ)機(jī)制扶镀、元數(shù)據(jù)手動(dòng)查看蕴侣、元數(shù)據(jù)checkpoint機(jī)制、NAMENODE故障恢復(fù)臭觉、DATANODE工作機(jī)制昆雀、DATANODE動(dòng)態(tài)增減、全局?jǐn)?shù)據(jù)負(fù)載均衡
1.2.4 HDFS的java應(yīng)用開(kāi)發(fā)
搭建開(kāi)發(fā)環(huán)境蝠筑、獲取api中的客戶(hù)端對(duì)象狞膘、HDFS的java客戶(hù)端所具備的常用功能、HDFS客戶(hù)端對(duì)文件的常用操作實(shí)現(xiàn)菱肖、利用HDFS的JAVA客戶(hù)端開(kāi)發(fā)數(shù)據(jù)采集和存儲(chǔ)系統(tǒng)
1.3 MAPREDUCE詳解
1.3.1 MAPREDUCE快速上手
為什么需要MAPREDUCE客冈、MAPREDUCE程序運(yùn)行演示、MAPREDUCE編程示例及編程規(guī)范稳强、MAPREDUCE程序運(yùn)行模式场仲、MAPREDUCE程序調(diào)試debug的幾種方式
1.3.2 MAPREDUCE程序的運(yùn)行機(jī)制
MAPREDUCE程序運(yùn)行流程解析、MAPTASK并發(fā)數(shù)的決定機(jī)制退疫、MAPREDUCE中的combiner組件應(yīng)用渠缕、MAPREDUCE中的序列化框架及應(yīng)用、MAPREDUCE中的排序褒繁、MAPREDUCE中的自定義分區(qū)實(shí)現(xiàn)亦鳞、MAPREDUCE的shuffle機(jī)制、MAPREDUCE利用數(shù)據(jù)壓縮進(jìn)行優(yōu)化棒坏、MAPREDUCE程序與YARN之間的關(guān)系燕差、MAPREDUCE參數(shù)優(yōu)化
通過(guò)以上各組件的詳解,深刻理解MAPREDUCE的核心運(yùn)行機(jī)制坝冕,從而具備靈活應(yīng)對(duì)各種復(fù)雜應(yīng)用場(chǎng)景的能力
MAPREDUCE實(shí)戰(zhàn)編程案例:通過(guò)一個(gè)實(shí)戰(zhàn)案例來(lái)熟悉復(fù)雜MAPREDUCE程序的開(kāi)發(fā)徒探。該程序是從nginx服務(wù)器產(chǎn)生的訪問(wèn)服務(wù)器中計(jì)算出每個(gè)訪客的訪問(wèn)次數(shù)及每次訪問(wèn)的時(shí)長(zhǎng)。原始數(shù)據(jù)樣例如下:
通過(guò)一系列的MAPREDUCE程序——清洗喂窟、過(guò)濾测暗、訪問(wèn)次數(shù)及時(shí)間分析,最終計(jì)算出需求所要的結(jié)果磨澡,用于支撐頁(yè)面展現(xiàn):
1.4 HIVE增強(qiáng)
1.4.1 HIVE基本概念
HIVE應(yīng)用場(chǎng)景碗啄、HIVE內(nèi)部架構(gòu)、HIVE與hadoop的關(guān)系稳摄、HIVE與傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)比稚字、HIVE的數(shù)據(jù)存儲(chǔ)機(jī)制、HIVE的運(yùn)算執(zhí)行機(jī)制
1.4.2 HIVE基本操作
HIVE中的DDL操作厦酬、HIVE中的DML操作尉共、在HIVE中如何實(shí)現(xiàn)高效的JOIN查詢(xún)褒傅、HIVE的內(nèi)置函數(shù)應(yīng)用、HIVE shell的高級(jí)使用方式袄友、HIVE常用參數(shù)配置殿托、HIVE自定義函數(shù)和TRANSFORM的使用技巧、HIVE UDF開(kāi)發(fā)實(shí)例
1.4.3 HIVE高級(jí)應(yīng)用
HIVE執(zhí)行過(guò)程分析及優(yōu)化策略剧蚣、HIVE在實(shí)戰(zhàn)中的最佳實(shí)踐案例支竹、HIVE優(yōu)化分類(lèi)詳解、HIVE實(shí)戰(zhàn)案例--數(shù)據(jù)ETL鸠按、HIVE實(shí)戰(zhàn)案例--用戶(hù)訪問(wèn)時(shí)長(zhǎng)統(tǒng)計(jì)
HIVE實(shí)戰(zhàn)案例--級(jí)聯(lián)求和報(bào)表實(shí)例:
離線數(shù)據(jù)挖掘系統(tǒng)
學(xué)完此階段可掌握的核心能力:
1礼搁、通過(guò)對(duì)數(shù)據(jù)倉(cāng)庫(kù)知識(shí)的加強(qiáng)初步掌握數(shù)據(jù)倉(cāng)庫(kù)的核心概念和設(shè)計(jì)流程;
2、通過(guò)對(duì)HADOOP生態(tài)圈關(guān)鍵輔助工具的學(xué)習(xí)掌握hadoop分析系統(tǒng)的整合能力;
3目尖、通過(guò)電商系統(tǒng)點(diǎn)擊流日志數(shù)據(jù)挖掘系統(tǒng)實(shí)戰(zhàn)項(xiàng)目馒吴,掌握hadoop離線數(shù)據(jù)挖掘系統(tǒng)從數(shù)據(jù)采集、入庫(kù)瑟曲、分析及報(bào)表展現(xiàn)的整套流程
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
1饮戳、可根據(jù)企業(yè)具體場(chǎng)景設(shè)計(jì)海量數(shù)據(jù)分析系統(tǒng)的通用架構(gòu)
2、根據(jù)具體場(chǎng)景的特點(diǎn)有針對(duì)性地調(diào)整數(shù)據(jù)分析各環(huán)節(jié)的技術(shù)選型;
3洞拨、根據(jù)具體需求搭建起整套離線數(shù)據(jù)分析系統(tǒng);
4扯罐、簡(jiǎn)單數(shù)據(jù)倉(cāng)庫(kù)模型的設(shè)計(jì)和架構(gòu)
5、各環(huán)節(jié)具體功能模塊的開(kāi)發(fā)實(shí)現(xiàn)
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
具備企業(yè)數(shù)據(jù)部中高級(jí)應(yīng)用開(kāi)發(fā)和初級(jí)架構(gòu)師能力
2.1 數(shù)據(jù)倉(cāng)庫(kù)增強(qiáng)
2.1.1 數(shù)據(jù)倉(cāng)庫(kù)及數(shù)據(jù)模型入門(mén)
什么是數(shù)據(jù)倉(cāng)庫(kù)烦衣、數(shù)據(jù)倉(cāng)庫(kù)的意義歹河、數(shù)據(jù)倉(cāng)庫(kù)核心概念、數(shù)據(jù)倉(cāng)庫(kù)的體系結(jié)構(gòu)
2.1.2 數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)
建立數(shù)據(jù)倉(cāng)庫(kù)的步驟花吟、數(shù)據(jù)的抽取秸歧、數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)的加載衅澈、什么是數(shù)據(jù)模型键菱、數(shù)據(jù)模型的常見(jiàn)類(lèi)型、如何設(shè)計(jì)數(shù)據(jù)模型矾麻、如何選擇數(shù)據(jù)建模的架構(gòu)
典型數(shù)據(jù)模型——星型建模實(shí)例
2.1.3 數(shù)據(jù)倉(cāng)庫(kù)建模樣例
業(yè)務(wù)建模纱耻、領(lǐng)域建模芭梯、邏輯建模险耀、物理建模
web點(diǎn)擊流日志分析系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)實(shí)戰(zhàn):
通過(guò)對(duì)數(shù)據(jù)特點(diǎn)和業(yè)務(wù)需求的分析,關(guān)系梳理玖喘,設(shè)計(jì)出一個(gè)主題明確甩牺、層次合理的數(shù)據(jù)模型
2.2 離線輔助系統(tǒng)
2.2.1 數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集概念介紹
FLUME日志采集框架介紹、FLUME工作機(jī)制累奈、FLUME核心組件贬派、FLUME參數(shù)配置說(shuō)明急但、FLUME采集nginx日志實(shí)戰(zhàn)案例
2.2.2 任務(wù)調(diào)度系統(tǒng)
任務(wù)調(diào)度系統(tǒng)概念介紹、常用任務(wù)調(diào)度工具比較搞乏、OOZIE介紹波桩、OOZIE核心概念、OOZIE的配置說(shuō)明请敦、OOIZE實(shí)現(xiàn)mapreduce/hive等任務(wù)調(diào)度實(shí)戰(zhàn)案例
2.2.3 數(shù)據(jù)導(dǎo)出
數(shù)據(jù)導(dǎo)出概念介紹、SQOOP基礎(chǔ)知識(shí)、SQOOP原理及配置說(shuō)明顿膨、SQOOP數(shù)據(jù)導(dǎo)入實(shí)戰(zhàn)葫督、SQOOP數(shù)據(jù)導(dǎo)出實(shí)戰(zhàn)、SQOOP批量作業(yè)操作
2.3 web點(diǎn)擊流日志分析系統(tǒng)實(shí)戰(zhàn)項(xiàng)目
2.3.1 項(xiàng)目介紹
1. 在PC時(shí)代匣椰,營(yíng)銷(xiāo)的核心是購(gòu)買(mǎi)裆熙,在移動(dòng)互聯(lián)網(wǎng)時(shí)代禽笑,其核心是如何實(shí)現(xiàn)用戶(hù)個(gè)性化互動(dòng)入录,對(duì)用戶(hù)傳播更為精準(zhǔn)化的內(nèi)容,而實(shí)現(xiàn)這一核心的基礎(chǔ)就是對(duì)數(shù)據(jù)的管理和分析——數(shù)據(jù)驅(qū)動(dòng)型商業(yè)模型蒲每。
2. 各類(lèi)互聯(lián)網(wǎng)服務(wù)產(chǎn)品(如網(wǎng)站纷跛、APP)都可以通過(guò)前端技術(shù)獲取用戶(hù)的詳細(xì)行為數(shù)據(jù)(如訪問(wèn)的頁(yè)面,點(diǎn)擊的區(qū)域邀杏、登陸的頻次贫奠、注冊(cè)行為、購(gòu)買(mǎi)的行為等)望蜡,將這些點(diǎn)擊流日志數(shù)據(jù)與后臺(tái)商業(yè)數(shù)據(jù)綜合起來(lái)唤崭,就可以挖掘?qū)具\(yùn)營(yíng)決策意義非凡的商業(yè)價(jià)值。
3. 本項(xiàng)目則是一個(gè)用大數(shù)據(jù)技術(shù)平臺(tái)實(shí)現(xiàn)的點(diǎn)擊流日志分析數(shù)據(jù)挖掘系統(tǒng)脖律,項(xiàng)目?jī)?nèi)容涵蓋一個(gè)典型數(shù)據(jù)挖掘系統(tǒng)中谢肾,包括需求分析、數(shù)據(jù)采集小泉、數(shù)據(jù)存儲(chǔ)管理芦疏、數(shù)據(jù)清洗、數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)微姊、ETL酸茴、業(yè)務(wù)模型統(tǒng)計(jì)分析、數(shù)據(jù)可視化的全部流程兢交。
2.3.2 需求分析
什么是點(diǎn)擊流日志薪捍、點(diǎn)擊流日志的商業(yè)價(jià)值、點(diǎn)擊流日志分析需求
業(yè)務(wù)模型指標(biāo)體系設(shè)計(jì)——流量分析、來(lái)源分析酪穿、受訪分析凳干、訪客分析、轉(zhuǎn)化率分析
2.3.3 系統(tǒng)設(shè)計(jì)及開(kāi)發(fā)
1. 系統(tǒng)架構(gòu)設(shè)計(jì)
2. 數(shù)據(jù)采集設(shè)計(jì)及開(kāi)發(fā)——數(shù)據(jù)格式被济、數(shù)據(jù)內(nèi)容分析救赐、數(shù)據(jù)生成規(guī)律、采集系統(tǒng)技術(shù)選型解析只磷、FLUME采集系統(tǒng)實(shí)現(xiàn)
3. 數(shù)據(jù)存儲(chǔ)設(shè)計(jì)及開(kāi)發(fā)——存儲(chǔ)技術(shù)選型净响、存儲(chǔ)業(yè)務(wù)流程解析、存儲(chǔ)目錄規(guī)劃及文件命名規(guī)則喳瓣、小文件合并實(shí)現(xiàn)
4. 數(shù)據(jù)統(tǒng)計(jì)設(shè)計(jì)及開(kāi)發(fā)——數(shù)據(jù)預(yù)處理馋贤、數(shù)據(jù)加載、原始數(shù)據(jù)表的創(chuàng)建畏陕、數(shù)據(jù)入庫(kù)配乓、數(shù)據(jù)ETL
5. 報(bào)表統(tǒng)計(jì)設(shè)計(jì)——數(shù)據(jù)模型設(shè)計(jì)、事實(shí)表設(shè)計(jì)惠毁、維度表梳理
6. 業(yè)務(wù)指標(biāo)設(shè)計(jì)及開(kāi)發(fā)——PV統(tǒng)計(jì)(時(shí)間維度犹芹、終端維度、地域維度)鞠绰、來(lái)訪次數(shù)統(tǒng)計(jì)(時(shí)間維度腰埂、地域維度、終端維度)蜈膨、獨(dú)立訪客統(tǒng)計(jì)(時(shí)間維度屿笼、終端維度、地域維度)翁巍、受訪頁(yè)面統(tǒng)計(jì)(時(shí)間維度驴一、欄目維度)、頁(yè)面熱點(diǎn)圖灶壶、轉(zhuǎn)化率分析肝断、來(lái)源關(guān)鍵詞分析、來(lái)源搜索引擎分析驰凛、來(lái)源廣告推廣分析
2.3.4 任務(wù)調(diào)度系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
任務(wù)調(diào)度單元實(shí)現(xiàn)胸懈、各環(huán)節(jié)任務(wù)運(yùn)行頻次及依賴(lài)關(guān)系梳理、工作流設(shè)計(jì)及實(shí)現(xiàn)恰响、工作流定義配置上傳部署趣钱、工作流啟動(dòng)即狀態(tài)監(jiān)控
2.3.5 數(shù)據(jù)可視化——結(jié)果報(bào)表展現(xiàn)
1. hive分析結(jié)果使用sqoop導(dǎo)出到msyql數(shù)據(jù)庫(kù)
2. 報(bào)表展現(xiàn)系統(tǒng)技術(shù)選型:
后臺(tái)使用spingmvc + spring + mybatis
前端頁(yè)面使用全靜態(tài)異步刷新技術(shù)Jquery + Echarts
3. web展現(xiàn)程序架構(gòu)搭建,使用maven構(gòu)建項(xiàng)目工程
4. web展現(xiàn)程序頁(yè)面設(shè)計(jì)開(kāi)發(fā):原型頁(yè)面設(shè)計(jì)渔隶、js代碼開(kāi)發(fā)
5. 最終實(shí)現(xiàn)以下數(shù)據(jù)可視化效果:
(1)流量概況可視化效果:
(2)來(lái)源地域分析可視化效果:
(3)來(lái)源類(lèi)型分析可視化效果:
實(shí)時(shí)課程分為兩個(gè)部分:流式計(jì)算核心技術(shù)和流式計(jì)算計(jì)算案例實(shí)戰(zhàn)羔挡。
1.流式計(jì)算核心技術(shù)
流式計(jì)算核心技術(shù)主要分為兩個(gè)核心技術(shù)點(diǎn):Storm和Kafka,學(xué)完此階段能夠掌握Storm開(kāi)發(fā)及底層原理间唉、Kafka的開(kāi)發(fā)及底層原理绞灼、Kafka與Storm集成使用。具備開(kāi)發(fā)基于storm實(shí)時(shí)計(jì)算程序的技術(shù)能力呈野。
學(xué)完此階段可掌握的核心能力:
(1)低矮、理解實(shí)時(shí)計(jì)算及應(yīng)用場(chǎng)景
(2)、掌握Storm程序的開(kāi)發(fā)及底層原理被冒、掌握Kafka消息隊(duì)列的開(kāi)發(fā)及底層原理
(3)军掂、具備Kafka與Storm集成使用的能力
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
具備開(kāi)發(fā)基于storm的實(shí)時(shí)計(jì)算程序的能力
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
具備實(shí)時(shí)計(jì)算開(kāi)發(fā)的技術(shù)能力、但理解企業(yè)業(yè)務(wù)的能力不足
1.1昨悼、流式計(jì)算一般結(jié)構(gòu)
2011年在海量數(shù)據(jù)處理領(lǐng)域蝗锥,Hadoop是人們津津樂(lè)道的技術(shù),Hadoop不僅可以用來(lái)存儲(chǔ)海量數(shù)據(jù)率触,還以用來(lái)計(jì)算海量數(shù)據(jù)终议。因?yàn)槠涓咄掏隆⒏呖煽康忍攸c(diǎn)葱蝗,很多互聯(lián)網(wǎng)公司都已經(jīng)使用Hadoop來(lái)構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)穴张,高頻使用并促進(jìn)了Hadoop生態(tài)圈的各項(xiàng)技術(shù)的發(fā)展。一般來(lái)講两曼,根據(jù)業(yè)務(wù)需求皂甘,數(shù)據(jù)的處理可以分為離線處理和實(shí)時(shí)處理,在離線處理方面Hadoop提供了很好的解決方案悼凑,但是針對(duì)海量數(shù)據(jù)的實(shí)時(shí)處理卻一直沒(méi)有比較好的解決方案偿枕。就在人們翹首以待的時(shí)間節(jié)點(diǎn),storm橫空出世户辫,與生俱來(lái)的分布式益老、高可靠、高吞吐的特性寸莫,橫掃市面上的一些流式計(jì)算框架捺萌,漸漸的成為了流式計(jì)算的首選框架。如果龐麥郎在的話膘茎,他一定會(huì)說(shuō)桃纯,這就是我要的滑板鞋!
上圖是流式分析的一般架構(gòu)圖,抽象出四個(gè)步驟就是數(shù)據(jù)采集披坏、數(shù)據(jù)緩沖态坦、數(shù)據(jù)處理、數(shù)據(jù)輸出棒拂。一般情況下伞梯,我們采用Flume+kafka+Storm+Redis的結(jié)構(gòu)來(lái)進(jìn)行流式數(shù)據(jù)分析玫氢。實(shí)時(shí)部分的課程主要是針對(duì)Kafka、Storm進(jìn)行學(xué)習(xí)
1.2谜诫、流式計(jì)算可以用來(lái)干什么
一淘-實(shí)時(shí)分析系統(tǒng):實(shí)時(shí)分析用戶(hù)的屬性漾峡,并反饋給搜索引擎。最初喻旷,用戶(hù)屬性分析是通過(guò)每天在云梯上定時(shí)運(yùn)行的MR job來(lái)完成的生逸。為了滿足實(shí)時(shí)性的要求,希望能夠?qū)崟r(shí)分析用戶(hù)的行為日志且预,將最新的用戶(hù)屬性反饋給搜索引擎槽袄,能夠?yàn)橛脩?hù)展現(xiàn)最貼近其當(dāng)前需求的結(jié)果。
攜程-網(wǎng)站性能監(jiān)控:實(shí)時(shí)分析系統(tǒng)監(jiān)控?cái)y程網(wǎng)的網(wǎng)站性能锋谐。利用HTML5提供的performance標(biāo)準(zhǔn)獲得可用的指標(biāo)遍尺,并記錄日志。Storm集群實(shí)時(shí)分析日志和入庫(kù)涮拗。使用DRPC聚合成報(bào)表狮鸭,通過(guò)歷史數(shù)據(jù)對(duì)比等判斷規(guī)則,觸發(fā)預(yù)警事件多搀。
一個(gè)游戲新版本上線歧蕉,有一個(gè)實(shí)時(shí)分析系統(tǒng),收集游戲中的數(shù)據(jù)康铭,運(yùn)營(yíng)或者開(kāi)發(fā)者可以在上線后幾秒鐘得到持續(xù)不斷更新的游戲監(jiān)控報(bào)告和分析結(jié)果惯退,然后馬上針對(duì)游戲的參數(shù)和平衡性進(jìn)行調(diào)整。這樣就能夠大大縮短游戲迭代周期从藤,加強(qiáng)游戲的生命力催跪。
實(shí)時(shí)計(jì)算在騰訊的運(yùn)用:精準(zhǔn)推薦(廣點(diǎn)通廣告推薦、新聞推薦夷野、視頻推薦懊蒸、游戲道具推薦);實(shí)時(shí)分析(微信運(yùn)營(yíng)數(shù)據(jù)門(mén)戶(hù)、效果統(tǒng)計(jì)悯搔、訂單畫(huà)像分析);實(shí)時(shí)監(jiān)控(實(shí)時(shí)監(jiān)控平臺(tái)骑丸、游戲內(nèi)接口調(diào)用)
為了更加精準(zhǔn)投放廣告,阿里媽媽后臺(tái)計(jì)算引擎需要維護(hù)每個(gè)用戶(hù)的興趣點(diǎn)(理想狀態(tài)是妒貌,你對(duì)什么感興趣通危,就向你投放哪類(lèi)廣告)。用戶(hù)興趣主要基于用戶(hù)的歷史行為灌曙、用戶(hù)的實(shí)時(shí)查詢(xún)菊碟、用戶(hù)的實(shí)時(shí)點(diǎn)擊、用戶(hù)的地理信息而得在刺,其中實(shí)時(shí)查詢(xún)逆害、實(shí)時(shí)點(diǎn)擊等用戶(hù)行為都是實(shí)時(shí)數(shù)據(jù)头镊。考慮到系統(tǒng)的實(shí)時(shí)性魄幕,阿里媽媽使用Storm維護(hù)用戶(hù)興趣數(shù)據(jù)相艇,并在此基礎(chǔ)上進(jìn)行受眾定向的廣告投放。
1.3梅垄、Storm核心技術(shù)點(diǎn)
基礎(chǔ)技術(shù)點(diǎn)
linux環(huán)境準(zhǔn)備、zookeeper集群搭建输玷、Storm集群搭建队丝、Storm配置文件配置項(xiàng)講解、集群搭建常見(jiàn)問(wèn)題解決欲鹏。
Storm練習(xí)案例
根據(jù)螞蟻金服提供的最新數(shù)據(jù)机久,今年雙十一的交易峰值為8.59萬(wàn)筆/秒,是去年3.85萬(wàn)筆/秒的2.23倍赔嚎。這一數(shù)據(jù)也超過(guò)了6萬(wàn)筆/秒的預(yù)估膘盖。如何實(shí)時(shí)的計(jì)算訂單金額,讓公司領(lǐng)導(dǎo)層看到呢?
(圖為雙十一支付寶成交金額)
Storm基礎(chǔ)及原理
Storm常用組件和編程API:Topology尤误、 Spout侠畔、Bolt、Storm分組策略(stream groupings)损晤、Storm項(xiàng)目maven環(huán)境搭建软棺、使用Strom開(kāi)發(fā)一個(gè)WordCount例子、Storm程序本地模式debug尤勋、Storm消息可靠性及容錯(cuò)原理喘落、Storm任務(wù)提交流程、Strom消息容錯(cuò)機(jī)制最冰。
(圖為storm組件)
1.4瘦棋、Kafka核心技術(shù)點(diǎn)
Storm結(jié)合消息隊(duì)列Kafka:消息隊(duì)列基本概念(Producer、Consumer暖哨、Topic赌朋、Broker等)、消息隊(duì)列Kafka使用場(chǎng)景篇裁、Storm結(jié)合Kafka編程API箕慧、Kafka負(fù)載均衡、Kafka消息存儲(chǔ)原理等茴恰。
(圖為Kafka消息隊(duì)列原理)
2.流式計(jì)算案例實(shí)戰(zhàn)
實(shí)戰(zhàn)案例部分主要有三個(gè)企業(yè)實(shí)戰(zhàn)案列颠焦,分別是基于點(diǎn)擊流的日志分析系統(tǒng)、基于系統(tǒng)日志的監(jiān)控告警系統(tǒng)往枣、基于訂單系統(tǒng)的交易風(fēng)控系統(tǒng)伐庭,三個(gè)案列是企業(yè)中的典型項(xiàng)目粉渠。學(xué)完此階段能夠獨(dú)立根據(jù)企業(yè)的業(yè)務(wù)性質(zhì)開(kāi)發(fā)相關(guān)的storm程序。
學(xué)完此階段可掌握的核心能力:
1圾另、掌握企業(yè)核心業(yè)務(wù)需求
2霸株、掌握實(shí)時(shí)系統(tǒng)常見(jiàn)的開(kāi)發(fā)流程及運(yùn)營(yíng)經(jīng)驗(yàn)
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
可以獨(dú)立開(kāi)發(fā)storm程序來(lái)滿足業(yè)務(wù)需求
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
熟練學(xué)習(xí)和掌握后,可滿足企業(yè)開(kāi)發(fā)的初級(jí)需求集乔,根據(jù)市場(chǎng)反饋數(shù)據(jù)看去件,薪資普遍在15000-18000元/月。
2.1扰路、案例:流量日志分析
流量日志分析之漏斗模型:大型電商網(wǎng)站尤溜,上億規(guī)模的用戶(hù),千萬(wàn)級(jí)別的活躍用戶(hù)汗唱,如何評(píng)估一個(gè)商品專(zhuān)題頁(yè)面的效果好不好呢?比如:瀏覽次數(shù)宫莱、加入購(gòu)物車(chē)次數(shù)、下單次數(shù)哩罪、支付次數(shù)授霸、完成。
(圖為日志分析漏斗模型-數(shù)據(jù)部必備)
流量日志分析之基礎(chǔ)數(shù)據(jù)分析:電商網(wǎng)上商品數(shù)量在千萬(wàn)級(jí)別际插,店鋪數(shù)量在百萬(wàn)級(jí)別碘耳,如何實(shí)時(shí)的計(jì)算一個(gè)每個(gè)商品頁(yè)的訪問(wèn)數(shù)、用戶(hù)數(shù)框弛、來(lái)源信息等基礎(chǔ)信息呢?如何實(shí)時(shí)的計(jì)算每個(gè)店鋪的訪問(wèn)數(shù)藏畅、用戶(hù)數(shù)、來(lái)源信息等基礎(chǔ)數(shù)據(jù)呢?
(圖為頁(yè)面瀏覽分析-數(shù)據(jù)部必備)
2.2功咒、案例:統(tǒng)一監(jiān)控告警系統(tǒng)
隨著公司業(yè)務(wù)發(fā)展愉阎,支撐公司業(yè)務(wù)的各種系統(tǒng)越來(lái)越多,為了保證公司的業(yè)務(wù)正常發(fā)展力奋,急需要對(duì)這些線上系統(tǒng)的運(yùn)行進(jìn)行監(jiān)控榜旦,做到問(wèn)題的及時(shí)發(fā)現(xiàn)和處理,最大程度減少對(duì)業(yè)務(wù)的影響景殷。不同業(yè)務(wù)的會(huì)有幾十上百臺(tái)服務(wù)器去支撐溅呢,大型企業(yè)可能是成千上萬(wàn)臺(tái)服務(wù)器,那么每臺(tái)服務(wù)器的硬件狀態(tài)猿挚、業(yè)務(wù)應(yīng)用狀態(tài)如何實(shí)時(shí)的監(jiān)控咐旧,做到及時(shí)發(fā)現(xiàn),快速解決問(wèn)題呢?
(圖為企業(yè)產(chǎn)生日志的系統(tǒng)清單)
統(tǒng)一監(jiān)控系統(tǒng)觸發(fā)的短信告警
統(tǒng)一監(jiān)控系統(tǒng)觸發(fā)的郵件告警
2.3绩蜻、案例:交易風(fēng)控系統(tǒng)
電子商務(wù)是以互聯(lián)網(wǎng)絡(luò)為平臺(tái)的貿(mào)易新模式铣墨,它的一個(gè)最大特點(diǎn)是強(qiáng)調(diào)參加交易的各方和所合作的伙伴都要通過(guò)Internet密切結(jié)合起來(lái),共同從事在網(wǎng)絡(luò)環(huán)境下的商業(yè)電子化應(yīng)用办绝。用戶(hù)信息容易受到計(jì)算機(jī)病毒伊约、黑客的攻擊姚淆,商業(yè)信息和數(shù)據(jù)易于搭截偵聽(tīng)、口令試探和竊取屡律,為了防止用戶(hù)信息異常給商家和用戶(hù)帶來(lái)不必要的損失腌逢,企業(yè)期望針對(duì)用戶(hù)的訂單進(jìn)行分析,對(duì)觸發(fā)規(guī)則的訂單進(jìn)行風(fēng)險(xiǎn)預(yù)警超埋,在必要情況下進(jìn)行攔截及鎖定訂單搏讶。
(圖為訂單異常攔截)
學(xué)完此階段可掌握的核心能力:
1.掌握Scala函數(shù)式編程特性,熟練使用Scala開(kāi)發(fā)程序霍殴,可以看懂其他用Scala編寫(xiě)源碼媒惕。
2.搭建Spark集群、使用Scala編寫(xiě)Spark計(jì)算程序繁成,熟練掌握Spark原理吓笙,可以閱讀Spark源碼淑玫。
3.理解DataFrame和RDD之間的關(guān)系巾腕,熟練使用DataFrame的API,熟練使用Spark SQL處理結(jié)構(gòu)化數(shù)據(jù)絮蒿,通過(guò)Spark SQL對(duì)接各種數(shù)據(jù)源尊搬,并將處理后結(jié)果寫(xiě)回到存儲(chǔ)介質(zhì)中。
4.理解Spark Streaming的核心DStream土涝,掌握DStream的編程API并編寫(xiě)實(shí)時(shí)計(jì)算程序佛寿。
學(xué)完此階段可解決的現(xiàn)實(shí)問(wèn)題:
熟練使用Scala快速開(kāi)發(fā)Spark大數(shù)據(jù)應(yīng)用,通過(guò)計(jì)算分析大量數(shù)據(jù)但壮,挖掘出其中有價(jià)值的數(shù)據(jù)冀泻,為企業(yè)提供決策依據(jù)。
學(xué)完此階段可擁有的市場(chǎng)價(jià)值:
學(xué)習(xí)完spark并掌握其內(nèi)容蜡饵,將具備中級(jí)大數(shù)據(jù)工程師能力弹渔,薪水可以達(dá)到20K~25K。
1.Scala函數(shù)式編程
介紹:Scala是一門(mén)集面向?qū)ο蠛秃瘮?shù)式編程與一身的編程語(yǔ)言溯祸,其強(qiáng)大的表達(dá)能力肢专、優(yōu)雅的API、高效的性能等優(yōu)點(diǎn)受到越來(lái)越多程序員的青睞焦辅。Spark底層就是用Scala語(yǔ)言編寫(xiě)博杖,如果想徹底掌握Spark,就必須學(xué)好Scala筷登。
案例:Scala編程實(shí)戰(zhàn)剃根,基于Akka框架,編寫(xiě)一個(gè)簡(jiǎn)單的分布式RPC通信框架
2.使用Spark處理離線數(shù)據(jù)
介紹:Spark是基于內(nèi)存計(jì)算的大數(shù)據(jù)并行計(jì)算框架前方,具有高容錯(cuò)性和高可伸縮性跟继,可以在大量廉價(jià)硬件之上部署大規(guī)模集群种冬,在同等條件下要比Hadoop快10到100倍。
3.使用Spark SQL處理結(jié)構(gòu)化數(shù)據(jù)
介紹:Spark SQL的前身是Shark舔糖,專(zhuān)門(mén)用來(lái)處理結(jié)構(gòu)化的數(shù)據(jù)娱两,類(lèi)似Hive,是將SQL轉(zhuǎn)換成一系列RDD任務(wù)提交到Spark集群中運(yùn)行金吗,由于是在內(nèi)存中完成計(jì)算十兢,要比hive的性能高很多,并且簡(jiǎn)化了開(kāi)發(fā)Spark程序的難度同時(shí)提高了開(kāi)發(fā)效率摇庙。
4.使用Spark Streaming完成實(shí)時(shí)計(jì)算
介紹:Spark Streaming類(lèi)似于Apache Storm旱物,用于流式數(shù)據(jù)的處理。根據(jù)其官方文檔介紹卫袒,Spark Streaming有高吞吐量和容錯(cuò)能力強(qiáng)等特點(diǎn)宵呛。Spark Streaming支持的數(shù)據(jù)輸入源很多,例如:Kafka夕凝、Flume宝穗、Twitter、ZeroMQ和簡(jiǎn)單的TCP套接字等等码秉。數(shù)據(jù)輸入后可以用Spark的高度抽象原語(yǔ)如:map逮矛、reduce、join转砖、window等進(jìn)行運(yùn)算须鼎。而結(jié)果也能保存在很多地方,如HDFS府蔗,數(shù)據(jù)庫(kù)等晋控。另外Spark Streaming也能和MLlib(機(jī)器學(xué)習(xí))以及Graphx完美融合
5.Spark綜合項(xiàng)目:
介紹:該項(xiàng)目使用了Spark SQL和Spark Streaming對(duì)游戲整個(gè)生命周期產(chǎn)生的數(shù)據(jù)進(jìn)行了分析,從玩家第一次登錄游戲到每天產(chǎn)生的游戲日志姓赤,通過(guò)大量的數(shù)據(jù)來(lái)分析該游戲的運(yùn)營(yíng)情況和玩家的各種行為:如活躍用戶(hù)赡译、用戶(hù)留存、充值比例模捂、游戲收人捶朵、外掛分析等。
通過(guò)玩家登錄游戲產(chǎn)生的數(shù)據(jù)分析一天之內(nèi)各個(gè)時(shí)間段進(jìn)入游戲的情況
通過(guò)玩家登陸游戲產(chǎn)生的數(shù)據(jù)分析玩家在全國(guó)地區(qū)的分步情況狂男,調(diào)整廣告投放策略
用戶(hù)留存指標(biāo)可以分析游戲?qū)ν婕业奈ψ劭矗治鲇脩?hù)流失原因
用戶(hù)等級(jí)信息可以分析玩家等等級(jí)分布情況、調(diào)整裝備爆率和游戲難度
通過(guò)上面游戲各個(gè)數(shù)據(jù)指標(biāo)的分析岖食,可以讓游戲運(yùn)維者了解游戲的運(yùn)維情況红碑,為運(yùn)維者提供各種個(gè)性化的調(diào)整策略,從而保證游戲健康、穩(wěn)定的運(yùn)營(yíng)析珊。
希望學(xué)習(xí)大數(shù)據(jù)的朋友可以通過(guò)學(xué)習(xí)路線獲得一些思考和借鑒羡鸥,后續(xù)也會(huì)逐步的完善。
最后忠寻,想學(xué)習(xí)大數(shù)據(jù)的朋友可以加大數(shù)據(jù)交流群:724693112 可以學(xué)習(xí)大數(shù)據(jù)免費(fèi)入門(mén)精品課程和領(lǐng)取大數(shù)據(jù)學(xué)習(xí)資料惧浴,歡迎大家一起來(lái)學(xué)習(xí)。