Java大数据课程 |
第一阶段:JAVA筑基 | 开发环境搭建 | 计算机编程及开发语言、常用的D0S命令和操作、java跨平台原理、JDK的安装与卸载、配置环境变量、注释 |
Java基本语法 | 1.关键字和标示符、常量与变量、数据类型、运算符、Java开发基本语法和编程规范 |
三大流程控制结构 | 选择结构-if语句、选择结构-switch语句、循环结构-while语句、循环结构-while语句、循环结构-for语句 |
方法 | 语法结构和特点、如何定义一个方法、方法分类、方法重载 |
数组 | 数组的概念和特点、一维数组、二维数组、数组的基本使用、遍历数组、 |
类与对象 | 面向对象编程思想、类和对象的基本概念、构造方法、 |
面向对象特点 | 封装、继承、多态 |
抽象类与接口 | 抽象类的概念和定义、抽象成员特点、抽象类的注意事项、接口的概念和定义、接口成员特点、接口注意事项、抽象类和接口的区别 |
包 | 包的概述和定义、编译带包的java源代码、导包 |
内部类 | 内部类概述、内部类分类和各自特点、匿名内部类 |
开发工具Eclipse | Eclipse的下载,安装,卸载使用Eclipse如何创建工程、Eclipse更改编码,字体,配置模板、Eclipse的快捷键介绍、使用Eclipse的DeBug功能调试代码、Eclipse如何导出和导入包以及打jar包 |
常用API | 0bject类、Scanner类、String类、数组排序和查找、Date类、SimpleDateFormat类、BigInteger和BigDecimal类、Random类 |
正则表达式 | 正则表达式的概述和组成规则、匹配功能、替换功能、切割功能、查找功能、 |
集合框架 | Collection接口、List接口、Set接口、Map接口、迭代器、增强for循环、可变参数、Comparator和Comparable接口、Collections工具类、 |
泛型 | 泛型的概念和特点、如何自定义泛型、泛型通配符、 |
异常 | 异常的概述和分类、处理异常的方式、自定义异常 |
I0 | 方法递归的使用、File类概述和常用方法、字节流、字符流、其他流、 |
多线程 | 多线程的创建与启动、线程同步、线程通信、线程池、定时器 |
网络编程 | IP地址、端口、传输协议(TCP、UDP)/Socket编程 |
反射机制 | 反射的概念、三种Class实例的获得方式、反射获取类的构造方法,成员变量,成员方法、动态 |
新版本Java语言特性 | Java5新特性、Java6新特性、Java7新特性、Java8新特性 |
JAVASE综合练习 | 登陆注册案例概述、整体实现思路、图解两种实现思路、客户端实现1、服务端实现1、客户端实现2、服务端实现2、分布式运算系统案例概述、整体实现思路、使用报文方式进行通讯图解两种实现思路、客户端实现、服务端实现、改进客户端和服务端、JavaSE阶段自由发言答疑解惑 |
第二阶段:JAVA进阶-JAVA EE | MySQL数据库 | MySQL概述、MySQL安装及连接工具、MySQL操作实战、MySQLSQL、MySQL函数和存储过程、JDBC、连接池、案例 |
HTTP协议和Servlet | Http协议、Servlet、案例 |
HTML、JSP、EL和JSTL | HTML、JSP、EL表达式、JSTL |
cookie、session、filter、listener、MVC模式 | cookie、session、filter、listener、MVC模式 |
js、jQuery、Ajax和bootstrap | js、jquery、Ajax、bootstrap |
Spring | Spring入门、Spring的I0C、Spring注解、A0P、整合JdbcTemlate案例 |
SpringMVC | SpringMVC入门、参数绑定、RequestMapping注解、Controller的方法返回值、异常处理器、图片上传、json数据交互、Restful功能、静态资源映射、拦截器 |
Mybatis | Mybatis入门、Mybatis实现增删改查、SqlMapConfig、动态sql、关联映射、三大框架整合 |
第三阶段:大数据筑基 | Linux操作系统基础 | Linux的介绍和安装、Linux常用命令、linux环境基本配置、linux上常用软件安装、Linux命令、shell编程 |
第四阶段:HAD00P体系筑基 | JAVA应用增强 | java并法包应用、java反射技术、java通信、RPC技术、JVM内存管理及调优、java增强案例 |
HAD00P&HDFS基础 | HAD00P概述、HAD00P集群搭建、HAD00P集群操作入门、 |
HDFS应用与加强 | HDFS基础、HDFS编程、HDFS工作机制、HDFS集群故障恢复 |
MAPREDUCE编程模型 | MAPREDUCE编程模型、MAPREDUCE编程实战 |
MAPREDUCE特性 | MAPREDUCE编程接口、MAPREDUCE特性应用、特性编程实战、MAPREDUCE结合JVM调优 |
HIVE从入门到精通 | HIVE安装、HIVE工作机制、HQL基本语法、HIVE数据类型详解、HIVE函数详解、HIVE解决特殊格式数据、HIVE综合案例、HIVE调优 |
FLUME/SQ00P/AZKABAN | FLUME、SQ00P |
第五阶段:Hadoop体系项目-实战 | 综合项目(一):亿用户级APP数据分析系统 | 项目简介:项目概述、项目业务背景、数据处理流程 |
数据采集:定时打包、周期汇报上传、采集监控 |
数据预处理:数据集成、数据变换、数据规约、数据清洗 |
活跃用户统计:指标业务介绍、指标流程设计、单一用户数据去重、HIVE仓库数据建模、MR统计开发、数据落地,导出到传统数据库 |
新增用户统计:指标业务介绍、指标流程设计、广告渠道、自有渠道、引擎渠道、其他渠道 |
升级用户统计:指标业务介绍、指标流程设计、当日各渠道升级用户、升级漏斗模型分析、老用户升级 |
累计用户统计:指标业务介绍、指标流程设计、各渠道累计用户统计、全量累计用户统计、累计用户趋势对比统计 |
数据汇总:数据聚合、统一属性数据累加 |
数据落地:技术介绍、环境搭建、融合当前项目 |
自动化流程控制:技术介绍、环境搭建、融合当前项目 |
项目整体总结:开发中遇到的各种坑、项目中的各典型调优点 |
第六阶段:spark体系筑基:Scala&Spark | Scala函数式编程(6) | Scala入门:scala编程介绍、scala与其他语言的对比和优势、scala相关软件安装、scala基础语法、scala编程介绍、scala相关软件安装、scala入门案例 |
函数式编程:scala方法和函数、scala的函数和Python的Lambda对比、scala的函数和Java8的Lambda对比、用Java自己实现一个类似函数式编程的功能、scala函数式编程特点、scala数组和集合、map、flatMap方法的讲解和案例、reduce方法的讲解和案例、filter、filterNot方法方法的讲解和案例、fold、foldLeft、foldRight方法方法的讲解和案例、sortBy、sortWith、sorted方法方法的讲解和案例、aggregate方法的讲解和案例、其他常用的方法、scala编程练习(单机版WordCount) |
面向对象:类的定义、构造器与辅助构造器、继承、单例对象、包访问权限、实现特质、方法的重写和重载、实现多态、面向对象综合案例 |
模式匹配:Scala模式匹配的特点、按内容匹配、按类型匹配、case class、case object、自定义case class和case oject案例、0ption/Some/None、偏函数 |
Actor并发编程:Actor编程模型简介、Actor编程模型简介与Java传统多线程的区别、创建Actor的方式、发送同步消息和异步消息、Scala的Future功能、Actor编程实战 |
高阶函数:高阶函数介绍、高阶函数的种类、柯里化、call by name和call by value、Scala的闭包、高阶函数综合案例 |
隐式转换:隐式转换的概念和作用、隐式转换与装饰模式、模式的对比、隐式转换的优点、上下文绑定、视图绑定、逆变和协变、隐式转换原理剖析、隐式转换案例 |
分布式RPC编程案例(Akka和Netty):RPC编程实现原理介绍、Akka框架介绍、Akka入门案例、Akka原理剖析、Akka的容错功能、Akka整合zookeeper实现高可用、实战:RPC编程实战一(实现RPC通信功能)、实战:RPC编程实战二(实现Spark底层通信的功能)、Netty的介绍和特点、Netty的基本使用、案例:实现Netty的Server端的实现、案例:实现Netty的Client端的实现、Netty整合其他序列框架、案例:利用Netty实现RPC通信 |
Spark内存计算 (以Spark2.x全新版本为主, 同时兼顾Spark1.x) | Spark简介和环境搭建:Spark简介、Spark和Hadoop、Storm的对比、Spark集群环境架构、Spark集群搭建、Spark高可用集群搭建、Spark-Shell的使用、Spark整合HDFS |
RDD的Transformation和Action的使用:用Scala语言编写Spark应用程序WordCount、用Java语言编写Spark应用程序WordCount、RDD简介、RDD的特点说明、Spark常用算子介绍、Spark的Transformation算子、map、flatMap、mapPartitions的使用、filter的使用、reduceByKey、groupByKey、aggregateByKey的使用、sortByKey、sortBy的使用、join、unit、intersection、cogroup的使用、coalesce、repartition、repartitionAndSortWithinPartitions的使用、其他复杂的Transformation算子、Spark的Action算子、reduce的使用、count、countByKey的使用、collect、firsttake、take0rdere的使用、saveAsTextFile、saveAsSequenceFile、saveAs0bjectFile的使用、foreach、foreachPartition算子、其他复杂的Action算子 |
Spark Core的功能和实战案例:案例:用户常出现的位置、Spark的WordCount执行相信流程解析、RDD的缓存机制、案例:URL求TopN、自定义分区、二次排序、自定义排序、RDD的checkpoint机制、广播变量、案例:根据IP求归属地、Spark远程调试、Maven编译Spark源码、宽依赖和窄依赖、RDD的血统关系、DAG切分过程、案例:利用JdbcRDD导入数据 |
Spark SQL:Spark-SQL介绍、Spark-SQL的使用新特性、SparkSession的使用、DataFrame和DataSet的使用、DataFrame的常用方法、通过Case Class和Schema创建DataSet、DataSet的常用方法、Parquet文件的使用、SparkSQL的TemporaryView、Spark-SQL加载并处理MySQL中的数据、利用Spark-SQL讲数据写入到MySQL中、Spark-SQL整合Hive、Spark-SQL综合案例1、Spark-SQL综合案例2 |
SparkStreaming:Spark-Streaming简介、编写Spark-Streaming的WordCount程序、可更新状态的WordCount程序、Spark-Streaming整合Flume、Kafka的介绍、Kafka集群的安装、Kafak相关概念介绍、Kafka生产者和消费者程序编写、Kafka的Topic的相关操作、Kafka原理深入、Spark-Streaming整合Kafka、案例:Spark-Streaming实时统计小区流量、Spark-Streaming窗口函数、Spark-Streaming直连方式整合Kafka、直连方式原理分析 |
Spark 0n Yarn:Hadoop的YARN知识点回顾、Spark 0n YARN两种方式Cluster和Client、两种方式过程分析、Spark 0n YARN日志查看、Spark 0n YARN常见问题分析、Spark 0n YARN的的任务调度、Spark 0n YARN的常用配置参数、YARN的监控页面参数讲解 |
Spark MLlib:Spark MLlib介绍、MLlib和Mahout的对比和优势、breeze向量和矩阵计算、MLlib常用算法、案例:智能案例、案例:分析电商销售商品分类 |
Spark GraphX:GraphX介绍、图相关概念的介绍、GraphX基本使用、案例:社交用户人脉分析、案例:手机用户常出没的商圈分析 |
Spark源码分析:Master启动流程源码分析、Worker启动流程源码分析、Spark应用程序提交构成源码分析、SparkContext创建过程源码分析、ClientActor提交任务给Master过程源码分析、Master资源调度源码分析、Master通知Worker启动Executor过程源码分析、Executor跟DriverActor通信过程源码分析、任务提交整理流程源码分析、DAGSchedule执行过程分析、DAG切分Stage过程源码分析、TaskScheduler提交Task过程源码分析、Executor上执行Task过程源码分析 |
Spark集群和任务性能优化:Spark Standalone模式优化参数、任务提交资源分配和优化参数、数据倾斜原因及优化方案、Driver端参数配置和优化、Worker端参数配置和优化、RDD的cache、checkpoint等相关优化、Shuffle过程优化及参数配置、SparkSQL的任务优化、SparkStreaming的任务优化、Spark 0n YARN端参数配置和优化、Spark集群监控和参数调优、Spark集群内存监控和JVM GC调优 |
第七阶段:spark体系-实战项目一 | 游戏运营平台数据分析系统(7) | 数据分析在游戏行业的应用概况:游戏行业现状分析、游戏运营与数据分析的关系、数据分析的重要价值和意义 |
项目背景:项目背景介绍、游戏引擎介绍、项目业务流程梳理、项目技术架构分析、游戏分析指标、日志采集、日志格式 |
数据采集:游戏页面JS埋点脚本、Flume的使用、Kafka消息队列的使用、Elasticsearch和Logstash的安装和使用 |
离线业务:游戏玩家渠道来源分析、游戏玩家留存分析、游戏活跃玩家分析、游戏玩家区域分析、游戏玩家等级分析、游戏玩家在线时长分析、游戏玩家充值可消费分析 |
实时业务:玩家实时充值情况、玩家充值成功率实时统计、玩家实时排查 |
数据可视化:JavaEE三大框架环境搭建、Echarts报表的使用 |
第八阶段:spark体系-实战项目二 | 大数据实战项目:精准广告推送系统DMP平台 | 广告行业现状:广告行业现状、广告行业知识介绍、DSP业务需求详解 |
项目背景:项目背景介绍、项目业务流程梳理、项目业务技术架构分析、日志生成过程、日志属性讲解 |
Flume数据采集:Flume自定插件详解、Flume组件使用、Flume采集数据到HDFS集群、日志存储目录设计 |
数据存储技术选型:parquet存储原理、parquet优势分析、原始日志转parquet、 |
离线业务:地域分析、终端设备、媒体分析、渠道分析 |
实时业务:日志到Kafka、媒体实时分析、渠道实时分析 |
用户画像:标签体系、上下文数据标签化、统一用户识别、基于地理位置的广告投放详解、用户数据标签化、标签数据存储、标签数据衰减 |
数据可视化:ElasticSearch、Echarts、标签数据可视化 |
第九阶段:spark体系-实战项目三 | 实时充值数据监控统计平台 | 项目背景介绍:实时充值监控平台项目背景详解 |
需求分析详解:业务概况指标详解、各省充值数据分析详解、充值业务时长分析、充值机构统计、充值数据分析 |
项目架构设计:日志采集、Kafka消息队列设计、Spark Streaming业务处理、存储选型 |
项目业务实战:实时概况:充值订单量、实时概况:充值成功率、实时概况:充值平均时长、省份实时:充值订单量T0P10、省份实时:业务失败T0P5、省份实时:业务平均时长T0P10、实时充值笔数和金额统计、充值机构实时分布、 |
项目成果总结:项目成果汇报展示、项目问题总结、项目难点总结 |