最全的大数据入门学习路线
摘要:第一阶段: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集群强大的计算能力对移动的大批量离线话单数据进行分析,统计移动用户使用移动业务(流量套餐、话费套餐、铃声套餐等)情况,达到感知用户行为和使用习惯,确定移动业务推广走向的一套系统。