首页 > 代码库 > 大数据学习之路

大数据学习之路

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

什么是大数据开发师?

围绕大数据系平台系统级的研发人员, 熟练Hadoop、Spark、Storm等主流大数据平台的核心框架。深入掌握如何编写MapReduce的作业及作业流的管理完成对数据的计算,并能够使用Hadoop提供的通用算法, 熟练掌握Hadoop整个生态系统的组件如: Yarn,HBase、Hive、Pig等重要组件,能够实现对平台监控、辅助运维系统的开发。

通过学习一系列面向开发者的Hadoop、Spark等大数据平台开发技术,掌握设计开发大数据系统或平台的工具和技能,能够从事分布式计算框架如Hadoop、Spark群集环境的部署、开发和管理工作,如性能改进、功能扩展、故障分析等。

Follow the developer path:

1、《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生态系统中各个系统的应用场景和解决实际问题的方式。

2、《大数据前置课程系列--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
                      • 协变与逆变
                      • 隐式转换
                      • 隐式参数
                      • 隐式类

3、《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介绍
        • 配置与部署

4、《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

 

5、《Hbase进阶》

  • 学习针对海量数据集设计合理的Schema
  • 掌握Hbase性能优化方法和使用场景

 

6、《SQL on hadoop》

  • 学习Hive SQL解析与性能优化,Impala任务生成等
  • 掌握使用SQL on hadoop构建数据开放平台

7、《Hadoop/Spark企业应用实战》

  • 学习生产系统中应用Hadoop、Spark的使用方法
  • 掌握与现有企业BI平台整合的解决方案

 

大数据学习之路