大数据开发全栈课程体系 ( V5.5 )
最后更新时间: 2020年3月课程一定是为你精心设计的, 成就自己的只需一套精品!
课程设计原则:
- - 以零基础小白为目标人群设计;
- - 以现在企业中高级程序员岗位所需要的技术应用为目标设计;
- - 为程序开发这门学科特点,以实战和项目贯穿为高效学习目标设计;
- - 根据线上学习特点去规划每天学习内容;
- - 以全栈技能为目标设计知识点结构;
- - 每年至少迭代更新两次,技术版本不一定是最新的,但一定是用的最多的版本;
课程介绍:
本课程共划分为七个阶段,分别是Java语言基础、大数据通用技术、Hadoop基础、大数据离线计算、大数据实时计算、Spark实战应用开发。 每个阶段都有对应的项目案例,涉及的技术知识点有:Java基本语法、Java核心API、Java规范与设计、算法与模式、 Java8-11新特性、Linux、IDEA、Eclipse、SQL语句及优化、PLSQL开发、数据库设计、MySQL、JDBC、JavaScript 、jQuery、Tomcat、Servlet、JSP、Ajax、HDFS分布式文件系统、 MapReduce分布式并行计算框架、Hive数据仓库、Impala、KuDu、Azkaban 流调度 、Ooize、大数据离线实战开发、HBase分布式实时数据库、Storm流式计算框架、Flume海量日志采集系统、 Kafka消息队列、大数据实时计算应用开发 、MongoDB 、Redis、Log4j、Maven、SVN/Git、ActiveMQ、RabbitMQ、Activiti、Nginx、JasperReport、Jfreechart、Dubbo、Zookeeper、 Lucene/ElasticSearch、Spark、Scala、Mahout、大量面试题和企业真题等。课程中的每个技术点的内容都非常全面,深度到位,课上实例不仅丰富而且实用。另外, 每个知识点都是以目前最新版本的技术设计,每半年一更新,并经过多家软件公司的技术专家参与修订,以达到真正实用的目的,能够与大型软件开发公司所需要的开发技术相吻合。
课程特点:
- - 技术新、内容全:课程的技术点全面,全部都是当前行业内最流行、从最新版的Java11到主流Java8兼顾、数据库、前端、JavaEE框架和JavaEE架构技术
- - 企业大牛指导项目:为了要学员毕业后快速适应企业环境,特地从IT名企引入技术总监为学员的项目导师,指导和管理项目研发过程、要学员真正体验企业开发过程
- - 课程项目均为上线产品:很多平台的项目案例都是采用模仿或闭门造车形成的,从而导致培训学习和企业要求的存在一定的差异,为了弥补这个差异,我们是第一家将真实上线产品引入课程的平台
- - 拥有企业项目环境:可熟悉项目开发中立项、分析、设计、编码、测试、实施、维护等真实流程及相关工作
- - 采用案例式教学:整个课程以案例为主线,贯串学习知识点和技术点。通过专家讲师和企业导师的带领,使学员可以具有独立开发大型网站的能力
- - 编码、设计规范:课程中的项目案例完全采用企业编码规范和设计规范,例如阿里巴巴Java规范、合作企业Java规范等,提高学员编码规范性,增强程序的可读性和维护性
- - 注重素质和能力培养:注重综合素质能力的培养,主要包括技术应用能力、分析设计能力、团队合作、职业素养等,提升学员的企业工作能力
- - 注重方法和思维培养:授人以鱼、不如授人以渔。我们授课过程不仅注重技术点培养、更侧重于方法和思维培养,提升学员养成后续自我提升的能力
学员目标:
- -精通Java语言及相关框架,精通JVM调优技术,掌握常用数据结构和算法
- -掌握Hadoop集群搭建与配置、分布式MapReduce并行计算框架应用实战开发
- -精通Hive数据仓库应用开发、掌握Hive离线数据模型架构原理
- -熟练使用MySQL/HBase/ MongoDB/Redis /NoSQL,拥有实际大数据量的数据库设计经验
- -精通Spark、SparkSQL、SparkStreaming、Flume、Kafka等
- -掌握缓存技术,负载均衡,服务器优化,系统性能调优等相关技术知识以及相关工具
- -良好的逻辑思维能力和学习能力,有很强的抽象设计能力、分析和解决问题的能力
- -掌握所有Hadoop、离线计算、实时计算、Spark开发的高级大数据开发技能,积累大型实战型项目开发经验
- -通过Oracle、MySQL、MongoDB、Redis等数据库服务器的学习,熟悉维护、优化、安全设置的使用,精通SQL编写和数据库设计,掌握数据库端PL/SQL开发的能力
- -通过JavaScript、jQuery、BootStrap、Vue和H5/CSS3等技术的学习,可以承担前端工程师的工作、制作出精美的、用户体验度高的网页
- -通过SSM、SSH等框架技术的学习,可以提高开发效率和软件质量
- -通过SpringBoot、SpringCloud等集成框架的学习,可以快速搭建稳定性高、功能强的软件
- -通过Lucene/ ElasticSearch、Dubbo、Zookeeper、Kafka、Activiti等技术的学习,完全可以胜任当前各种互联网应用的开发
- -通过企业项目和解决方案实战掌握目前企业一流技术和常见问题的解决方法
- -培养出具有职业素养和能力的、符合企业需求的Java开发工程师和架构师
- -使用Java常用互联网技术可以独立完成系统开发工作,对现有的成熟产品进行二次开发,团队合作完成大型项目的设计与开发,以及产品的测试与维护
适合人群:
- - 即将毕业的在校大专生或本科生
- - 已毕业的大专生或本科生
- - 通过其他学科和机构培训过的学员
- - 各软件企业在职的开发工程师
- - 对大数据开发有兴趣的爱好者
- - 创业人员,开发自己创业项目中的产品
阶段一 Java基础与设计
说明:
零基础一定要从Java基础开始,为学习Java全栈做好铺垫。 Java基础部分是学习Java的入门, 这部分掌握好了,对学习Java的一些高级内容都会相对容易一些。这部分需要掌握Java基础语法, 面向对象编程,Java核心API,熟练使用集合、流、序列化、多线程、网络编程等技术开发,熟悉企业设计规范和编码规则、强化数据结构和算法应用。
模块 | 目标 | 知识点 |
---|---|---|
Java 语言基础 |
应知应会:1. 熟悉Java等基本概念2.掌握Eclipse/IDEA集成开发工具的安装、配置和应用 3.熟悉Java基本语法、基本类型、运算符和表达式 4.掌握分支、循环逻辑语句、数组等知识的应用
业务实战:实现随机发牌程序和双色球抽奖游戏 |
JDK、JRE、JVM基本概念 |
Java环境搭建和配置 | ||
安装和使用Eclipse/IDEA开发环境 | ||
Java基本数据类型 | ||
变量,运算符,表达式 | ||
分支语句,循环语句、 | ||
数组,数组应用,行业规范。 | ||
案例进阶:实现随机发牌程序和双色球抽奖游戏 |
||
Java面向对象编程 |
应知应会:1.理解面向对象思想和概念2.学会面向对象分析方法 3.掌握类、对象、继承、多态的使用 4.熟悉重写、重载、抽象类、内部类以及设计模式的应用
业务实战:实现五子棋和扫雷游戏 |
类、对象、属性、方法、构造器 |
封装、继承、多态 | ||
重写、重载 | ||
访问权限控制符 | ||
this和super、static、final | ||
抽象类和接口,内部类 | ||
单例设计模式 | ||
模板设计模式 | ||
案例进阶:实现五子棋和扫雷游戏 |
||
JavaSE核心类库 |
应知应会:1.掌握Java核心类库的应用,例如字符串、日期、集合的处理2.掌握异常处理、IO流对文件读写、多线程应用、网络编程实现计算机之间通讯 3.熟悉Java泛型和反射技术的应用
业务实战:实现学生信息管理系统和聊天室项目 |
Java核心类 |
Java字符串、日期处理 | ||
包装类、集合、数据结构 | ||
异常和异常处理 | ||
Java IO、NIO、多线程编程 | ||
线程同步机制、并发包 | ||
JAVA网络编程 | ||
Java泛型和注解 | ||
Java反射机制 | ||
案例进阶:实现学生信息管理系统和聊天室项目 |
||
Java分析与设计 |
应知应会:1.掌握面向对象分析和设计方法2.熟悉常用设计模式和栈、队列等数据结构、各种算法 4.掌握Maven和SVN的使用 5.掌握Java8-11特性及新语法 6.了解Java各版本的特性和区别
业务实战:实现学生信息管理系统和聊天室项目 |
Java设计原则 |
Java设计模式 | ||
Java常用数据结构 | ||
Java常用数据算法 | ||
Java8-11新特性 | ||
Java各个版本比对 | ||
Maven安装和使用 | ||
SVN/Git版本管理工具安装和使用 | ||
项目实战 |
应知应会:1.掌握Java核心API使用2.掌握面向对象分析和设计方法 3.熟练使用Java工具开发 4.对前面阶段内容综合运用
业务实战:在线考试系统 |
Java开发环境的搭建 |
面向对象分析和设计 | ||
集合、流 API的使用 | ||
网络编程、理解C/S架构 | ||
分支、循环语法的运用 | ||
线程的使用、并发处理 | ||
序列化技术的使用 | ||
排序算法、查找算法的运用 | ||
项目的打包和发布 |
收获:
学完此阶段能够掌握Java基础语法,面向对象编程,Java核心API,使用集合、流、序列化、多线程、网络编程等技术开发,以及可以熟悉企业设计规范和编码规则、强化数据结构和算法应用。
阶段二 大数据通用技术
说明:
大数据开发需要好的技术辅助, 掌握这些玩大数据才顺手。 除了要有Java基础之外, 做大数开发还需要一些通用的技术, 需要掌握Linux技术,包括Linux安装部署、Linux常用命令、Linux用户和权限、能够编写简单Linux Shell脚本。 还需要掌握数据库, 例数据库的设计、使用、优化、编程,熟练使用Java访问数据库。也需要前端H5、CSS3前端技术应用和开发,熟练进行前端界面设计。 也要掌握JavaWeb常见组件Servlet、JSP,熟练搭建Tomcat服务器和JavaWeb环境。
模块 | 目标 | 知识点 |
---|---|---|
Linux运维 |
应知应会:1.熟悉Linux 版本与安装部署图形化界面2.精通Linux常用命令 3.了解Linux 用户和组权限 4.了解Linux文件权限和修改权限命令 5.掌握Linux Shell语法、能够编写简单的Shell脚本 6.掌握网络设置、常见软件安装
业务实战:搭建JavaWeb开发环境 |
Linux系统的发展史 |
Liux系统的版本 | ||
Linux的硬盘分区方法 | ||
Linux安装系统、网络设置 | ||
Linux常用命令 | ||
文件权限、权限修改 | ||
用户和组帐号 | ||
vi文本编辑器 | ||
Linux软件安装 | ||
Shell的作用及分类、基本语法 | ||
编写简单的Shell脚本 | ||
Shell分支、循环结构 | ||
其他控制语句及函数的使用 | ||
数据库开发 |
应知应会:1. 熟悉MySQL数据库的安装和使用2. 精通SQL语句的编写和优化 3. 掌握数据库设计原则和方法 4. 了解视图、序列、索引概念和应用 5. 掌握MySQL数据的备份和恢复 6. 创建用户、给用户授权操作
业务实战:小型电商系统数据库设计 |
MySQL安装和管理/td> |
DCL数据控制语句 | ||
SQL语句(DQL、DDL、DML) | ||
SQL语句原理 | ||
SQL语句优化 | ||
表、表设计原则 | ||
视图、索引、存储引擎 | ||
常见函数介绍 | ||
数据备份和恢复 | ||
数据库用户和权限管理 | ||
数据库设计原则 | ||
SQL优化技巧和原则 | ||
数据库软硬件优化方案 | ||
JDBC技术 |
应知应会:1. 熟悉JDBC API应用,掌握Java对数据库的访问方法2. 掌握如何实现对数据库的增删改查 3. 使用安全的数据库访问方式 4. 如何提升数据库操作性能,学会DAO模式的封装
业务实战:小型电商系统JDBC操作 |
JDBC 核心API |
CRUP操作 | ||
Statement应用、PreparedStatement应用 | ||
预防SQL注入攻击 | ||
事务安全控制处理技术 | ||
DAO封装模式 | ||
DAO优化方案 | ||
dbcp、c3p0等连接池应用 | ||
H5前端基础 |
应知应会:1.熟悉HTML5语法和标记2.能熟练设计体验度高的HTML页面 3.能实现对特殊功能的界面设计,例如画图表、视频音频播放、地理定位等 4.熟悉CSS3语法和属性 5.能熟悉对HTML内容进行渲染,例如文字样式、列表和表格样式、动画、元素定位和布局等 6.熟悉JavaScript基本语法 7.熟练实现对HTML页面的表单校验和页面特效的处理
业务实战:小型电商系统页面设计 |
HTML5(H5)基本文档结构 |
标题、图片标记 | ||
链接、列表、表格标记 | ||
表单标记 | ||
CSS基础语法 | ||
CSS文本、列表、表格样式 | ||
CSS盒子模型 | ||
CSS浮动布局、定位 | ||
JavaScript语言基础 | ||
JavaScript闭包和自执行 | ||
JavaScript DOM编程 | ||
JavaScript事件模型 | ||
Window对象模型 | ||
HTML5画布 | ||
JavaWeb基础 |
应知应会:1.Tomcat环境的安装和使用2.熟练使用Servlet处理HTTP请求和数据库访问操作 4.熟悉JSP基本语法和标记,掌握9大内置对象应用 5.使用JSP+Servlet+JavaBean技术构建的MVC应用 6.熟悉JSON语法并熟练与Ajax结合运用
业务实战:个人网站服务器端功能实现 |
Tomcat配置和部署 |
Servlet技术、Servlet生命周期 | ||
文接收乱码处理 | ||
Servlet+DAO工厂模式应用 | ||
JSP 基本语法、JSP标记应用 | ||
JSP内置对象、MVC设计模式 | ||
Ajax作用和原理 | ||
JSON技术及Ajax应用 | ||
jQuery与Ajax技术 | ||
项目实战 |
应知应会:1.掌握Linux系统下开发环境搭建2.掌握项目构建常用模式 3.熟练前端技术绘制页面 4.熟练使用JavaWeb中的Servlet和JSP组件 5.熟练使用Ajax的综合运用 6.掌握项目的发布流程
业务实战:图书商城 |
Linux系统JavaWeb开发环境的搭建 |
JavaEE三层架构+MVC构建项目 | ||
HTML+CSS页面绘制 | ||
JavaScript事件处理 | ||
JDBC+DAO数据操作 | ||
Servlet+JSP请求处理和响应 | ||
数据表设计和优化、存储引擎选择 | ||
Ajax+JSON+jQuery技术应用 | ||
项目的打包和发布 |
收获:
学完此阶段能够,掌握Linux安装部署、Linux常用命令、Linux用户和权限、能够编写简单Linux Shell脚本, 掌握数据库的设计、使用、优化、编程,熟练使用Java访问数据库,掌握H5、CSS3前端技术应用和开发,熟练进行前端界面设计,以及掌握JavaWeb常见组件Servlet、JSP,熟练搭建Tomcat服务器和JavaWeb环境。
阶段三 Hadoop实战开发
说明:
可靠的,可扩展的分布式计算开发开源软件. Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。 HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。 MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。
模块 | 目标 | 知识点 |
---|---|---|
大数据概论 |
应知应会:1.认识大数据基本概念2.认识大数据生态圈 3.认识大数据行业落地案例
业务实战:搭建Hadoop分布式集群 |
HTML5(H5)基本文档结构 |
大数据背景 | ||
认识Hadoop | ||
Hadoop架构和组件 | ||
Hadoop生态系统 | ||
Hadoop经典落地案例 | ||
Hadoop安装部署及集群搭建 | ||
访问HDFS |
应知应会:1.掌握HDFS的特性2.理解HDFS的设计目标 3.掌握HDFS的体系结构 4.理解数据块基本概念 5.掌握数据块复制原理 6.掌握HDFS安全模式 7.理解HDFS心跳机制 8.掌握HDFS核心架构
业务实战:阐述HDFS分布式文件系统的原理 |
HDFS特性 |
HDFS目标 | ||
HDFS核心设计 | ||
数据块 | ||
数据复制 | ||
副本存放策略 | ||
安全模式 | ||
心跳机制 | ||
HDFS体系结构 | ||
Master/Slave | ||
NN、SNN、DN | ||
HDFS接口 |
应知应会:1.掌握HDFS常用的命令行操作接口2.学会查看HDFS文件列表 3.掌握文件的上传、下载、删除 4.掌握HDFS的Java访问接口
业务实战:利用命令行和Java接口访问HDFS分布式文件系统 |
数据库安装和使用 |
命令行接口 | ||
查看文件列表 | ||
创建目录 | ||
上传文件 | ||
下载文件 | ||
查看文件 | ||
删除数据 | ||
Java接口 | ||
从Hadoop URL读取数据 | ||
通过FileSystem API读取数据 | ||
写入数据 | ||
创建目录 | ||
查询文件系统 | ||
删除数据 | ||
HDFS分布式文件系统的运行机制 |
应知应会:1.掌握HDFS中的数据流读写2.掌握RPC的实现流程及模型 3.掌握文件的读取、写入及文件的一致性模型 4.掌握HA高可靠机制 5.熟悉HDFS的Federation机制
业务实战:搭建HA应用开发平台 |
HDFS中数据流的读写 |
RPC实现流程 | ||
RPC实现模型 | ||
文件的读取 | ||
文件的写入 | ||
文件的一致模型 | ||
HDFS的HA机制 | ||
为什么有HA机制 | ||
HA集群架构 | ||
HDFS的Federation机制 | ||
为什么引入Federation机制 | ||
Federation架构 | ||
多命名空间管理 | ||
Hadoop I/O详解 |
应知应会:理解HDFS的数据完整性掌握HDFS的数据压缩算法 掌握HDFS序列化接口 掌握Hadoop数据结构 理解SequenceFile存储
业务实战:利用HDFS序列化Writable接口实现SequenceFile的写入 |
数据库安装和使用 |
HDFS的数据完整性 | ||
验证数据完整性 | ||
文件压缩 | ||
Hadoop支持的压缩格式 | ||
压缩解压缩算法codec | ||
压缩和输入分片 | ||
文件序列化 | ||
Writable接口 | ||
WritableComparable接口 | ||
自定义Writable接口 | ||
Writable实现类 | ||
实现定制的Writable类型 | ||
序列化框架 | ||
Hadoop文件的数据结构 | ||
SequenceFile存储 | ||
MapFile存储 | ||
MapReduce编程模型 |
应知应会:1.掌握MapReduce编程模型2.编写WordCount事例 3.掌握HadoopMapReduce架构 |
MapReduce编程模型简介 |
WordCount编程实例 | ||
Hadoop MapReduce架构 | ||
MapReduce应用编程开发 |
应知应会:1.配置MapReduce应用编程开发环境2.掌握MapReduce程序设计思路 3.掌握Mapper和Reducer的编写 4.掌握集群上运行作业 5.熟练作业的的状态查看与检测 6.掌握MapReduce作业的调试 7.掌握常见的MapReduce的输入输出的格式
业务实战:开发MapReduce分布式并行程序 |
MapReduce的编程 |
配置开发环境 | ||
设计思路 | ||
编写Mapper类 | ||
编写Reducer类 | ||
编写main方法 | ||
在集群上的运作 | ||
打包作业 | ||
启动作业 | ||
通过Web UI查看Job状态 | ||
获取结果 | ||
作业调试 | ||
MapReduce类型与格式 | ||
MapReduce中的键值对 | ||
输入格式 | ||
输出格式 | ||
MapReduce的工作机制与YARN平台 |
应知应会:1.掌握MapReduce作业的运行过程2.掌握Shuffle的运行过程和原理 3.掌握Map段shuffle与Reduce段shuffle的原理 4.理解YARN平台的工作原理及架构 5.掌握ResouceManager的资源分配 6.掌握NodeManager的工作原理 7.掌握ApplicationMaster的工作原理 8.理解Container容器的工作原理 9.掌握作业的调度
业务实战:刨析MapReduce作业的Shuffle过程 |
通过案例剖析MapReduce作业运行过程 |
shuffle和排序 | ||
map端 | ||
reduce端 | ||
shuffle过程 | ||
YARN平台简介 | ||
YARN的诞生 | ||
YARN的作用 | ||
YARN的架构 | ||
ResourceManager | ||
ApplicationMaster | ||
资源模型 | ||
ResourceRequest和Container | ||
Container规范 | ||
作业的调度 | ||
公平调度器 | ||
计算能力调度器 | ||
项目实战: 日志数据分析系统 |
应知应会:1.掌握项目的业务需求2.掌握项目的系统架构 3.掌握项目的需求分析 4.掌握项目的概要设计 5.掌握项目的详细设计 6.掌握项目的系统开发 7.掌握项目的单元测试 8.掌握项目的系统测试 9.掌握项目的上线部署 10.掌握项目的运营测试 11.掌握项目集群环境的搭建测试
业务实战:MapReduce开发工程师 |
项目名称:日志数据分析系统 |
数据体量:5000W+/日 | ||
硬件环境:Hadoop集群 12台 | ||
软件环境:Hadoop2.5.2+Hive1.2.1+MR+Oracle10g | ||
开发工具:Eclipse+Jdk1.7+ETL | ||
项目职责:主要负责数据清洗,分析客户需求数据的抓取和处理。 | ||
项目描述: | ||
①搜狗每天产生大量的日志数据,从日志数据里面能提取到有用的数据包括每个用户的ID、浏览次数、月/日浏览频率、访问源、浏览内容等等, 提取这些内容、统计数据分析每个用户行为,从而做出有利的决定。 | ||
②本次项目使用MapReduce框架对数据进行处理,HDFS作为底层存储,使用Hive大大加快了项目的进度,Hive自带的数据库并不适用于项目, 用MySql代替,这里用到了Hive但是底层处理计算还是MapReduce,其最突出的地方就是其对MapReduce进行了包装,减少了使用MapReduce需要写大量重复JAVA代码的时间。 | ||
③实例分析,客户需要知道浏览过“仙剑奇侠传”的用户还浏览过其他什么内容,我们就利用MapReduce对数据进行处理 得出所有浏览过“仙剑奇侠传”的用户ID,在由ID取出他们除了“仙剑奇侠传”之外的浏览内容,值得一提的是这次任务中很好的利用MapReduce的shuffle阶段的处理将大大减少任务的难度。 | ||
④查找到浏览次数大于某值(例如如是10)的用户,同样的通过MapReduce的处理也能解决,我们可以自己去实现Map、Reduce的处理过程, 但本次项目我们用到了Hive,相对直接使用MapReduce要容易些,当然这只是两个例子,通过对数据的处理我们能得到很多有用的信息。 |
收获:
学完此阶段能够掌握Hadoop分布式集群的配置、搭建、运维,掌握HDFS分布式文件系统的应用、原理、数据流的读写,掌握MapReduce分布式并行计算框架的应用开发。
阶段四 Hive离线计算
说明:
离线数据仓库开发,是大数据离线计算的主流方式。 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
模块 | 目标 | 知识点 |
---|---|---|
Hive基础 |
应知应会:1.理解Hive的基本概念2.理解Hive简介及安装部署 3.掌握Hive的常用内部命令 4.掌握Hive的数据类型和文件编码 5.掌握Hive的基本数据类型 6.掌握Hive的集合数据类型 7.掌握Hive文本文件数据编码
业务实战:搭建Hive数据仓库 |
Tomcat配置和部署 |
Hive基本概念 | ||
Hive简介 | ||
Hive安装部署 | ||
Hive常用内部命令 | ||
Hive数据类型和文件编码 | ||
基本数据类型 | ||
集合数据类型 | ||
文本文件数据编码 | ||
Hive数据定义与操作 |
应知应会:1.掌握Hive的数据定义语言2.掌握Hive的数据操作语言 3.掌握Hive的分区表 4.掌握Hive数据仓库数据的灌入 5.掌握Hive数据的导出
业务实战:利用Hive数据定义与操纵预言操作Hive |
HiveQL:数据定义 |
创建数据库 | ||
修改数据库 | ||
创建表 | ||
分区表、管理表、桶表 | ||
删除表 | ||
修改表 | ||
HiveQL:数据操作 | ||
向管理表中装载数据 | ||
插入数据 | ||
创建表并加载数据 | ||
导出数据 | ||
Hive数据查询、视图和索引 |
应知应会:1.掌握Hive的QL查询2.掌握Hive中表的连接查询 3.掌握Hive中数据的排序 4.掌握Hive中的视图和索引
业务实战:使用Hive进行业务数据的查询 |
HiveQL:查询 |
SELECT FROM语句 | ||
WHERE语句 | ||
GROUP BY语句 | ||
JOIN语句 | ||
ORDER BY和SORT BY语句 | ||
HiveQL:查询 | ||
DISTRIBUTE BY语句 | ||
CLUSTER BY语句 | ||
CAST语句 | ||
抽样查询 | ||
UNION ALL语句 | ||
HiveQL:视图和索引 | ||
视图的作用 | ||
如何使用视图 | ||
索引的作用 | ||
索引的创建、重建、显示、删除 | ||
Hive内置函数和UDF |
应知应会:1.掌握Hive的内置函数和UDF2.掌握UDF的定义和作用 3.掌握Sqoop的安装和部署 4.熟练Sqoop的案例开发
业务实战:使用Hive的UDF开发用户自定义函数 |
自定义MVC框架 |
Hive内置函数和UDF | ||
UDF定义和作用 | ||
UDF、UDAF、UDTF的区别 | ||
UDF、UDAF、UDTF的编程案例 | ||
Sqoop安装部署 | ||
Sqoop使用案例 | ||
Azkaban |
应知应会:1.理解Azkaban简介和原理2.掌握Azkaban的安装和部署 3.掌握Azkaban开发工作流调度 4.掌握Azkaban与Hive的开发 5.掌握Azkaban对Hive任务的检测和统计
业务实战:使用Azkaban调度Hive中的任务 |
Azkaban简介 |
Azkaban与Hive | ||
安装部署Azkaban | ||
配置Azkaban | ||
使用Azkaban | ||
创建工作流 | ||
执行工作流 | ||
任务页面查看与系统统计 | ||
用户管理 | ||
Ooize |
应知应会:1.理解Ooize简介和原理2.掌握Ooize的安装和部署 3.掌握Ooize开发工作流调度 4.掌握Ooize与Hive的开发 5.掌握Ooize对Hive任务的检测和统计
业务实战:使用Ooize调度Hive中的任务 |
安装部署Ooize |
配置Ooize | ||
使用Ooize | ||
创建Ooize工作流 | ||
执行Ooize工作流 | ||
Ooize任务页面查看与系统统计 | ||
Ooize用户管理 | ||
实战项目:微博数据统计分析系统 |
应知应会:1.掌握项目的业务需求2.掌握项目的系统架构 3.掌握项目的需求分析 4.掌握项目的概要设计 5.掌握项目的详细设计 6.掌握项目的系统开发 7.掌握项目的单元测试 8.掌握项目的系统测试 9.掌握项目的上线部署 10.掌握项目的运营测试 11.掌握项目集群环境的搭建测试
业务实战:Hive开发工程师 |
自定义MVC框架 |
项目名称:微博数据分析系统 | ||
日均数据体量:3GB+ | ||
硬件环境:Hadoop集群 50台 | ||
软件环境:MapReduce+HBase0.98.9+Storm0.9.6+Hadoop2.5.2+Kafka2.10+Zookeeper3.4.5+CentOS-6.5-X86 | ||
开发工具:Eclipse+jdk1.7 | ||
项目团队:10人 | ||
项目周期:5个月 | ||
项目职责:负责数据的截取和处理计算。 | ||
项目描述: | ||
①此次项目我们需要处理微博产生的数据,通过对数据的处理得到所需的数据,微博拥有大量的用户,大量的用户潜在的价值是巨大, 怎么挖掘这些潜在的宝藏就是我们项目最直接的目的,为了能够实时的进行数据处理使用Storm流式计算系统, 和HBase、Zookeeper、Kafka组成框架,对数据进行处理,当然这些都是建立在hadoop集群上实现的,以为他们底层的存储还是HDFS。 | ||
②微博生成的数据由Kafak传递给Storm处理,最后的结果存储到HBase里,HBase我是通过JAVA来管理,因为如果直接在HBase上面操作相对使用JAVA来说比较麻烦,这是项目的流程。 | ||
③通过处理统计使用iphone端口进行登陆的用户,Storm和MapReduce的处理方式很相似,Storm需要我们用写JAVA代码来实现,通过数据的对比找出异常的微博和用户信息保存在HBase里面,Zookeeper在这里面起到协助通信的作用等。 |
收获:
学完此阶段需要掌握Hive数据仓库的环境搭建和配置,熟练使用HiveQL数据查询与项目实战应用开发,熟练使用Hive内置函数及UDF的应用开发。
阶段五 实时计算
说明:
数据的实时,持续计算,分布式RPC。 随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。当今世界,公司的日常运营经常会生成TB级别的数据。 数据来源囊括了互联网装置可以捕获的任何类型数据,网站、 社交媒体、交易型商业数据以及其它商业环境中创建的数据。考虑到数据的生成量,实时大数据处理成为了许多机构需要面对的首要挑战。 需要掌握HBase数据库项目实战应用开发,以及掌握Storm流式计算框架项目实战应用开发,还要掌握Flume、Kafka海量日志采集系统应用开发。
模块 | 目标 | 知识点 |
---|---|---|
Zookeeper分布式协调系统及HBase安装部署 |
应知应会:1.掌握分布式协调系统ZooKeeper的工作原理2.掌握zookeeper的安装与部署 3.理解zookeeper的选举机制 4.使用zookeeper构建应用 5.理解HBase的基本概念 6.掌握HBase的安装部署
业务实战:搭建zookeeper分布式协调系统安装HBase分布式集群 |
Zookeeper分布式协调系统 |
安装、运行ZooKeeper | ||
ZooKeeper实例 | ||
Zookeeper选举机制 | ||
Zookeeper服务 | ||
使用ZooKeeper构建应用 | ||
HBase分布式数据库 | ||
认识HBase | ||
HBase安装、部署 | ||
HBase核心功能模块和基本概念 |
应知应会:1.理解HBase与Hadoop之间的关系2.掌握的HBase的核心功能模块 3.掌握HMaster的工作原理 4.掌握HRegionServer的工作原理 5.掌握HBase的数据模型 6.掌握HBase中列式存储的基本概念 7.理解列簇、Rowkey、单元格的概念 8.掌握HBase的表结构设计 9.掌握列簇和Rowkey的设计
业务实战:构建HBase列式存储的模式设计 |
HBase与Hadoop的关系 |
HBase的核心功能模块 | ||
客户端 | ||
Zookeeper | ||
HMaster | ||
HRegionServer | ||
HBase的使用场景和经典案例 | ||
搜索引擎应用 | ||
用户内容服务 | ||
实时消息系统构建 | ||
HBase基本概念 | ||
数据模型 | ||
表、行键、列族、单元格 | ||
版本 | ||
事务特性ACID | ||
HBase表结构设计 | ||
模式创建 | ||
RowKey设计与列族定义 | ||
模式设计案例 | ||
Hbase客户端 |
应知应会:1.掌握HBase的Shell命令2.掌握HBase的常规命令 3.掌握HBase的DDL、DML命令 4.掌握HBase的工具命令 5.掌握HBase的Java客户端 6.掌握HBase中表的创建、删除、写入等操作 7.掌握HBase中数据的过滤
业务实战:使用HBase的客户端完成数据的增删改查 |
Shell命令行工具 |
命令分类 | ||
常规命令 | ||
DDL命令 | ||
DML命令 | ||
工具命令 | ||
Java客户端 | ||
客户端配置 | ||
创建表 | ||
删除表 | ||
插入数据 | ||
查询数据 | ||
删除数据 | ||
过滤查询 | ||
MapReduce批量操作客户端 |
应知应会:1.熟练使用MapReduce操作HBase表中的数据2.掌握HBase作为输入源,输出源及共享源 2.熟练使用Sqoop将数据导入到HBase表中 3.掌握WebUI界面查看HBase的状态 4.掌握HMaster、HRegionServer状态信息分析 5.掌握ZooKeeper状态信息分析
业务实战:使用MapReduce进行HBase的实战开发 |
MapReduce批量操作HBase |
三种访问模式 | ||
实现MapReduce API | ||
HBase作为输入源示例 | ||
HBase作为输出源示例 | ||
HBase作为共享源示例 | ||
使用Sqoop将数据导入HBase | ||
通过WEB UI工具查看HBase状态 | ||
HMaster状态界面 | ||
HRegionServer状态界面 | ||
Zookeeper统计信息界面 | ||
HBase核心知识点 |
应知应会:1.掌握HBase的核心概念2.掌握HBase的核心存储结构 3.掌握HBase的底层持久化原理 4.掌握HBase的查询、写入流程 5.掌握HBase的数据压缩及常见的压缩算法 6.掌握HBase的过滤器、计数器及协处理器 7.掌握HBase的布隆过滤器及二级索引 8.掌握HBase的批量加载及负载均衡
业务实战:HBase底层原理优化型实战开发 |
核心概念 |
核心结构 | ||
底层持久化 | ||
写入流程 | ||
查询流程 | ||
数据压缩 | ||
高级特性 | ||
过滤器 | ||
计数器 | ||
协处理器 | ||
二级索引 | ||
布隆过滤器 | ||
负载均衡 | ||
批量加载 | ||
Storm基础及Storm应用开发 |
应知应会:1.掌握实时流业务开发场景2.理解Storm基本概念及核心原理 3.掌握Storm的应用开发 4.掌握Topology创建及集群任务的提交 5.掌握Storm的核心概念和数据流模型 6.掌握Spout和Bolt等核心组件 7.掌握Stream和Stream Grouping
业务实战:Storm实时流计算应用开发 |
Storm简介 |
什么是实时流计算 | ||
Storm是什么 | ||
Storm核心组件 | ||
Storm特性 | ||
Storm应用于什么场景 | ||
Storm应用开发 | ||
安装部署Storm集群 | ||
创建Topology并向集群提交任务 | ||
核心概念和数据流模型 | ||
Topology | ||
Spout和Bolt | ||
Stream和Stream Grouping | ||
Task | ||
Worker | ||
Storm综合案例应用开发 | ||
Kafka |
应知应会:1.理解Kafka的安装与部署2.掌握Kafka的原理与架构 3.掌握Kafka的使用场景 4.掌握Kafka的核心概念
业务实战:使用Kafka进行文件消费者的应用开发 |
Kafka介绍 |
Kafka原理与架构 | ||
Kafka使用场景 | ||
Kafka的核心概念 | ||
Kafka安装、部署 | ||
Kafka文件消费者案例 | ||
Flume海量日志采集系统 |
应知应会:1.掌握Flume的安装部署2.掌握Flume的内部原理 3.掌握Flume的Source、Channel、Sink等核心组件
业务实战:Flume海量日志数据的采集应用开发 |
Flume简介 |
Flume安装 | ||
Flume内部原理 | ||
Source、Channel、Sink | ||
Flume应用案例 | ||
实战项目:运营商网络流量流向异常账号监测系统 |
应知应会:1.掌握项目的业务需求2.掌握项目的系统架构 3.掌握项目的需求分析 4.掌握项目的概要设计 5.掌握项目的详细设计 6.掌握项目的系统开发 7.掌握项目的单元测试 8.掌握项目的系统测试 9.掌握项目的上线部署 10.掌握项目的运营测试 11.掌握项目集群环境的搭建测试
业务实战:HBase、Storm开发工程师 |
项目名称:网络流量流向异常账号统计项目 |
数据体量:每天1000亿,每秒峰值100 000 | ||
硬件环境:Hadoop集群 600台 | ||
软件环境:MapReduce+HBase0.98.9+Storm0.9.6+ | ||
Hadoop2.5.2+Kafka2.10+Flume1.5.0+ | ||
Zookeeper3.4.5+CentOS-6.5-X86 | ||
开发工具:Eclipse+jdk1.7 | ||
项目团队:20人 | ||
项目周期:6个月 | ||
1、需求分析 | ||
1)运营商骨干网上采集现网流量流向信息,根据这些原始信息检测账号是否存在异常, 如果多个终端使用同一个宽带账号,超过一定阈值则触发报警机制,例如阈值为5时,同一个账号同时连接的终端数量不能超过该值,如果超过则报警。 | ||
2)数据量每天1000亿,每秒峰值100 000,l 5分钟是一个周期,每个周期生成一个结果文件,每个周期检测一次共享账号 | ||
2、检测方法 5分钟内,同一个账号(UserAccount)下,只要满足下面的任意一个条件,表示出现共享账户问题: natIP去重求和数 > 5 qqid去重求和数 > 20 cookieValue + devName + osName去重求和数 > 5 |
收获:
学完此阶段需要掌握HBase数据库项目实战应用开发,掌握Storm流式计算框架项目实战应用开发,掌握Flume、Kafka海量日志采集系统应用开发。
阶段六 大数据开发平台 Spark 生态
说明:
生态内处理的数据也可以共享,不同应用之间数据无缝集成 Spark 生态圈是加州大学伯克利分校的 AMP 实验室打造的,是一个力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成来展现大数据应用的平台。 需要掌握Scala基础语法、数据结构、面向对象编程、函数式编程;Scala应用开发,还要掌握Spark集群的安装、配置、使用; Spark核心概念、基本原理;Spark RDD、Spark SQL、Spark Streaming应用开发。 以及要了解企业大数据应用设计规范和编码规则,掌握大数据应用开发。
模块 | 目标 | 知识点 |
---|---|---|
Scala语言基础 SpringBoot/Cloud Docker |
应知应会:1.掌握IDEA集成开发工具的安装、配置和应用2.熟悉Scala基本语法、数据类型、面向对象编程 3.掌握Scala函数式编程、模式匹配、隐式转换等高级语法特性
业务实战:实现决策树、线性回归等机器学习算法 |
Scala及开发环境搭建 |
Scala基础语法 | ||
数据类型 | ||
面向对象 | ||
函数式编程 | ||
模式匹配、隐式转换等高级语法特性 | ||
实现决策树、线性回归等机器学习算法 | ||
Spark 核心概念 基本原理 Spark Core应用开发 |
应知应会:1.理解Spark系统架构,掌握系统及开发环境的安装、配置2.掌握Spark的核心概念 3.掌握Spark的基本原理 4.掌握Spark Core的开发
业务实战:实现KNN、KMeans等机器学习算法 |
Spark 基本架构、Spark安装、配置及使用 |
Spark 核心概念(RDD、Job、Stage、Task、Executor、Transformation、Action 等) | ||
Spark 原理解析(RDD 数据缓存机制、进程间RPC通信机制、任务划分机制、任务提交机制、任务运行机制、Task 序列化机制、内存管理机制等) | ||
Spark Core 编程 | ||
实现KNN、KMeans等机器学习算法 | ||
SparkSQL应用开发 |
应知应会:1.掌握SparkSQL基础数据类型、基本原理2.掌握DSL语法 3.掌握与Hive、MySQL、Parquet文件等数据源的集成 4.掌握复杂SQL的编写
业务实战:销售数据的统计分析 |
SpringBoot/Cloud技术使用 |
SparkSQL核心概念、基本原理 | ||
RDD、Dataset、DataFrame的转换 | ||
DSL语法 | ||
与Hive、MySQL集成 | ||
外部数据源(csv、json、parquet)的访问 | ||
分析函数等复杂SQL应用 | ||
销售数据统计分析 | ||
Spark Streaming 应用开发 |
应知应会:1.掌握Spark Streaming核心概念、基本原理2.掌握基本数据源应用 4.掌握与Flume、Kafka等高级数据源的集成 5.掌握无状态和有状态的转换 6.掌握Kafka offset的管理
业务实战:日志数据实时分析 |
SpringBoot/Cloud技术使用 |
Spark Streaming核心概念、基本原理 | ||
基础数据源应用:文件、Socket、RDD队列流 | ||
高级数据源应用:Flume、Kafka | ||
无状态的转换 | ||
有状态的转换 | ||
Kafka offset的管理 | ||
日志数据实时分析 | ||
Spark MLlib |
应知应会:1.掌握MLlib基础数据类型、核心概念2.掌握机器学习常见算法的原理及实现 3.调用Spark MLlib的计算学习算法完成分析、预测
业务实战:使用决策树模型预测森林植被 |
MLlib基础数据类型、核心概念 |
机器学习常见算法(决策树、线性回归、逻辑回归、KNN、KMeans、朴素贝叶斯、关联算法等)原理及实现 | ||
Spark MLlib算法应用 | ||
使用决策树模型预测森林植被 | ||
Spark提升 |
应知应会:1.了解Spark RPC基础原理2.master、worker启动流程流程分析、源码解读 3.Spark内存管理 4.Spark调优实战 |
Spark RPC原理 |
Spark 源码剖析(Master、Worker源码解读) | ||
Spark 内存管理 | ||
Spark 调优实战等 | ||
项目实战 |
应知应会:1.了解企业大数据应用设计规范和编码规则2.掌握企业大数据应用分析、设计方法 3.熟悉大数据批处理、流式处理应用开发流程
业务实战:大数据应用需求分析、设计、开发、部署 |
业务需求分析 |
系统设计 | ||
数据采集 | ||
数据预处理 | ||
ETL开发 | ||
统计分析(PV统计、受访分析、访客分析、访问分析等) | ||
流式处理系统的设计、开发 | ||
Python基础 |
应知应会:1.应用环境、开发环境配置2.基础语法、数据结构、IO操作、面向对象编程 3.基础的网络爬虫
业务实战:豆瓣、今日头条抓取数据 |
基础概念及开发环境安装 |
基础语法 | ||
数据结构 | ||
IO 操作 | ||
面向对象 | ||
网络爬虫 |
收获:
学完此阶段需要掌握Scala基础语法、数据结构、面向对象编程、函数式编程;Scala应用开发, 掌握Spark集群的安装、配置、使用;Spark核心概念、基本原理;Spark RDD、Spark SQL、Spark Streaming应用开发, ,了解企业大数据应用设计规范和编码规则,掌握大数据应用开发;

购买后
拉进交流群