大數據學習之路

http://www.chinahadoop.cn/page/developerphp

什麼是大數據開發師?java

圍繞大數據系平臺系統級的研發人員, 熟練Hadoop、Spark、Storm等主流大數據平臺的核心框架。深刻掌握如何編寫MapReduce的做業及做業流的管理完成對數據的計算,並可以使用Hadoop提供的通用算法, 熟練掌握Hadoop整個生態系統的組件如: Yarn,HBase、Hive、Pig等重要組件,可以實現對平臺監控、輔助運維繫統的開發。node

經過學習一系列面向開發者的Hadoop、Spark等大數據平臺開發技術,掌握設計開發大數據系統或平臺的工具和技能,可以從事分佈式計算框架如Hadoop、Spark羣集環境的部署、開發和管理工做,如性能改進、功能擴展、故障分析等。ios

Follow the developer path:算法

一、《hadoop大數據平臺基礎》數據庫

  • 學習編寫生產環境所需的mapreduce程序
  • 掌握真實數據分析所需的高級API

第1周 Hadoop生態系統概述以及版本演化
概要介紹Hadoop生態系統及其版本演化歷史,並給出hadoop版本選擇建議。

第2周 HDFS 2.0 原理、特性與基本架構
介紹HDFS 2.0原理與架構,並與HDFS 1.0進行對比。介紹HDFS 2.0新特性,包括快照、緩存、異構存儲架構等

第3周 YARN應用場景、基本架構與資源調度
介紹YARN是什麼、基本原理與架構,並剖析其調度策略。

第4周 MapReduce 2.0基本原理與架構
介紹計算框架MapReduce基本原理與架構

第5周 MapReduce 2.0編程實踐(涉及多語言編程)
手把手介紹如何用java、C++、php等語言編寫MapReduce程序

第6周 HBase應用場景、原理與基本架構
介紹HBase應用場景、原理和架構

第7周 HBase編程實踐(涉及多語言編程)
手把手介紹如何用Java、C++、Python等語言編寫HBase客戶端程序。

第8周 HBase案例分析
介紹幾個HBase典型應用案例,包括互聯網應用案例和銀行應用案例。

第9周 Zookeeper部署及典型應用
介紹Zookeeper是什麼,在hadoop生態系統中的地位

第10周 Hadoop數據入庫系統Flume與Sqoop
介紹如何使用flume和sqoop兩個系統將外部流式數據(好比網站日誌,用戶行爲數據等)、關係型數據庫(好比MySQL、Oracle等)中的數據導入Hadoop中進行分析和挖掘

第11周 數據分析系統Hive與Pig應用與比較
介紹如何使用hive和pig分析hadoop中的海量數據

第12周 數據挖掘工具包Mahout
介紹如何使用mahout提供的數據挖掘和機器學習算法進行海量數據挖掘

第13周 工做流引擎Oozie與Azkaban應用
介紹如何使用Oozie和azkaban對MapReduce做業、Pig/hive做業等進行統一管理和調度

第14周 兩個綜合案例:日誌分析系統與機器學習平臺
介紹兩個典型的互聯網應用案例,進一步深刻領悟hadoop生態系統中各個系統的應用場景和解決實際問題的方式。編程

二、《大數據前置課程系列--scala》數組

  • 學習spark之必備,一種新型的oop的編程語言
  • 掌握在面向對象的編程中使用函數式編程理念

第一週 Scala基礎緩存

                      • 值與變量的聲明
                      • 經常使用類型簡介
                      • 函數與方法的定義與使用
                      • 條件表達式
                      • 循環及高級for循環使用
                      • lazy值
                      • 默認參數、帶名參數及變長參數
                      • 異常處理
                      • 數組相關操做
                      • Map操做

第二週 Scala面向對象編程性能優化

                      • 類定義
                      • 類的屬性
                      • 主構造器
                      • 輔助構造器
                      • object對象
                      • apply方法
                      • 類的繼承
                      • 方法重寫與字段重寫
                      • 抽象類
                      • trait
                      • 包的定義與使用
                      • 包對象定義與使用
                      • 文件訪問

第三週 Scala函數式編程

                    • 高階函數的定義
                    • 值函數
                    • 匿名函數
                    • 閉包
                    • SAM與Curry
                    • 高階函數示例
                    • 集合簡介
                    • 序列
                    • 可變列表與不可變列表
                    • 集合操做
                    • case class
                    • 模式匹配

第四周 Scala高級編程

                      • 泛型類
                      • 泛型函數
                      • Lower bounds 與 Upper bounds
                      • View bounds
                      • Context bounds
                      • 協變與逆變
                      • 隱式轉換
                      • 隱式參數
                      • 隱式類

三、《spark大數據平臺基礎》

  • 學習基於內存的批式和流式數據分析方法
  • 掌握優化應用程序,達到快速、易用的目的

第一週 Spark生態系統概述與編程模型

    • Spark生態系統概述
    • 回顧Hadoop MapReduce
    • Spark運行模式
    • RDD
    • Spark運行時模型簡介
    • 緩存策略介紹
    • transformation
    • action
    • lineage
    • 容錯處理
    • 寬依賴與窄依賴
    • 集羣配置


第二週 深刻Spark內核

    • Spark術語解釋
    • 集羣概覽
    • 核心組件
    • 數據本地性
    • 經常使用RDD
    • 任務調度
    • DAGScheduler
    • TaskScheduler
    • Task細節
    • 廣播變量
    • 累加器
    • 性能調優


第三週 Spark Streaming原理與實踐

    • DStream
    • 數據源
    • 無狀態transformation與有狀態transformation
    • checkpoint
    • 容錯
    • 性能優化


第四周 Shark原理與實踐

    • 數據模型
    • 數據類型
    • Shark架構
    • Shark部署
    • 緩存(分區)表
    • SharkServer
    • Shark與Spark結合


第五週 Machine Learning on Spark

    • LinearRegression
    • K-Means
    • Collaborative Filtering


第六週 Spark多語言編程

    • Python簡介
    • PySpark API
    • 使用Python編寫Spark程序
    • Spark with Java


第七週 Spark SQL

    • 架構與實例
    • Parquet支持
    • DSL
    • SQL on RDD


第八週 圖計算GraphX

    • 現存的圖計算框架
    • Table Operators
    • Graph Operators
    • GraphX設計


第九周 Spark on Yarn

    • Spark on Yarn原理
    • Spark on Yarn實踐


第十週 JobServer

        • 總體架構
        • API介紹
        • 配置與部署

四、《Hadoop進階》

  • 深刻學習mapreduce及其做業調試、優化方法
  • 深度掌握hdfs及系統級的運維、性能優化方法

第一部分. MapReduce

Mapreduce工做流程及基本架構回顧

運維相關

    • 參數調優
    • benchmark
    • reuse jvm
    • 錯誤感知及speculative執行
    • task日誌分析
    • 可容忍錯誤百分比設置及跳過壞記錄
    • 選擇fairescheduler等其餘調度器優化性能

開發相關

    • 數據類型選擇
    • 實現自定義writable數據類型、自定義key
    • 一個mapper中輸出不一樣類型value
    • InputFormat/OutputFormat,原理及定製
    • Mapper/Reducer/Combiner,Combiner的使用及其對mapreduce框架優化的做用
    • Partitioner定製
    • 排序策略GroupingComparator/SortComparator
    • 任務調度原理及修改方法(案例,map/reduce共享slot,按標識精準map/reduce調度)
    • Streaming
    • DistributedCache
    • mapreduce任務間依賴
    • counter
    • JobChild參數設置
    • 性能優化

 

第二部分. hdfs

HDFS API

fuse(C API)

壓縮

HDFS benchmark

Datanode添加及刪除

多盤支持,磁盤錯誤感知

hdfs raid

HDFS block size設置相關問題

文件備份數設置

HDFS中合併文件

 

第三部分. Hadoop工具

dfsadmin/mradmin/balancer/distcp/fsck/fs/job

監控及報警

hadoop配置管理

 

第四部分. Hadoop調試

Log

本地模式調試map/reduce任務

遠程調試

 

第五部分. 問題分析

Java GC介紹及java進程經常使用的分析工具jstat、jhat、jmap

top/iostat/netstat/lsof等

Jstack/kill -3

Strace

nload/tcpdump

 

第六部分.分析示例

MapReduce簡單分析

用MapReduce實現Group-by

用MapReduce實現倒排索引

MapReduce實現直方圖

MapReduce實現Join

 

五、《Hbase進階》

  • 學習針對海量數據集設計合理的Schema
  • 掌握Hbase性能優化方法和使用場景

 

六、《SQL on hadoop》

  • 學習Hive SQL解析與性能優化,Impala任務生成等
  • 掌握使用SQL on hadoop構建數據開放平臺

七、《Hadoop/Spark企業應用實戰》

  • 學習生產系統中應用Hadoop、Spark的使用方法
  • 掌握與現有企業BI平臺整合的解決方案
相關文章
相關標籤/搜索