1. 程式人生 > >大資料時代的學習方向和清晰的路線分享

大資料時代的學習方向和清晰的路線分享

“大資料”可能帶來的巨大價值正漸漸被人們認可,它通過技術的創新與發展,以及資料的全面感知、收集、分析、共享,為人們提供了一種全新的看待世界的方法。更多地基於事實與資料做出決策,這樣的思維方式,可以預見,將推動一些習慣於靠“差不多”執行的社會發生巨大變革。大資料的“樣本=總體”的全資料模式,這是“讓資料發聲”。

 

至於什麼是大資料?定義是大資料(big data),或稱巨量資料,指的是所涉及的資料量規模巨大到無法透過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。而維基百科上給的則是大資料由巨型資料集組成,這些資料集大小常超出常用軟體在可接受時間下的收集、應用、管理和處理能力。

 

而大資料的主要內容也主要是“資料——大資料——分析和挖掘——發現和預測。

大資料的4V特點:Volume、Velocity、Variety、Veracity。大資料的4個“V”,或者說特點有四個層面:第一,資料體量巨大。從TB級別,躍升到PB級別;第二,資料型別繁多。前文提到的網路日誌、視訊、圖片、地理位置資訊等等。第三,價值密度低,商業價值高。以視訊為例,連續不間斷監控過程中,可能有用的資料僅僅有一兩秒。第四,處理速度快。1秒定律。最後這一點也是和傳統的資料探勘技術有著本質的不同。

 

大資料學習方向和路線

一、大資料運維之Linux基礎

打好Linux基礎,以便更好地學習Hadoop,hbase,NoSQL,Spark,Storm,docker,openstack等。因為企業
中的專案基本上都是使用Linux環境下搭建或部署的。

1)Linux系統概述
2)系統安裝及相關配置 
3)Linux網路基礎 
4)OpenSSH實現網路安全連線 
5)vi文字編輯器

6)使用者和使用者組管理
7)磁碟管理 
8)Linux檔案和目錄管理 
9)Linux終端常用命令 
10)linux系統監測與維護

二、大資料開發核心技術 - Hadoop 2.x從入門到精通

 

大資料是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長!大資料學習群:868847735  一起討論進步學習


 

大資料的基石:其一,分散式檔案系統HDFS用於儲存海量資料,無論是Hive、HBase或者Spark資料儲存在其上面;其二是分散式資源管理框架
YARN,是Hadoop 雲作業系統(也稱資料系統),管理叢集資源和分散式資料處理框架MapReduce、Spark應用的資源排程與監控;分散式平行計算框架
MapReduce目前是海量資料並行處理的一個最常用的框架。Hadoop 2.x的編譯、環境搭建、HDFS Shell使用,YARN 叢集資源管理與任務監控,MapReduce編
程,分散式叢集的部署管理(包括高可用性HA)必須要掌握的。

一、初識Hadoop 2.x

1)大資料應用發展、前景
2)Hadoop 2.x概述及生態系統
3)Hadoop 2.x環境搭建與測試

二、深入Hadoop 2.x

1)HDFS檔案系統的架構、功能、設計
2)HDFS Java API使用
3)YARN 架構、叢集管理、應用監控
4)MapReduce程式設計模型、Shuffle過程、程式設計調優

三、高階Hadoop 2.x

1)分散式部署Hadoop 2.x
2)分散式協作服務框架Zookeeper 
3)HDFS HA架構、配置、測試
4)HDFS 2.x中高階特性
5)YARN HA架構、配置
6)Hadoop 主要發行版本(CDH、HDP、Apache)

 

 

 

三、大資料開發核心技術 - 大資料倉庫Hive

hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行
執行。其優點是學習成本低,可以通類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。

一、Hive 初識入門

1)Hive功能、體系結構、使用場景
2)Hive環境搭建、初級使用 
3)Hive原資料配置、常見互動方式

二、Hive深入使用

1)Hive中的內部表、外部表、分割槽表
2)Hive 資料遷移
3)Hive常見查詢(select、where、distinct、join、group by)
4)Hive 內建函式和UDF程式設計

三、Hive高階進階

1)Hive資料的儲存和壓縮
2)Hive常見優化(資料傾斜、壓縮等)

四、結合實際案例分析

1)依據業務設計表
2)資料清洗、匯入(ETL) 
3)使用HiveQL,統計常見的網站指標

四、大資料協作框架 - Sqoop/Flume/Oozie

Sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL 
,Oracle ,Postgres等)中的資料導進到關係型資料庫中。Sqoop專案開始於2009年,最早是作為Hadoop的一個第三方模組存在,後來為了讓使用者能夠快速部
署,也為了讓開發人員能夠更快速的迭代開發,Sqoop獨立成為一個Apache專案。

一、資料轉換工具Sqoop

1)Sqoop功能、使用原則
2)將RDBMS資料匯入Hive表中(全量、增量) 
3)將HDFS上檔案匯出到RDBMS表中

二、檔案收集框架Flume

1)Flume 設計架構、原理(三大元件)
2)Flume初步使用,實時採集資料 
3)如何使用Flume監控資料夾資料,實時採集錄入HDFS中 4)任務排程框架Oozie

三、Oozie功能、安裝部署

1)使用Oozie排程MapReduce Job和HiveQL
2)定時排程任務使用

五、大資料Web開發框架 - 大資料WEB 工具Hue

Hue是一個開源的Apache Hadoop UI系統,最早是由Cloudera Desktop演化而來,由Cloudera貢獻給開源社群,它是基於Python Web框架Django實現的。通
過使用Hue我們可以在瀏覽器端的Web控制檯上與Hadoop叢集進行互動來分析處理資料,例如操作HDFS上的資料,執行MapReduce Job等等。

1)Hue架構、功能、編譯
2)Hue整合HDFS 
3)Hue整合MapReduce

4)Hue整合Hive、DataBase
5)Hue整合Oozie

六、大資料核心開發技術 - 分散式資料庫HBase從入門到精通

HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分散式儲存系統”。HBase在
Hadoop之上提供了類似於Bigtable的能力,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大
規模結構化儲存叢集

一、HBase初窺使用

1)HBase是什麼、發展、與RDBMS相比優勢、企業使用
2)HBase Schema、表的設計
3)HBase 環境搭建、shell初步使用(CRUD等)

二、HBase 深入使用

1)HBase 資料儲存模型
2)HBase Java API使用(CRUD、SCAN等)
3)HBase 架構深入剖析
4)HBase 與MapReduce整合、資料匯入匯出

三、HBase 高階使用

1)如何設計表、表的預分割槽(依據具體業務分析講解)
2)HBase 表的常見屬性設定(結合企業實際)
3)HBase Admin操作(Java API、常見命令)

四、進行分析

1)依據需求設計表、建立表、預分割槽
2)進行業務查詢分析 
3)對於密集型讀和密集型寫進行HBase引數調優

七、大資料核心開發技術 - Storm實時資料處理

Storm是Twitter開源的分散式實時大資料處理框架,被業界稱為實時版Hadoop。 隨著越來越多的場景對Hadoop的MapReduce高延遲無法容忍,比如網站統計、
推薦系統、預警系統、金融系統(高頻交易、股票)等等, 大資料實時處理解決方案(流計算)的應用日趨廣泛,目前已是分散式技術領域最新爆發點,而Storm更是
流計算技術中的佼佼者和主流。 按照storm作者的說法,Storm對於實時計算的意義類似於Hadoop對於批處理的意義。Hadoop提供了map、reduce原語,使我
們的批處理程式變得簡單和高效。 同樣,Storm也為實時計算提供了一些簡單高效的原語,而且Storm的Trident是基於Storm原語更高階的抽象框架,類似於基於
Hadoop的Pig框架, 讓開發更加便利和高效。本課程會深入、全面的講解Storm,並穿插企業場景實戰講述Storm的運用。 淘寶雙11的大螢幕實時監控效果衝擊
了整個IT界,業界為之驚歎的同時更是引起對該技術的探索。 可以自己開發升級版的“淘寶雙11”?

1)Storm簡介和課程介紹
2)Storm原理和概念詳解 
3)Zookeeper叢集搭建及基本使用 
4)Storm叢集搭建及測試 
5)API簡介和入門案例開發 
6)Spout的Tail特性、storm-starter及maven使用、Grouping策略 
7)例項講解Grouping策略及併發 
8)併發度詳解、案例開發(高併發運用) 
9)案例開發——計算網站PV,通過2種方式實現彙總型計算。 
10)案例優化引入Zookeeper鎖控制執行緒操作 
11)計算網站UV(去重計算模式) 
12)【運維】叢集統一啟動和停止shell指令碼開發 
13)Storm事務工作原理深入講解 14)Storm事務API及案例分析

15)Storm事務案例實戰之 ITransactionalSpout 
16)Storm事務案例升級之按天計算 
17)Storm分割槽事務案例實戰 
18)Storm不透明分割槽事務案例實戰 
19)DRPC精解和案例分析 
20)Storm Trident 入門
21)Trident API和概念
22)Storm Trident實戰之計算網站PV
23)ITridentSpout、FirstN(取Top N)實現、流合併和Join
24)Storm Trident之函式、流聚合及核心概念State
25)Storm Trident綜合實戰一(基於HBase的State)
26)Storm Trident綜合實戰二
27)Storm Trident綜合實戰三
28)Storm叢集和作業監控告警開發

八、Spark技術實戰之基礎篇 -Scala語言從入門到精通

為什麼要學習Scala?源於Spark的流行,Spark是當前最流行的開源大資料記憶體計算框架,採用Scala語言實現,各大公司都在使用Spark:IBM宣佈承諾大力推進
Apache Spark專案,並稱該專案為:在以資料為主導的,未來十年最為重要的新的開源專案。這一承諾的核心是將Spark嵌入IBM業內領先的分析和商務平臺,
Scala具有資料處理的天然優勢,Scala是未來大資料處理的主流語言

1)-Spark的前世今生
2)-課程介紹、特色與價值 
3)-Scala程式設計詳解:基礎語法 
4)-Scala程式設計詳解:條件控制與迴圈 
5)-Scala程式設計詳解:函式入門 
6)-Scala程式設計詳解:函式入門之預設引數和帶名引數 
7)-Scala程式設計詳解:函式入門之變長引數 
8)-Scala程式設計詳解:函式入門之過程、lazy值和異常 
9)-Scala程式設計詳解:陣列操作之Array、ArrayBuffer以及遍歷陣列 
10)-Scala程式設計詳解:陣列操作之陣列轉換

11)-Scala程式設計詳解:Map與Tuple
12)-Scala程式設計詳解:面向物件程式設計之類 
13)-Scala程式設計詳解:面向物件程式設計之物件 
14)-Scala程式設計詳解:面向物件程式設計之繼承 
15)-Scala程式設計詳解:面向物件程式設計之Trait 
16)-Scala程式設計詳解:函數語言程式設計 
17)-Scala程式設計詳解:函數語言程式設計之集合操作 
18)-Scala程式設計詳解:模式匹配 
19)-Scala程式設計詳解:型別引數 
20)-Scala程式設計詳解:隱式轉換與隱式引數 
21)-Scala程式設計詳解:Actor入門

九、大資料核心開發技術 - 記憶體計算框架Spark

Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用並行框架,Spark,擁有Hadoop MapReduce所具有的優點。啟用了記憶體分佈資料集,除
了能夠提供互動式查詢外,它還可以優化迭代工作負載。Spark Streaming: 構建在Spark上處理Stream資料的框架,基本的原理是將Stream資料分成小的時間片斷
(幾秒),以類似batch批量處理的方式來處理這小部分資料

1)Spark 初識入門
2)Spark 概述、生態系統、與MapReduce比較
3)Spark 編譯、安裝部署(Standalone Mode)及測試
4)Spark應用提交工具(spark-submit,spark-shell) 
5)Scala基本知識講解(變數,類,高階函式) 
6)Spark 核心RDD
7)RDD特性、常見操作、快取策略 
8)RDD Dependency、Stage常、原始碼分析
9)Spark 核心元件概述

10)案例分析
11)Spark 高階應用
12)Spark on YARN執行原理、執行模式及測試
13)Spark HistoryServer歷史應用監控
14)Spark Streaming流式計算
15)Spark Streaming 原理、DStream設計
16)Spark Streaming 常見input、out
17)Spark Streaming 與Kafka整合
18)使用Spark進行分析

十、大資料核心開發技術 - Spark深入剖析

1)Scala程式設計、Hadoop與Spark叢集搭建、Spark核心程式設計、Spark核心原始碼深度剖析、Spark效能調優
2)Spark原始碼剖析 

十一、企業大資料平臺高階應用

完成大資料相關企業場景與解決方案的剖析應用及結合一個電子商務平臺進行實戰分析,主要包括有: 企業大資料平臺概述、搭建企業
大資料平臺、真實伺服器手把手環境部署、使用CM 5.3.x管理CDH 5.3.x叢集

1)企業大資料平臺概述
2)大資料平臺基本元件 
3)Hadoop 發行版本、比較、選擇
4)叢集環境的準備(系統、基本配置、規劃等) 
5)搭建企業大資料平臺 
6)以實際企業專案需求為依據,搭建平臺 
7)需求分析(主要業務) 
8)框架選擇(Hive\HBase\Spark等)

9)真實伺服器手把手環境部署
10)安裝Cloudera Manager 5.3.x
11)使用CM 5.3.x安裝CDH 5.3.x
12)如何使用CM 5.3.x管理CDH 5.3.x叢集
13)基本配置,優化 
14)基本效能測試 
15)各個元件如何使用

十二、專案實戰:驢媽媽旅遊網大型離線資料電商分析平臺

離線資料分析平臺是一種利用hadoop叢集開發工具的一種方式,主要作用是幫助公司對網站的應用有一個比較好的瞭解。尤其是在電商、旅遊、銀行、證券、遊戲
等領域有非常廣泛,因為這些領域對資料和使用者的特性把握要求比較高,所以對於離線資料的分析就有比較高的要求了。 本課程講師本人之前在遊戲、旅遊等公司
專門從事離線資料分析平臺的搭建和開發等,通過此專案將所有大資料內容貫穿,並前後展示!

1)Flume、Hadoop、Hbase、Hive、Oozie、Sqoop、離線資料分析,SpringMVC,Highchat
2)Flume+Hadoop+Hbase+SpringMVC+MyBatis+MySQL+Highcharts實現的電商離線資料分析 
3)日誌收集系統、日誌分析、資料展示設計

十三、專案實戰:基於1號店的電商實時資料分析系統

1)全面掌握Storm完整專案開發思路和架構設計
2)掌握Storm Trident專案開發模式
3)掌握Kafka運維和API開發、與Storm介面開發 
4)掌握HighCharts各類圖表開發和實時無重新整理載入資料 
5)熟練搭建CDH5生態環境完整平臺

6)靈活運用HBase作為外部儲存
7)可以做到以一己之力完成從後臺開發(Storm、Kafka、Hbase開發) 
到前臺HighCharts圖表開發、Jquery運用等,所有工作一個人搞定! 
可以一個人搞定淘寶雙11大螢幕專案!

十四、專案實戰:基於美團網的大型離線電商資料分析平臺

本專案使用了Spark技術生態棧中最常用的三個技術框架,Spark Core、Spark SQL和Spark Streaming,進行離線計算和實時計算業務模組的開發。實現了包括用
戶訪問session分析、頁面單跳轉化率統計、熱門商品離線統計、 廣告點選流量實時統計4個業務模組。過合理的將實際業務模組進行技術整合與改造,
該專案完全涵蓋了Spark Core、Spark SQL和Spark Streaming這三個技術框架中幾乎所有的功能點、知識點以及效能優化點。 僅一個專案,即可全面掌握Spark
技術在實際專案中如何實現各種型別的業務需求!在專案中,重點講解了實際企業專案中積累下來的寶貴的效能調優 、troubleshooting以及資料傾斜解決方案等知識和技術

1)真實還原完整的企業級大資料專案開發流程:
專案中採用完全還原企業大資料專案開發場景的方式來講解,
每一個業務模組的講解都包括了資料分析、需求分析、方案設計、資料庫設計、編碼實現、功能測試、效能調優、troubleshooting與解決資料傾斜(後期運維)等環節
,真實還原企業級大資料專案開發場景。
讓學員掌握真實大資料專案的開發流程和經驗!

2)現場Excel手工畫圖與寫筆記:所有複雜業務流程、架構原理
、Spark技術原理、業務需求分析、技術實現方案等知識的講解
,採用Excel畫圖或者寫詳細比較的方式進行講解與分析,
細緻入微、形象地透徹剖析理論知識,幫助學員更好的理解、記憶與複習鞏固。

十五、機器學習及實踐

基於PyMC語言以及一系列常用的Python資料分析框架,如NumPy、SciPy和Matplotlib,通過概率程式設計的方式,講解了貝葉斯推斷的原理和實現方法。
該方法常常可以在避免引入大量數學分析的前提下,有效地解決問題。課程中使用的案例往往是工作中遇到的實際問題,有趣並且實用。迴歸等演算法有較為深入的瞭解,以Python程式語言為基礎,在不涉及大量數學模型與複雜程式設計知識的前提下,熟悉並且掌握當下最流行的機器學習演算法,如迴歸、決策樹、SVM等,並通過程式碼例項來 展示所討論的演算法的實際應用。

1)Mahout、Spark MLlib概述 
2)機器學習概述 
3)線性迴歸及Mahout、SparkMLlib案例 
4)Logistic迴歸、softmax分類及Mahout、SparkMLlib案例 
5)KNN及Mahout、SparkMllib案例 
6)SVM及Mahout、SparkMllib案例 
7)決策樹及Mahout、SparkMllib案例

8)隨機森林及Mahout、SparkMllib案例 
9)GBDT及Mahout、SparkMllib案例 
10)KMeans及Mahout、SparkMllib案例 
11)貝葉斯及Mahout、SparkMllib案例 
12)整合學習 
13)特徵處理及模型優化

十六、推薦系統

開發推薦系統的方法,尤其是許多經典演算法,重點探討如何衡量推薦系統的有效性。課程內容分為基本概念和進展兩部分:前者涉及協同推薦、基於
內容的推薦、基於知識的推薦、混合推薦方法,推薦系統的解釋、評估推薦系統和例項分析;後者包括針對推薦系統的攻擊、線上消費決策、推薦系統和下一代網際網路以及普適環境中的推薦

1)協同過濾推薦
2)基於內容的推薦
3)基於知識的推薦
4)混合推薦方法

5)推薦系統的解釋 
6)評估推薦系統
7)案例研究

十七、分散式搜尋引擎Elasticsearch開發

聯網+、大資料、網路爬蟲、搜尋引擎等等這些概念,如今可謂炙手可熱

1)Elasticsearch概念
2)Elasticsearch安裝和外掛介紹
3)Elasticsearch基本使用和簡單查詢 
4)Elasticsearch的Java客戶端使用

5)Elasticsearch索引和Mapping 
6)Elasticsearch搜尋深入 
7)Elasticsearch與Spring整合 
8)Elasticsearch實戰

十八、大資料高併發系統架構實戰方案(LVS負載均衡、Nginx、共享儲存、海量資料、佇列快取 )

隨著網際網路的發展,高併發、大資料量的網站要求越來越高。而這些高要求都是基礎的技術和細節組合而成的。

十九、大資料高併發伺服器實戰

隨著Web技術的普及,Internet上的各類網站第天都在雪崩式增長。但這些網站大多在效能上沒做過多考慮。當然,它們情況不同。有的是Web技術本身的原因(主
要是程式程式碼問題),還有就是由於Web伺服器未進行優化。不管是哪種情況,一但使用者量在短時間內激增,網站就會明顯變慢,甚至拒絕放訪問。要想有效地解決
這些問題,就只有依靠不同的優化技術。本課程就是主要用於來解決大型網站效能問題,能夠承受大資料、高併發。主要涉及 技術有:nginx、tomcat、memcached、redis快取、負載均衡等高階開發技術

 

大資料分析、資料視覺化

二十、Tableau商業智慧與視覺化應用實戰

Tableau的資料連線與編輯、圖形編輯與展示功能,包括資料連線與管理、基礎與高階圖形分析、地圖分析、高階資料操作、基礎統計分析、如何與R整合進行高階分析、分析圖表整合以及分析成果共享等主要內容。

1)什麼是資料視覺化? 
2)如何用圖表講故事
3)Tableau發展歷程 
4)Tableau家族產品 
5)Tableau產品優勢 
6)Tableau Desktop安裝配置 
7)Tableau的導航與選單 
8)Tableau設計流程最佳實踐 
9)Tableau資料型別與檔案 
10)Tableau資料來源初探 
11)資料來源深入

12)工作表
13)Tableau中的函式與計算
14)Tableau高階分析與專案實戰
15)Tableau中的排序與篩選器
16)Tableau中的引數
17)Tableau圖表分析
18)Tableau地圖繪製與影象
19)Tableau 儀表盤和故事
20)專案一_教育網站指標評估
21)專案二_網站使用者行為分析
22)專案三_零售行業進銷存分析

二十一、Echarts從入門到上手實戰

對資料視覺化技術有一個全面、系統、深入的瞭解,最終達到能夠利用Echarts圖表結合後端資料進行前端視覺化報表展示的目的,

1)資料視覺化概述 
2)什麼是資料視覺化? 
3)經典視覺化案例 
4)大資料視覺化的價值 
5)資料視覺化工具、案例、書籍 
6)Echarts概述 
7)Echarts特性介紹 
8)如何快速上手開發一個Echarts視覺化圖表 
9)如何閱讀Echarts官方文件 
10)Echarts學習必備基礎知識

11)Echarts3.x與Echarts2.x的區別 
12)Echarts基礎架構與常見名詞術語 
13)Echarts標準開發模板 
14)十大常見圖表_小結 
15)Echarts圖表高階
16)北上廣最佳前10航行路線圖
17)豆瓣最新熱映電影排名分析
18)圖表適用場景
19)資料視覺化方法 
20)資料視覺化誤區

 

二十二、Vue.js快速上手

Vue.js是一套構建使用者介面的輕量級MVVM框架,與其他重量級框架不同的是, Vue.js 的核心庫只關注檢視層,並且非常容易學習,很容易與其它前端技術或已有的專案整合。 本課程主要分兩部分講解:1.掌握Vue.js設計規範的語法; 

1)Vue.js簡介和MVC、MVP以及MVVM架構
2)Vue.js介紹、開發工具的介紹以及HelloWorld程式演示
3)Vue.js的構造器和擴充套件
4)Vue例項的屬性
5)Vue例項生命週期
6)計算屬性及案例
7)方法呼叫
8)觀察屬性
9)文字、HTML插值
10)屬性插值和表示式
11)指令的格式
12)條件指令
13)v-show指令
14)v-bind指令
15)列表渲染
16)過濾器
17)事件處理

18)事件修飾符
19)表單處理
20)自定義元件
21)過渡效果
22)動畫效果
23)過渡和動畫的回撥函式
24)路由技術
25)混合
26)Render函式
27)單檔案工程
28)單元測試
29)伺服器端渲染
30)生產環境部署
31)動態評分案例
32)圖片輪播案例
33)OLTP系統的管理介面
34)聊天室案例