1. 程式人生 > >一份詳細的大資料學習路線圖

一份詳細的大資料學習路線圖


 

Hadoop大資料學習線路圖

入門知識

對於我們新手入門學習hadoop的朋友來說,首先了解一下雲端計算和雲端計算技術是有必要的。下面先是介紹雲端計算和雲端計算技術的:

雲端計算,是一種基於網際網路的計算方式,通過這種方式,共享的軟硬體資源和資訊可以按需求提供給計算機和其他裝置,主要是基於網際網路的相關服務地增加、使用和交付模式,通常涉及通過網際網路來提供動態易擴充套件且經常是虛擬化的資源。雲是網路、網際網路的一種比喻說法。

 

大資料學習加群:716伍捌1014

什麼是雲端計算?

什麼是雲端計算技術?

在世界上雲端計算已經大面流行,有很流行的Google、Drive、SkyDrive、Dropbox、亞馬遜雲服務等等。在國內百度雲端儲存、360雲端儲存都是比較流行的。

我們接下來就應該會想到大資料儲存,目前開源市場上最流行的應該是hadoop分散式儲存,已經有大部分網際網路公司已經開始使用,例如百度、360、阿里巴巴,其中一部分公司已經把hadoop作為他們的核心產品例如英特爾、IBM併為部分工作提供過大資料的解決方案,

 

Hadoop基礎

Hadoop是一個能夠對大量資料進行分散式處理的軟體框架,它是一種技術的實現,是雲端計算技術中重要的組成部分,雲端計算的概念更廣泛且偏向業務而不是必須拘泥於某項具體技術,雲端計算的存在只是一種新的商業計算模型和服務模式。因此,雲端計算才會出現“橫看成嶺側成峰,遠近高低各不同”,各種各樣層出不窮的理解。

對於初學hadoop的朋友來說可能基於迫切尋找一本入門的書,我個人覺得不用於急於尋找書,先了解hadoop是否做什麼、它能做什麼、能帶來什麼 hadoop使用場景、Hadoop到底能做什麼?怎麼用hadoop?,當大家對這些有所瞭解,就會如何入手學習hadoop接下來大家應該進行系統性的學習hadoop了,我個人建議不要盲目的去搭建hadoop環境,熟悉瞭解hadoop基本知識及其所需要的知識例如java基礎、linux環境、linux常用命令,它相關產品及其衍生產品,他們之間是什麼關係如何工作,每個產品它們的特點是什麼,

下面是hadoop一些基本知識:

1 hadoop HDFS檔案系統的特徵

儲存極大數目的資訊(terabytes or petabytes),將資料儲存到大量的節點當中。支援很大單個檔案。
提供資料的高可靠性,單個或者多個節點不工作,對系統不會造成任何影響,資料仍然可用。
提供對這些資訊的快速訪問,並提供可擴充套件的方式。能夠通過簡單加入更多伺服器的方式就能夠服務更多的客戶端。
HDFS是針對MapReduce設計的,使得資料儘可能根據其本地區域性性進行訪問與計算。
2 Hadoop簡介(1):什麼是Map/Reduce

3 Mapreduce 整個工作機制圖

4 Hadoop mapper類的閱讀

5 Hadoop reducer類的閱讀

6 Mapreduce shuffle和排序

上面這些都是hadoop核心部分,當這些有所瞭解後,大家基本上可以具備大家hadoop環境的條了。hadoop部署方式為單機模式、偽分散式、完全分散式。對單機模式大家可以不用去關心和學習,在學習中我個人建議是搭建偽分散式,完全分散式是生產環境中使用,當大家把偽分散式後,必須對完全分散式有所瞭解,知道是如何工作的,也可以試著搭建hadoop的完成分散式。現在hadoop已經發行了最新的2.2.x版本,但是不測試不夠全面不夠穩定,大家應該選擇比較穩定的版本學習,因為在公司中還是會使用穩定的版本,2.2.x版本中一些處理機制和方案是值得我們學習的,需要有所瞭解的是, Hadoop 各個釋出版的特性以及穩定性。

大資料指不用隨機分析法這樣捷徑,而採用所有資料進行分析處理的方法。網際網路時代每個企業每天都要產生龐大的資料,對資料進行儲存,對有效的資料進行挖掘分析並應用需要依賴於大資料開發,大資料開發課程採用真實商業資料來源並融合雲端計算+機器學習,讓學員有實力入職一線網際網路企業。

 

大資料學習加群:716581014

階段一、Linux&&Hadoop生態體系

1、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專案部署

2、大型網站高併發處理

1) 第四層負載均衡

a) Lvs負載均衡

i. 負載演算法,NAT模式,直接路由模式(DR),隧道模式(TUN)

b) F5負載均衡器介紹

2) 第七層負載均衡

a) Nginx

b) Apache

3) Tomcat、jvm優化提高併發量

4) 快取優化

a) Java快取框架

i. Oscache,ehcacheb) 快取資料庫

i. Redis,Memcached

5) Lvs+nginx+tomcat+redis|memcache構建二層負載均衡千萬併發處理

6) Haproxy

7) Fastdfs小檔案獨立儲存管理

8) Redis快取系統

a) Redis基本使用

b) Redis sentinel高可用

c) Redis好友推薦演算法

3、Lucene課程

1) Lucene介紹

2) Lucene 倒排索引原理

3) 建索引 IndexWriter

4) 搜尋 IndexSearcher

5) Query

6) Sort和 過濾 (filter)

7) 索引優化和高亮

4、Solr課程

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叢集搭建

5、Hadoop離線計算大綱

1) Hadoop生態環境介紹

2) Hadoop雲端計算中的位置和關係

3) 國內外Hadoop應用案例介紹

4) Hadoop 概念、版本、歷史

5) Hadoop 核心組成介紹及hdfs、mapreduce 體系結構

6) Hadoop 的叢集結構

7) Hadoop 偽分佈的詳細安裝步驟

8) 通過命令列和瀏覽器觀察hadoop

9) HDFS底層工作原理

10) HDFS datanode,namenode詳解

11) Hdfs shell

12) Hdfs java api

13) Mapreduce四個階段介紹

14) Writable

15) InputSplit和OutputSplit

16) Maptask

17) Shuffle:Sort,Partitioner,Group,Combiner

18) Reducer

19) 二次排序

20) 倒排序索引

21) 最優路徑

22) 電信資料探勘之-----移動軌跡預測分析(中國稜鏡計劃)

23) 社交好友推薦演算法

24) 網際網路精準廣告推送 演算法

25) 阿里巴巴天池大資料競賽 《天貓推薦演算法》案例

26) Mapreduce實戰pagerank演算法

27) Hadoop2.x叢集結構體系介紹

28) Hadoop2.x叢集搭建

29) NameNode的高可用性(HA)

30) HDFS Federation

31) ResourceManager 的高可用性(HA)

32) Hadoop叢集常見問題和解決方法

33) Hadoop叢集管理

6、分散式資料庫Hbase

1) HBase與RDBMS的對比

2) 資料模型

3) 系統架構

4) HBase上的MapReduce

5) 表的設計

6) 叢集的搭建過程講解

7) 叢集的監控

8) 叢集的管理

9) HBase Shell以及演示

10) Hbase 樹形表設計

11) Hbase 一對多 和 多對多 表設計

12) Hbase 微博 案例

13) Hbase 訂單案例

14) Hbase表級優化

15) Hbase 寫資料優化

16) Hbase 讀資料優化

7、資料倉庫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 優化

8、資料遷移工具Sqoop

1) 介紹 和 配置Sqoop

2) Sqoop shell使用

3) Sqoop-importa) DBMS-hdfsb) DBMS-hivec) DBMS-hbase

4) Sqoop-export

9、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 的整合

10、Zookeeper開發

1) Zookeeper java api開發

2) Zookeeper rmi高可用分散式叢集開發

3) Zookeeper redis高可用監控實現

4) Netty 非同步io通訊框架

5) Zookeeper實現netty分散式架構的高可用

11、某一線公司的真實專案

專案技術架構體系:

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 定時呼叫和監控

階段二、大資料計算框架體系

1、Storm基礎

Storm是什麼

Storm架構分析

Storm程式設計模型、Tuple原始碼、併發度分析

Maven環境快速搭建

Storm WordCount案例及常用Api

Storm+Kafka+Redis業務指標計算

Storm叢集安裝部署

Storm原始碼下載編譯

2、Storm原理

Storm叢集啟動及原始碼分析

Storm任務提交及原始碼分析

Storm資料傳送流程分析

Strom通訊機制分析淺談

Storm訊息容錯機制及原始碼分析

Storm多stream專案分析

Storm Trident和感測器資料

實時趨勢分析

Storm DRPC(分散式遠端呼叫)介紹

Storm DRPC實戰講解

編寫自己的流式任務執行框架

3、訊息佇列kafka

訊息佇列是什麼

kafka核心元件

kafka叢集部署實戰及常用命令

kafka配置檔案梳理

kafka JavaApi學習

kafka檔案儲存機制分析

kafka的分佈與訂閱

kafka使用zookeeper進行協調管理

4、Redis

nosql介紹

redis介紹

redis安裝

客戶端連線

redis的資料功能

redis持久化

redis應用案例

5、zookeper

Zookeeper簡介

Zookeeper叢集部署

zookeeper核心工作機制

Zookeeper命令列操作

Zookeeper客戶端API

Zookeeper應用案例

Zookeeper原理補充

6、日誌告警系統專案實戰

需求分析

架構及功能設計

資料採集功能開發及常見問題

資料庫模型設計及開發

Storm程式設計及功能開發

整合測試及執行

優化升級及常見問題

7、猜你喜歡推薦系統實戰

推薦系統基礎知識

推薦系統開發流程分析

mahout協同過濾Api使用

Java推薦引擎開發實戰

推薦系統整合執行

階段三、雲端計算體系

1、Docker 課程

基本介紹

vm docker 對比

docker基本架構介紹

unfs cgroup namespace

程序虛擬化 輕量級虛擬化

docker 安裝

docker 映象製作

docker 常用命令

docker 映象遷移

docker pipework(i.openvswitch)

docker weave

2、ReactJS框架

虛擬化介紹,虛擬化適用場景等等

Qemu Libvirt & KVM

安裝KVM, Qemu, Libvirt

QEMU-KVM: 安裝第一個能上網的虛擬機器

Kvm虛擬機器 nat,網橋基本原理

kvm虛擬機器克隆

kvm虛擬機器vnc配置

kvm虛擬機器擴充套件磁碟空間

Kvm快照

Kvm 遷移

Java,python,c語言程式設計控制kvm

構建自己的虛擬雲平臺

3、AngularJS框架

openstack介紹和模組基本原理分析

openstack多節點安裝部署(a.採用centos6.x系統)

Keystone基本原理

glance

Cinder

Swift

Neutron

Openstack api 二次開發

階段四、機器學習&&深度學習

1、R語言&&機器學習

1) R語言介紹,基本函式,資料型別

2) 線性迴歸

3) 樸素貝葉斯聚類

4) 決策樹分類

5) k均值聚類

a) 離群點檢測

6) 關聯規則探索

7) 神經網路

2、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) 微博聚類案例

3、專案實戰

專案技術架構體系:

a) 分散式平臺 Hadoop,MapReduce

b) 資料採集 Flume

c) 資料清洗 ETL

d) 資料庫 Hbase,Redis

e) 機器學習 Mahout