第一阶段:Linux课程 讲解Linux基础操作,讲的是在命令行下进行文件系统的操作,这是Hadoop学习的基础,后面的所有视频都是基于linux操作的。鉴于很多学员没有linux基础,特增加该内容,保证零linux基础入门。
如果你从没有使用过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论坛日志分析(录播): 该项目的数据来自于黑马程序员(http://edu.csdn.NET/)论坛的日志,该项目是为本课程量身定做的,非常适合我们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集群强大的计算能力对移动的大批量离线话单数据进行分析,统计移动用户使用移动业务(流量套餐、话费套餐、铃声套餐等)情况,达到感知用户行为和使用习惯,确定移动业务推广走向的一套系统。