一,題記

要說當下IT行業什麼最火?ABC無出其右。所謂ABC者,AI + Big Data + Cloud也,即人工智慧、大資料和雲計算(雲平臺)。每個領域目前都有行業領袖在引領前行,今天我們來討論下大資料Big Data這個方向。

大資料學習經典路線?

二,大資料裡面的角色

角色一:大資料工程

大資料工程需要解決資料的定義、收集、計算與儲存的工作,因此大資料工程師們在設計和部署這樣的系統時首要考慮的是資料高可用的問題,即大資料工程系統需要實時地為下游業務系統或分析系統提供資料服務;

角色二:大資料分析

大資料分析角色定位於如何利用資料——即從大資料工程系統中接收到資料之後如何為企業或組織提供有產出的資料分析,並且確實能夠幫助到公司進行業務改善或提升服務水平,所以對於大資料分析師來說,他們首要解決的問題是發現並利用資料的價值,具體可能包括:趨勢分析、模型建立以及預測分析等。

這兩類角色相互依存但又獨立運作,何意?沒有大資料工程,大資料分析便無從談起;但倘若沒有大資料分析,我也實在想不出大資料工程存在的理由。這就類似於結婚和談戀愛——戀愛的目的是為了結婚,且不以結婚為目的的談戀愛都是耍流氓。

大資料學習QQ群:71658加1014

簡單總結一下,大資料工程角色需要考慮資料的收集、計算(或是處理)和儲存;大資料分析角色則是執行資料的高階計算。

三,大資料工程師

針對角色一:大資料工程說,對應的工作崗位就叫大資料工程師,對於大資料工程師而言,您至少要掌握以下技能:

linux基礎

因為大資料體系,基本都是開源軟體,這些開源軟體都是在開源的linux系統上執行的,所以你必須會基本的linux操作,比如使用者管理,許可權,shell程式設計之類的

一門JVM系語言:

當前大資料生態JVM系語言類的比重極大,某種程度上說是壟斷也不為過。這裡我推薦大家學習Java或Scala,至於Clojure這樣的語言上手不易,其實並不推薦大家使用。另外,如今是“母以子貴”的年代,某個大資料框架會帶火它的程式語言的流行,比如Docker之於Go、Kafka之於Scala。

因此筆者這裡建議您至少要精通一門JVM系的語言。值得一提的,一定要弄懂這門語言的多執行緒模型和記憶體模型,很多大資料框架的處理模式其實在語言層面和多執行緒處理模型是類似的,只是大資料框架把它們引申到了多機分散式這個層面。

大資料學習經典路線?

筆者建議:學習Java或Scala

計算處理框架:

嚴格來說,這分為離線批處理和流式處理。流式處理是未來的趨勢,建議大家一定要去學習;而離線批處理其實已經快過時了,它的分批處理思想無法處理無窮資料集,因此其適用範圍日益縮小。事實上,Google已經在公司內部正式廢棄了以MapReduce為代表的離線處理。

因此如果要學習大資料工程,掌握一門實時流式處理框架是必須的。當下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年風頭正勁的Apache Flink。當然Apache Kafka也推出了它自己的流式處理框架:Kafka Streams

筆者建議:學習Flink、Spark Streaming或Kafka Streams中的一個

熟讀Google大神的這篇文章:《The world beyond batch: Streaming 101》

分散式儲存框架:

雖說MapReduce有些過時了,但Hadoop的另一個基石HDFS依然堅挺,並且是開源社群最受歡迎的分散式儲存,絕對您花時間去學習。如果想深入研究的話,Google的GFS論文也是一定要讀的([url=]

https://

static。googleusercontent。com

/media/research。google。com/en//archive/gfs-sosp2003。pdf

[/url])。當然開源世界中還有很多的分散式儲存,國內阿里巴巴的OceanBase也是很優秀的一個。

筆者建議:學習HDFS

資源排程框架:

Docker可是整整火了最近一兩年。各個公司都在發力基於Docker的容器解決方案,最有名的開源容器排程框架就是K8S了,但同樣著名的還有Hadoop的YARN和Apache Mesos。後兩者不僅可以排程容器叢集,還可以排程非容器叢集,非常值得我們學習。

筆者建議:學習YARN

分散式協調框架:

有一些通用的功能在所有主流大資料分散式框架中都需要實現,比如服務發現、領導者選舉、分散式鎖、KV儲存等。這些功能也就催生了分散式協調框架的發展。最古老也是最有名的當屬Apache Zookeeper了,新一些的包括Consul,etcd等。學習大資料工程,分散式協調框架是不能不瞭解的, 某種程度上還要深入瞭解。

筆者建議:學習Zookeeper——太多大資料框架都需要它了,比如Kafka, Storm, HBase等

KV資料庫:

典型的就是memcache和Redis了,特別是Redis簡直是發展神速。其簡潔的API設計和高效能的TPS日益得到廣大使用者的青睞。即使是不學習大資料,學學Redis都是大有裨益的。

筆者建議:學習Redis,如果C語言功底好的,最好熟讀原始碼,反正原始碼也不多

列式儲存資料庫:

筆者曾經花了很長的時間學習Oracle,但不得不承認當下關係型資料庫已經慢慢地淡出了人們的視野,有太多的方案可以替代rdbms了。人們針對行式儲存不適用於大資料ad-hoc查詢這種弊端開發出了列式儲存,典型的列式儲存資料庫就是開源社群的HBASE。實際上列式儲存的概念也是出自Google的一篇論文:Google BigTable,有興趣的話大家最好讀一下:[url=]

https://

static。googleusercontent。com

/media/research。google。com/en//archive/bigtable-osdi06。pdf

[/url]

筆者建議:學習HBASE,這是目前應用最廣泛的開源列式儲存

訊息佇列:

大資料工程處理中訊息佇列作為“削峰填谷”的主力系統是必不可少的,當前該領域內的解決方案有很多,包括ActiveMQ,Kafka等。國內阿里也開源了RocketMQ。這其中的翹楚當屬Apache Kafka了。Kafka的很多設計思想都特別契合分佈流式資料處理的設計理念。這也難怪,Kafka的原作者Jay Kreps可是當今實時流式處理方面的頂級大神。

筆者建議:學習Kafka,不僅僅好找工作(幾乎所有大資料招聘簡歷都要求會Kafka:-) ),還能觸類旁通進一步理解基於備份日誌方式的資料處理範型

四,大資料分析師Or資料科學家

針對角色二:大資料分析,對應的工作崗位就叫大資料分析師或者資料科學家,作為資料科學家的我們必須要掌握以下技能:

數學功底:

微積分是嚴格要掌握的。不一定要掌握多元微積分,但一元微積分是必須要熟練掌握並使用的。另外線性代數一定要精通,特別是矩陣的運算、向量空間、秩等概念。當前機器學習框架中很多計算都需要用到矩陣的乘法、轉置或是求逆。雖然很多框架都直接提供了這樣的工具,但我們至少要了解內部的原型原理,比如如何高效判斷一個矩陣是否存在逆矩陣並如何計算等。

大資料學習經典路線?

推薦學習Strang的線性代數:《Introduction to Linear Algebra》——這是最經典的教材,沒有之一!

數理統計:

機率論和各種統計學方法要做到基本掌握,比如貝葉斯機率如何計算?機率分佈是怎麼回事?雖不要求精通,但對相關背景和術語一定要了解

找一本《機率論》重新學習下

互動式資料分析框架:

這裡並不是指SQL或資料庫查詢,而是像Apache Hive或Apache Kylin這樣的分析互動框架。開源社群中有很多這樣類似的框架,可以使用傳統的資料分析方式對大資料進行資料分析或資料探勘。

筆者有過使用經驗的是Hive和Kylin。不過Hive特別是Hive1是基於MapReduce的,效能並非特別出色,而Kylin採用資料立方體的概念結合星型模型,可以做到很低延時的分析速度,況且Kylin是第一個研發團隊主力是中國人的Apache孵化專案,因此日益受到廣泛的關注。

首先學習Hive,有時間的話瞭解一下Kylin以及背後的資料探勘思想。

機器學習框架:

機器學習當前真是火爆宇宙了,人人都提機器學習和AI,但筆者一直認為機器學習恰似幾年前的雲計算一樣,目前雖然火爆,但沒有實際的落地專案,可能還需要幾年的時間才能逐漸成熟。

不過在現在就開始儲備機器學習的知識總是沒有壞處的。說到機器學習的框架,大家耳熟能詳的有很多種, 信手拈來的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow領銜。

配上大資料基礎入門圖:

大資料QQ學習群:7165八1014 共同進步學習

大資料學習路線

1。 Linux基礎和分散式叢集技術

學完此階段可掌握的核心能力:

熟練使用linux,熟練安裝Linux上的軟體,瞭解熟悉負載均衡、高可靠等叢集相關概念,搭建網際網路高併發、高可靠的服務 架構;

學完此階段可解決的現實問題:

搭建負載均衡、高可靠的伺服器叢集,可以增大網站的併發訪問量,保證服務不間斷地對外服務;

學完此階段可擁有的市場價值:

具備初級程式設計師必要具備的Linux伺服器運維能力。

1。內容介紹:

在 大資料領域,使用最多的 作業系統就是Linux系列,並且幾乎都是分散式叢集。該課程為大資料的基礎課程,主要介紹Linux作業系統、Linux常用命令、Linux常用軟體安裝、Linux網路、防火牆、Shell程式設計等。

2。案例:搭建網際網路高併發、高可靠的服務架構。

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。2 hive快速入門

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)來源型別分析視覺化效果:

3。Storm實時計算部分階段

實時課程分為兩個部分:流式計算核心技術和流式計算計算案例實戰。

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密切結合起來,共同從事在網路環境下的商業電子化應用。使用者資訊容易受到計算機病毒、駭客的攻擊,商業資訊和資料易於搭截偵聽、口令試探和竊取,為了防止使用者資訊異常給商家和使用者帶來不必要的損失,企業期望針對使用者的訂單進行分析,對觸發規則的訂單進行風險預警,在必要情況下進行攔截及鎖定訂單。

(圖為訂單異常攔截)

4。Spark記憶體計算階段

學完此階段可掌握的核心能力:

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對遊戲整個生命週期產生的資料進行了分析,從玩家第一次登入遊戲到每天產生的遊戲日誌,透過大量的資料來分析該遊戲的運營情況和玩家的各種行為:如活躍使用者、使用者留存、充值比例、遊戲收人、外掛分析等。

透過玩家登入遊戲產生的資料分析一天之內各個時間段進入遊戲的情況

透過玩家登陸游戲產生的資料分析玩家在全國地區的分步情況,調整廣告投放策略

使用者留存指標可以分析遊戲對玩家的吸引力,分析使用者流失原因

使用者等級資訊可以分析玩家等等級分佈情況、調整裝備爆率和遊戲難度

透過上面遊戲各個資料指標的分析,可以讓遊戲運維者瞭解遊戲的運維情況,為運維者提供各種個性化的調整策略,從而保證遊戲健康、穩定的運營。

大資料學習群:716581014 一起學習