1. 程式人生 > >最全的大數據入門學習路線

最全的大數據入門學習路線

使用命令 性能監控 -i 解釋 單例 多維分析 海量數據 結合 線程池

摘要:第一階段:Linux課程講解Linux基礎操作,講的是在命令行下進行文件系統的操作,這是Hadoop學習的基礎,後面的所有視頻都是基於linux操作的。鑒於很多學員沒有linux基礎,特增加該內容,保證零linux基礎入門。如果你從沒有使用過linux,別擔心,本節內容可以讓你入門。Linux認識linux如何使用vmware安裝linux鏡像認識linux的桌面環境、shell環境在shell環境下進行文件系統的操作,掌握more、touch、cp、mv、rm等20多個常用。

第一階段:Linux課程

講解Linux基礎操作,講的是在命令行下進行文件系統的操作,這是Hadoop學習的基礎,後面的所有視頻都是基於linux操作的。鑒於很多學員沒有linux基礎,特增加該內容,保證零linux基礎入門。

我還是要推薦下我自己創建的大數據資料分享群142973723,這是大數據學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享幹貨,包括我整理的一份適合零基礎學習大數據資料和入門教程。

如果你從沒有使用過linux,別擔心,本節內容可以讓你入門。

Linux

認識linux

如何使用vmware安裝linux鏡像

認識linux的桌面環境、shell環境

在shell環境下進行文件系統的操作,掌握more、touch、cp、mv、rm等20多個常用命令

學習linux的網絡管理,掌握ip、hostname等設置

學習vmware與linux的通信設置,掌握如何實現host-only、bridge、nat等網絡連接方式

學習linux的進程管理,掌握如何查看、刪除進程

學習linux的軟件管理,掌握java、mysql等安裝

學習環境變量配置,掌握如何設置環境變量

學習linux的ssh管理,掌握如何實現免密碼登錄

學習linux的防火墻管理,掌握如何關閉防火墻及開放指定端口

學習linux的調度管理,掌握crontab的使用

第二階段:hadoop2課程

搭建偽分布實驗環境: 本節是最基本的課程,屬於入門級別,主要講述在linux單機上面安裝hadoop的偽分布模式,在linux集群上面安裝hadoop集群。對於不熟悉linux的同學,課程中會簡單的講解常用的linux命令。這兩種是必須要掌握的。通過現在的教學發現,很多同學並不能正確的配置環境。

搭建偽分布實驗環境

Hadoop概念、版本、歷史

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

Hadoop的集群結構

Hadoop偽分布的詳細安裝步驟

如何通過命令行和瀏覽器觀察hadoop

介紹HDFS體系結構及shell、Java操作方式: 本節是對hadoop核心之一——hdfs的講解。hdfs是所有hadoop操作的基礎,屬於基本的內容。對本節內容的理解直接影響以後所有課程的學習。在本節學習中,我們會講述hdfs的體系結構,以及使用shell、java不同方式對hdfs的操作。在工作中,這兩種方式都非常常用。學會了本節內容,就可以自己開發網盤應用了。在本節學習中,我們不僅對理論和操作進行講解,也會講解hdfs的源代碼,方便部分學員以後對hadoop源碼進行修改。最後,還要講解hadoop的RPC機制,這是hadoop運行的基礎,通過該節學習,我們就可以明白hadoop是怎麽明白的了,不必糊塗了,本節內容特別重要。

介紹HDFS體系結構及

shell、java操作方式

Hdfs體系結構詳述

NameNode、DataNode、SecondaryNameNode體系結構

如果保證namenode的高可靠

Datanode中block的劃分原理和存儲方式

如何修改namenode、datanode數據存儲位置

如何使用命令行操縱hdfs

如何使用java操作hdfs

介紹rpc機制

通過查看源碼,知曉hadoop是建構在rpc之上的

通過查看hdfs源碼,知曉客戶端是如何與Namenode通過rpc通信的

介紹MapReduce體系結構及各種算法(1): 本節開始對hadoop核心之一——mapreduce的講解。mapreduce是hadoop的核心,是以後各種框架運行的基礎,這是必須掌握的。在本次講解中,掌握mapreduce執行的詳細過程,以單詞計數為例,講解mapreduce的詳細執行過程。還講解hadoop的序列化機制和數據類型,並使用自定義類型實現電信日誌信息的統計。

介紹MapReduce體

系結構及各種算法(1)

Mapreduce原理

Mapreduce執行的八大步驟

詳細講述如何使用mapreduce實現單詞計數功能

詳細講述如何覆蓋Mapper功能、如何覆蓋Reducer功能。在各種hadoop認證中,這是考察重點

詳細講述hadoop的自定義類型Writable接口

通過電信上網日誌實例講述如何自定義hadoop類型

實例講述hadoop1的各種輸入來源處理器,包括數據庫輸入、xml文件、多文件輸入等,並且講解如何自定

義輸入來源處理器

實例講述hadoop1的各種輸出來源,包括數據庫輸出、文件輸出等,並且講解如何自定義輸出來源處理器,

實現自定義輸出文件名稱

通過源碼講述hadoop是如何讀取hdfs文件,並且轉化為鍵值對,供map方法調用的

介紹MapReduce體系結構及各種算法(2): 本節繼續講解mapreduce,會把舊api的用法、計數器、combiner、partitioner、排序算法、分組算法等全部講解完畢。通過這兩次課程學習,學員可以把整個mapreduce的執行細節搞清楚,把各個可擴展點都搞明白。本節內容在目前市面可見的圖書、視頻中還沒有發現如此全面的哪。

介紹MapReduce體

系結構及各種算法(2)

講解新舊api的區別,如何使用舊api完成操作

介紹如何打包成jar,在命令行運行hadoop程序

介紹hadoop的內置計數器,以及自定義計數器

介紹合並(combiner)概念、為什麽使用、如何使用、使用時有什麽限制條件

介紹了hadoop內置的分區(partitioner)概念、為什麽使用、如何使用

介紹了hadoop內置的排序算法,以及如何自定義排序規則

介紹了hadoop內置的分組算法,以及如何自定義分組規則

介紹了mapreduce的常見應用場景,以及如何實現mapreduce算法講解

如何優化mapreduce算法,實現更高的運行效率

第三階段:zookeeper課程

本節內容與hadoop關系不大,只是在Hbase集群安裝時才用到。但是,zookeeper在分布式項目中應用較多。

zookeeper

Zookeeper是什麽

搭建zookeeper集群環境

如何使用命令行操作zookeeper

如何使用java操作zookeeper

第四階段:HBase課程

hbase是個好東西,在以後工作中會經常遇到,特別是電信、銀行、保險等行業。本節講解hbase的偽分布和集群的安裝,講解基本理論和各種操作。我們通過對hbase原理的講解,讓大家明白為什麽hbase會這麽適合大數據的實時查詢。最後講解hbase如何設計表結構,這是hbase優化的重點。

HBase

hbase的概述

hbase的數據模型

hbase的表設計

hbase的偽分布式和集群安裝

hbase的shell操作

hbase的JavaAPI操作

hbase的數據遷移

hbase的數據備份及恢復

Hbase結合Hive使用

hbase的集群管理

hbase的性能調優

第五階段:CM+CDH集群管理課程

由cloudera公司開發的集群web管理工具cloudera manager(簡稱CM)和CDH目前在企業中使用的比重很大,掌握CM+CDH集群管理和使用 不僅簡化了集群安裝、配置、調優等工作,而且對任務監控、集群預警、快速定位問題都有很大的幫助。

CM+CDH集群管理

CM + CDH集群的安裝

基於CM主機及各種服務組件的管理

CDH集群的配置和參數調優

CDH集群HA配置及集群升級

CM的監控管理

集群管理的註意事項

第六階段:Hive課程

在《hadoop1零基礎拿高薪》課程中我們涉及了Hive框架內容,不過內容偏少,作為入門講解可以,但是在工作中還會遇到很多課程中沒有的。本課程的目的就是把Hive框架的邊邊角角都涉獵到,重點講解Hive的數據庫管理、數據表管理、表連接、查詢優化、如何設計Hive表結構。這都是工作中最急需的內容,是工作中的重點。

Hive的概述、安裝

與基本操作

大家習慣把Hive稱為hadoop領域的數據倉庫。Hive使用起來非常像MySQL,但是比使用MySQL更有意思。

我們在這裏要講述Hive的體系結構、如何安裝Hive。還會講述Hive的基本操作,目的是為了下面的繼續學習。

(理論所占比重★★★ 實戰所占比重★★)

Hive支持的數據類型

Hive的支持的數據類型逐漸增多。其中復合數據類型,可以把關系數據庫中的一對多關系挪到Hive的一張表中,

這是一個很神奇的事情,顛覆了我們之前的數據庫設計範式。我們會講解如何使用這種數據類型,如何把關系數

據庫的表遷移到Hive表。

(理論所占比重★★ 實戰所占比重★★★)

Hive數據的管理

我們總拿Hive與MySQL做類比。其中,Hive對數據的操作方法是與MySQL最大的不同。我們會學習如何導入數

據、導出數據,會學習如何分區導入、如何增量導入,會學習導入過程中如何優化操作等內容。這部分內容是工

作中使用頻率最高的內容之一。

(理論所占比重★ 實戰所占比重★★★★)

Hive的查詢

這部分內容講解Hive查詢語句的基本結構,重點講解表連接。其中,有一些我們原來不知道的語法如left semi-

join、sort by、cluster by等。這部分也在工作中用的是最多的內容之一。

(理論所占比重★★ 實戰所占比重★★★)

Hive的函數

Hive是對查詢語法的擴充,Hive運行我們非常方便的使用java來編寫函數,特別方便。我們除了簡單介紹常見的

單行函數、聚合函數、表函數之外,還會介紹如何自定義函數。這樣,我們就可以擴充原有函數庫,實現自己的

業務邏輯。這是體系我們能力的好地方!

(理論所占比重★★★ 實戰所占比重★★)

Hive的文件格式

Hive的存儲除了普通文件格式,也包括序列化文件格式和列式存儲格式。講解分別如何使用他們,已經何種場景

下使用他們。最後講解如何自定義數據存儲格式。

(理論所占比重★★★ 實戰所占比重★★)

Hive的性能調優

終於來到性能調優部分。我們會講解本地模式、嚴格模式、並行執行、join優化等內容。通過實驗對比發現優化

手段的價值所在。這是整個課程的精華,也是我們以後工作能力的最重要的體現。

(理論所占比重★ 實戰所占比重★★★★)

項目實戰

我們會通過一個電信項目來把前面的內容綜合運用起來。這是一個來自於真實工作環境的項目,學習如何使用各

個知識點滿足項目要求。並有真實數據提供給大家,供大家課下自己練習。

(理論所占比重★ 實戰所占比重★★★★)

雜記

包括一些瑣碎知識點,比如視圖、索引、與HBase整合等。這些不好歸入前面的某個章節,單獨列出。並且根據

學員就業面試情況,也不會不斷增補內容。

(理論所占比重★★★ 實戰所占比重★★)

第七階段:Sqoop課程

sqoop適用於在關系數據庫與hdfs之間進行雙向數據轉換的,在企業中,非常常用。

Sqoop

Sqoop是什麽

實戰:講解Sqoop如何把mysql中的數據導入到hdfs中

實戰:講解Sqoop如何把hdfs中的數據導出到mysql中

Sqoop如何做成job,方便以後快速執行

第八階段:Flume課程

Flume是cloudera公布的分布式日誌收集系統,是用來把各個的服務器中數據收集,統一提交到hdfs或者其他目的地,是hadoop存儲數據的來源,企業中非常流行。

Flume

Flume是什麽

詳細Flume的體系結構

講述如何書寫flume的agent配置信息

實戰:flume如何動態監控文件夾中文件變化

實戰:flume如何把數據導入到hdfs中

實戰:講解如何通過flume動態監控日誌文件變化,然後導入到hdfs中

第九階段:Kafka課程

Kafka是消息系統,類似於ActiveMQ、RabbitMQ,但是效率更高。

Kafka

kafka是什麽

kafka體系結構

kafka的安裝

kafka的存儲策略

kafka的發布與訂閱

使用Zookeeper協調管理

實戰:Kafka和Storm的綜合應用

第十階段:Storm課程

Storm是專門用於解決實時計算的,與hadoop框架搭配使用。本課程講解Storm的基礎結構、理論體系,如何部署Storm集群,如何進行本地開發和分布式開發。通過本課程,大家可以進入到Storm殿堂,看各種Storm技術文章不再難,進行Storm開發也不再畏懼。

Storm

Storm是什麽,包括基本概念和應用領域

Storm的體系結構、工作原理

Storm的單機環境配置、集群環境配置

Storm核心組件,包括Spout、Bolt、Stream Groupings等等

Storm如何實現消息處理的安全性,保證消息處理無遺漏

Storm的批處理事務處理

實戰:使用Storm完成單詞計數等操作

實戰:計算網站的pv、uv等操作

第十一階段:Redis課程

Redis是一款高性能的基於內存的鍵值數據庫,在互聯網公司中應用很廣泛。

Redis

redis特點、與其他數據庫的比較

如何安裝redis

如何使用命令行客戶端

redis的字符串類型

redis的散列類型

redis的列表類型

redis的集合類型

如何使用java訪問redis

redis的事務(transaction)

redis的管道(pipeline)

redis持久化(AOF+RDB)

redis優化

redis的主從復制

redis的sentinel高可用

redis3.x集群安裝配置

第十二階段:Scala課程

Scala是學習Spark的必備基礎語言,必須要掌握的。

Scala

scala解釋器、變量、常用數據類型等

scala的條件表達式、輸入輸出、循環等控制結構

scala的函數、默認參數、變長參數等

scala的數組、變長數組、多維數組等

scala的映射、元祖等操作

scala的類,包括bean屬性、輔助構造器、主構造器等

scala的對象、單例對象、伴生對象、擴展類、apply方法等

scala的包、引入、繼承等概念

scala的特質

scala的操作符

scala的高階函數(這是重點,spark的原代碼幾乎全是高階函數)

scala的集合

第十三階段:Spark課程

Spark是一款高性能的分布式計算框架,傳言比MapReduce計算快100倍,本課程為你揭秘。

Spark

Spark入門

Spark與Hadoop的比較

Spark環境搭建

實戰:使用Spark完成單詞計數

Spark緩存策略

Spark的transformation和action

Spark的容錯機制

Spark的核心組件

Spark的各種RDD

Spark的流計算

第十四階段:Oozie課程

oozie是Hadoop生態系統中比較重要的框架,在系統中扮演的角色是工作流引擎服務器,用於運行Hadoop Map/Reduce任務工作流(包括MR、Hive、Pig、Sqoop等),企業中多由於整個項目流程任務調度。

Oozie

Oozie入門介紹

Oozie安裝配置及其簡單操作

hPDL語言學習及流程定義

oozie工作流配置及元數據庫定義

oozie定時任務調度和oozie API操作

第十五階段:Impala課程

Impala是Cloudera公司參照 Google Dreme系統進行設計並主導開發的新型查詢系統,它提供復雜SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數據。

Impala

Impala及其架構介紹

Impala使用方法

Impala配置及其調優

Impala項目應用

Impala和spark SQL對比

第十六階段:Kettle課程

Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。ETL是指數據的抽取(extract)、轉換(transform)、加載(load)至目的端。

Kettle

kettle簡介

windows開發環境的搭建和使用

linux下服務器的搭建和使用

資源庫、變量、共享庫的配置

kettle常用組件

kettle的應用案例

第十七階段:Ganglia課程

Ganglia是一個對於數以萬計的節點的各個指標的圖表監控框架,提供完整的一套圖形監控界面,支持C、C++、Python擴展自定義指標和用戶視圖。

Ganglia

ganglia的基本原

搭建和使用ganglia監控服務器的指標

配置和使用ganglia監控大數據hadoop和habase集群、flume監控

編寫和使用自定義指標

第十八階段:Tachyon課程

Tachyon是一個開源分布式內存存儲系統,擁有高性能、高容錯等優點。並具有類Java的文件API、插件式的底層文件系統、兼容Hadoop MapReduce和 Apache Spark 等特征。Tachyon能夠為集群框架(如Spark、MapReduce等)提供內存級速度的跨集群文件共享服務,官方號稱最高比HDFS吞吐量高300倍。

Tachyon

Tachyon簡介

Tachyon架構詳解

Tachyon安裝

Tachyon參數配置

Tachyon結合Hadoop使用

Tachyon結合Spark使用

第十九階段:Solr課程

Solr

Solr簡介

Solr安裝部署

Solr example詳解

solr配置信息詳解

solr fact查詢

solr復雜查詢

自定義中文分詞工具和詞庫

使用solrj實現java操作solr

solr高亮組件

solr優化

solr主從結構部署

solrcloud集群安裝部署

solr實現應用

第二十階段:elasticsearch課程

elasticsearch

elasticsearch簡介

elasticsearch和solr的對比

elasticsearch安裝部署

elasticsearch service wrapper啟動插件

使用curl操作elasticsearch索引庫

elasticsearch DSL查詢

elasticsearch批量查詢meet

elasticsearch批量操作bulk

elasticsearch插件介紹

elasticsearch配置文件詳解

java操作elasticsearch

elasticsearch的分頁查詢

elasticsearch中文分詞工具的集成

elasticsearch優化

elasticsearch集群部署

第二十一階段:多線程課程

多線程

線程管理

線程的同步,包括使用synchronized、lock、定時器、信號量等

線程池的創建和管理

並發集合的使用

第二十二階段:Java虛擬機優化課程

Java虛擬機優化

認識jvm

java 內存區域與內存的分配

垃圾收集器與回收機制

虛擬機性能監控與故障處理常用工具

線程安全與鎖優化

大數據中的jvm 優化

第二十三階段:Python課程

Python

Python 簡介

Python 基本語法

使用 Python 寫 MapReduce 程序、Spark 程序

第二十四階段:Mahout課程

Mahout是數據挖掘和機器學習領域的利器,本課程是帶領大家進入到這個領域中。課程內容包括Mahout體系結構介紹、Mahout如何在推薦、分類、聚類領域中使用。

Mahout

Mahout是什麽,有哪些應用場景

Mahout機器學習環境的搭建和部署

Mahout中支持哪些高大上的算法

使用Mahout完成推薦引擎

實戰:實現基於web訪問的推薦程序

什麽是聚類

基於Mahout的常見聚類算法,如k-means算法

實戰:實現新聞內容的聚類

什麽是分類

分類的工作原理

提取特征構建分類器

實戰:構建分類服務器

第二十五階段:實戰項目

xx論壇日誌分析(錄播): 該項目的數據來自於黑馬程序員(CSDN學院-IT實戰派)論壇的日誌,該項目是為本課程量身定做的,非常適合我們hadoop課程學習。有的同學覺得應該介紹更多項目,其實做過幾個項目後,就會發現項目的思路是相同的,只是業務不同而已。大家寫過這個項目後,就對hadoop的各個框架在項目中是如何使用的,有個比較清晰的認識,對hadoop與javaEE結合有個比較清晰的認識了。

註:很多學員進入公司後發現,公司中大部分hadoop日誌分析項目,都是該項目的開發過程,千真萬確!

xx論壇日誌分析(錄播)

項目背景介紹

數據規模介紹

業務關鍵指標介紹

使用flume把日誌數據導入到hdfs中

編寫MapReduce代碼進行數據清洗

使用hbase存儲明細日誌,實現基於ip查詢

使用hive對數據進行多維分析

使用sqoop把hive分析結果導出到MySQL中

互聯網電商爬蟲項目: 該項目使用分布式爬蟲爬取互聯網各大電商網站商品數據,前臺實現對數據的快速精準查詢和商品對比。

互聯網電商爬蟲

商品頁面抓取和解析

分布式爬蟲設計細節

分析url鏈接和頁面內容如何存儲

分布式爬蟲監控功能

爬蟲頻繁爬取數據ip被封問題解決方案

分析爬取失敗url如何處理

抓取需要登錄的網站數據

使用solr實現海量數據精準查詢

使用hbase實現海量數據快速查詢

高頻數據實時流處理項目: 該項目實現對業務數據系統的高頻日誌數據進行實時收集和業務處理。

高頻數據實時流處理

使用avro方式實現高頻日誌數據實時采集

flume sink源碼分析

自定義kafkasink實現對收集的高頻日誌數據進行緩沖

使用kafkaspout實現對kafka中的數據進行實時讀取

使用storm實時計算框架對日誌數據進行分析處理

flume和kafka的整合

Kafka和storm的整合

國內排名前50名的某網站互聯網日誌分析項目: 通過大數據工具將互聯網中的日誌的采集、清洗、分析統計出常見的互聯網指標;開發各種維度UV的分布報表、各個指標每日、月指標報表,用於對產品做出正確的決策,數據的正確性校對問題,臨時性的圖表的開發。

某網站互聯網日誌分析

使用hadoop、mapreduce、hive清理和分析UV、PV、登錄、留存等常見指標

使用storm實時分析充值、消費等的趨勢

各種維度的趨勢對比、各個指標每日、月指標報表生成

使用kettle數據的正確性校對問題和郵件報警

移動業務感知項目: 移動業務感知系統主要是利用hadoop集群強大的計算能力對移動的大批量離線話單數據進行分析,統計移動用戶使用移動業務(流量套餐、話費套餐、鈴聲套餐等)情況,達到感知用戶行為和使用習慣,確定移動業務推廣走向的一套系統。

最全的大數據入門學習路線