首页 > 代码库 > 大数据学习之路
大数据学习之路
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平台整合的解决方案
大数据学习之路