大数据实战直播课(二)

大数据实战直播课(二)

最近在学 0人 累计报名 43 好评度 - 收藏
  • 大数据实战直播课
更多班级

大数据实战直播课

上课时间:03月15日 至 20年03月

免费

本班因教学质量问题暂时不能报名。 查看详情

课程因违反平台规定暂时不能报名。

立即报名

课程概述

课程目录

学员评论

老师介绍

杨老师@大讲台.讲师

杨老师@大讲台.讲师

资深大数据玩家,大数据技术狂热者。曾在北京某广电数据咨询公司单人大数据高级架构师,七年以上大数据实操经验,经理过10个以上的重量级大数据项目。Hadoop源码级技术大咖,熟练使用Hadoop、Spark、Hive、Hbase、Flume、Kafka等各大主流组件。
杨哲@大讲台.老师

杨哲@大讲台.老师

数据大数据生态圈的组件,如flume、hadoop、spark、kafka、hbase、storm等
Felix@大讲台.讲师

Felix@大讲台.讲师

北京某移动应用平台大数据高级架构师,6年以上大数据系统架构及分析处理经验,骨灰级大数据玩家。曾就职于国内某TOP5的电信相关业务公司,负责对手机信息收集处理工作,对于Hadoop、Storm、Spark有较深研究。搭建、维护过上百节点集群,处理过PB级数据。
雷老师@大讲台.讲师

雷老师@大讲台.讲师

多年Java项目、大数据项目开发经验,实战能力强,对Hadoop,Spark大数据框架有非常多的项目经验,擅长从代码的角度实战讲解,手把手带领大家搞定企业项目;致力于成为大数据技术布道师,让更多的人踏入到大数据领域的崇高事业中。
蓝老师

蓝老师

大咖巴洛克,技术领域专家。 精通java、 MySql, freemarker等编程语言,深入掌握SSM技术框架。精通各种JavaScript框架,如jQuery。具备很强的项目管理能力。
简  介 技术大牛组团授课,专讲大数据核心知识和大型项目实战,多台物理服务器数十个节点现场直播演示!企业级实战项目让你四个月掌握2年的项目经验!
一、企业大数据平台及开发环境部署
    1.注意事项及规范
    2.功能及非功能需求分析
    3.企业集群规划及资源配置方案
    4.机器选型、软件选型以及其他相关技术选型
    5.集群部署之机器准备及集群环境基本配置
    6.搭建Hadoop 伪分布实验环境
    7.搭建Hadoop(Apache 版本) 分布式生产环境
    8.CM+CDH部署企业级大数据平台
    9.Ambari+HDP部署企业级大数据平台
    10.搭建Eclipse开发环境,用Maven构建企业级MapReduce项目全流程
    11.MapReduce单元测试及DeBug调试
    12.企业大数据平台管理、监控和维护
二、HDFS 分布式文件系统
    1.理解HDFS的设计理念和架构原理
    2.剖析HDFS对文件的读取流程、写入流程
    3.理解数据块备份原理及流程,和RPC机制
    4.配置HDFS的机架感知
    5.理解HDFS的HA架构原理
    6.部署HDFS的HA集群
    7.理解HDFS的Federation机制及架构
    8.理解Hadoop文件系统的安全模式
    9.配置Hadoop文件系统的安全模式及相关操作
    10.快速掌握HDFS的Shell访问操作
    11.源码剖析并实现HDFS的Java API访问
    12.如何根据数据量的动态变化增删节点的数量满足业务需求
    13.HDFS文件系统的权限管理
    14.综合实战:小文件合并
三、Hadoop文件IO详解
    1.理解HDFS完整性、校验和及数据块检测程序
    2.掌握Hadoop文件的序列化及反序列化机制
    3.掌握Hadoop中Writable类的层次结构
    4.编码实现Hadoop数据类型的自定义
    5.掌握Hadoop常见压缩的类型和特点
    6.对Hadoop进行源码编译并实现Snappy压缩的配置使用
    7.掌握Hadoop基于文件的数据结构
    8.综合实战:Snappy 压缩
四、MapReduce 分布式计算框架
    1.掌握MapReduce编程模型、框架、工作流程、作业调度及编程接口体系
    2.源码剖析MapReduce的主要组件及编程接口
    3.理解MapReduce的高级程序设计
    4.掌握数据输入和输出格式的自定义
    5.掌握Partitioner和Combiner
    6.掌握MapReduce的二次排序、Join算法、TOP N算法、计数器
    7.理解Hadoop Streaming实现多语言编程
    8.剖析并掌握MapReduce参数调优
    9.MapReduce的容错机制
    10.综合实战:五大视频网站相关指标的统计分析
五、YARN 资源管理器
    1.YARN的产生背景、特点及架构原理
    2.配置并使用JobHistoryServer、日志聚集服务功能
    3.掌握YARN的HA架构并实现集群HA部署
    4.理解YARN的多层次容错机制
    5.掌握MapReduce ON YARN的运行原理及流程
六、Zookeeper 分布式协调服务
    1.Zookeeper 概述
    2.Zookeeper架构及工作原理
    3.Zookeeper Paxos与Zab
    4.Zookeeper 读写机制、选举及CAP理论
    5.Zookeeper 集群安装
    6.Zookeeper shell操作命令与Java API
    7.Zookeeper应用场景:数据发布订阅、统一命名服务、分布通知/协调
        、分布式锁、集群管理、分布式队列
七、Hive 数据仓库
    1.Hive 概述
    2.Hive 架构及工作原理
    3.Hive的安装部署
    4.Hive SQL基本操作详解
    5.Hive 内置函数及自定义函数
    6.Hive 性能调优及数据倾斜
    7.企业数据仓库构建
    8.Hive企业开发规范
    9.综合实战:金融数据统计分析
八、Flume 日志收集系统
        1.Flume 概述
        2.Flume 架构及内部原理
        3.Flume 可用性、可靠性、数据重复及扩展性       
        4.Flume 集群构建
        5.Flume 多种应用场景
        6.Flume 源码解读及bug修复
        7.Flume 监控
        8.综合实战:Flume整合HBase
九、Sqoop 数据导入导出工具
        1.Sqoop 概述
        2.Sqoop 基本架构
        3.Sqoop Import及Export原理
        4.Sqoop 的应用场景
        5.Sqoop 环境安装部署
        6.Sqoop与HDFS、Hive、HBase
        7.Sqoop shell脚本及企业开发规范
十、HBase 分布式数据库
        1.HBase概述
        2.HBase逻辑模型及物理模型
        3.HBase系统架构及工作原理
        4.HBase 容错
        5.HBase Region定位、读写原理及负载均衡
        6.HBase Rowkey设计、列簇设计、表设计及预计分区
        7.HBase过滤器、计数器
        8.HBase 生产环境安装部署
        9.HBase shell操作及Java客户端操作
        10.HBase 性能调优
        11.HBase 集群管理维护
        12.HBase 冷热数据处理及降低IO处理
        13.综合实战一:HBase与MapReduce整合
        14.综合实战二:HBase与Hive整合
        15.综合实战三:HBase与Phoenix整合
十一、ElasticSearch 搜索引擎
        1.ElasticSearch 概述
        2.ElasticSearch安装配置
        3.ElasticSearch CURL 操作及Java API操作
        4.ElasticSearch与中文分词集成
        5.ElasticSearch性能调优
        6.综合实战一:ElasticSearch与HBase整合实现爱奇艺视频网站检索
        7.综合实战二:ElasticSearch与Kibana整合对数据统计分析与可视化               
十二、Kafka 分布式消息系统
        1.Kafka定义及特点
        2.Kafka架构原理
        3.Kafka核心概念
        4.Kafka高级消费者与低级消费者
        5.Kafka高可用
        6.Kafka可靠性保证:Producer可靠性、Consumer可靠性和Broker可靠性
        7.Kafka实现高吞吐率保证
        8.Kafka与其它消息队列对比
        9.Kafka集群安装配置详解
        10.Kafka shell 操作
        11.Kafka 客户端操作
        12.Kafka JVM参数调优、集群参数调优、消费者参数调优
        13.Kafka Topic命名技巧
        14.Kafka集群滚动升级
        15.Kafka shell脚本
        16.实战一:Flume整合Kafka数据采集
        17.实战二:Flume整合Kafka分区优化
        18.实战三:Kafka整合Storm
十三、Storm 分布式流式计算框架
    1.实时流式计算介绍   
        1.1.实时流式计算是什么
        1.2.实时流式计算的特点
        1.3.实时流式计算使用场景分析
        1.4.Queue+Worker,S4, Storm,Spark简单介绍
    2.认识Storm   
        2.1.Storm介绍
        2.2.Storm特点
        2.3.Storm优势
    3.Storm使用场景   
        3.1.新浪的实时分析平台
        3.2.腾讯的实时计算平台
        3.3.奇虎360的实时平台
        3.4.百度的实时系统
        3.5.阿里的Jstorm
    4.Storm的系统架构   
        4.1.主节点(Nimbus)
        4.2.从节点(Supervisor)
        4.3.Web节点(Storm UI)
        4.4.协调节点(Zookeeper)
    5.Storm的工作流   
        5.1.作业单元(Topology)
        5.2.数据源编程单元(Spout)
        5.3.数据处理编程单元(Bolt)
    6.Storm的并发机制   
        6.1.服务器(Nodes)
        6.2.JVM虚拟机(Worker)
        6.3.线程(Executor)
        6.4.Spout/Bolt实例(Task)
    7.Storm的数据流   
        7.1.Stream讲解(Tuple)
        7.2.Storm的数据模型
        7.3.Stream Grouping
    8.Storm的保障机制   
        8.1.功能性保障:多粒度的并行化
        8.2.非功能性保障:多级别的可靠性
    9.Storm部署   
        9.1.Storm版本发展历史
        9.2.本地模式
        9.3.分布式模式
        9.4.主节点Nimbus
        9.5.工作节点Supervisor
        9.6.Storm UI
        9.7.Storm配置项
    10.项目如何在Storm集群下运行   
        10.1.Storm Java API
        10.2.Topology创建与提交
        10.3.实例操作
    11.Storm集群的监控与管理   
        11.1.主机信息监控
        11.2.日志监控
        11.3.Storm UI
十四、Spark 分布式内存计算框架
    1.Spark概述
        1.1.Spark简介
        1.2.Spark生态系统介绍
        1.3.了解Spark编程套路
    2.Spark安装部署
        2.1.Spark安装简介
        2.2.Local模式
        2.3.Local Cluster模式
        2.4.Standalone模式
        2.5.Spark on YARN
        2.6.各种模式比较
    3.Spark Core
        3.1.Spark编程环境搭建
        3.2.Spark交互式工具spark-shell
        3.3.Spark应用程序部署工具spark-submit
        3.4.理解Spark RDD
            3.4.1.RDD弹性分布式数据集
            3.4.2.介绍RDD实现原理
            3.4.3.Action和Transformation
            3.4.4.理解窄依赖与宽依赖
            3.4.5.RDD常用函数
            3.4.6.RDD、DataFrame与DataSet
        3.5.Spark Job调度机制
            3.5.1.基本术语
            3.5.2.运行架构(DAGScheduler、TaskSeduler、Task、容错性、推测机制、数据本地性)
            3.5.3.Spark on Standalone运行过程分析
            3.5.4.Spark on YARN 运行过程分析
        3.6.Spark存储管理机制
            3.6.1.存储管理模块架构
            3.6.2.RDD持久化
            3.6.3.Shuffle
            3.6.4.广播变量与累加器
            3.6.5.Cache与checkpoint问题
        3.7.Spark监控
            3.7.1.Spark web ui
            3.7.2.Metrics系统
        3.8.Spark多语言编程
            3.8.1.wordcount之Python版
            3.8.2.wordcount之Java版
            3.8.3.wordcount之Scala版
        3.9.Spark 编程实例
            3.9.1.TopN两种实现方式:分区与非分区
            3.9.2 倒排索引
            3.9.3 CountOnce
    4.Spark Streaming
        4.1.Spark Streaming概述
        4.2.SparkStreaming架构原理
        4.3.性能调优
            4.3.1.设置合理的Job并行度
            4.3.2.数据序列化
            4.3.3.选择合适的Batch Duration
            4.3.4.缓存数据
            4.3.5.内存调优
            4.3.6.设置合理的cpu数
        4.4.容错机制
            4.4.1.检查点机制-checkpoint
            4.4.2.Driver节点容错
            4.4.3.Worker节点容错
        4.5.SparkStreaming应用案例
            4.5.1.网络数据操作
            4.5.2.文本数据操作
            4.5.3.Window窗口操作
    5.Spark SQL
        5.1.Hive 知识回顾
        5.2.Spark SQL组件、架构
        5.3.Catalyst上下文:SQLontext、HiveContext
        5.4.ThriftServer和CLI
        5.5.SparkSQL应用案例
        5.6.用户自定函数
        5.7.SparkSQL性能调优
    6.Spark2.x新框架
        6.1Spark Structured Streaming简介
        6.2Spark Structured Streaming核心思想
        6.3Spark Structured Streaming 输出类型:Complete Mode、Append Mode、Update Mode
        6.4Spark Structured Streaming与Kafka集成

十五、大数据项目实战
企业级项目实战一:某权威机构广电收视率系统
    1.项目背景
        《中国好声音》、《快乐男声》、《最美和声》、《中国梦之声》……今年夏天,
        各种音乐选秀节目竞争激烈。哪个节目更受观众欢迎?节目中的“笑点”和 “尿点”又藏在哪儿?歌华有线的“北京大样本收视数据研究中心”给出了答案。
        这个去年初才筹建的机构,掌握着最热门的“大数据”计算模式,如今正充当起各个电视节目的幕后“军师”。
    2.项目需求分析
        为了便于我们掌握哪个节目更受观众欢迎以及节目中的“笑点”和 “尿点”,我们可以通过一些用户的收视指标进行监测,比如收视人数、平均收视人数、收视率、市场份额、平均到达人数、到达率以及人均收视时长等等,我们可以将这些指标按天统计,可以得出每个节目收视排名,从而知道那个节目更受欢迎;我们也可以将这些指标按小时、甚至按分钟进行统计,可以精确的知道某个节目在那哪一分钟或者某一段时间收视最高,从而知道某个节目的最精彩的部分,甚至还可以推断出节目中收视率高是由哪个明星带来的。 当然我们可以通过用户的数据,还可以掌握其它维度的收视情况,
        比如频道、频道类别、栏目、栏目类别、节目、节目类别、具体频道具体节目等等。
    3.项目知识要点
        3.1.Flume要点
            3.1.1.Flume Agent(Source Channel Sink)的选择及配置。
            3.1.2.Flume 数据采集过程中大文件异常处理。
            3.1.3.Flume数据采集过程中小文件合并以及数据压缩使用
        3.2.MapReduce要点
            3.2.1. 解析用户原始数据:过滤“不合规”数据;对数据的格式进行转换和规整;根据后续的统计需求,过滤分离出各种不同主题的基础数据
            3.2.2.根据业务需求统计收视率相关指标,比如收视人数、到达人数、收视率、到达率、市场份额等
            3.2.3.从时间、节目、栏目等多维度统计收视率数据
            3.2.4.构建MR运行拓扑图,理清MR相互依赖关系。
        3.3.Hive要点
            3.3.1.Hive 建模
            3.3.2.Hive 表动态分区
            3.3.3.Hive 数据倾斜处理
            3.3.4.Hive Job 优化
        3.4.Sqoop数据导出要点
            3.4.1.Sqoop 入库数据任务失败处理
            3.4.2.Sqoop 设置合理的并行度
        3.5.Azkaban工作流调度要点
            3.5.1. 将整个项目的数据处理过程,从数据采集到数据分析,再到结果数据的导出,一系列的任务分割成若干个Azkaban的工作流,并进行协调调度
            3.5.2.各个阶段依赖关系和执行脚本的编写
            3.5.3.工作流的定时调度
    4.项目安装部署及架构设计
        4.1.机器选型、节点规划、目录规划等。
        4.2.分布式集群环境搭建
        4.3.项目整体架构设计
    5.项目开发流程
        5.1.使用Flume监控数据目录,将数据收集到HDFS分布式文件系统
        5.2.编写MapReduce解析数据、清洗数据、统计分析数据,结果存储HDFS
        5.3.使用Hive对每小时、每天、每月以及多维度收视率数据进行统计
        5.3.使用Sqoop 将Hive的分析结果数据导入MySQL数据库
        5.5.打通项目的各个环节,整体联调及性能调优
        5.6.开发Web项目实现收视率查询、展示系统
    6. 项目总结   
        6.1.实际生产环境中的注意事项
        6.2.谈谈项目需要改进的地方
        6.3.项目中遇到的问题及解决方法

企业级项目实战二:金融实时数据动态指标计算平台
        1.项目背景
            本项目主要针对用户充值,金币消耗,钻石消耗等数据,进行实时计算分析,
            统计出来最近一段时间内用户的消费情况,为运营部门提供运营决策依据。
        2.项目需要解决的问题
            2.1.实时计算平台架构的部署
            2.2.使用Zookeeper实现分布式共享锁,保证分布式架构下多线程处理数据的安全性
            2.3.Flume拦截器的使用以及自定义拦截器的实现
            2.4.如何实现Flume进程的监控,以及进程挂掉之后如何自动重启
            2.5.调整Flume进程内存避免频繁GC
            2.6.针对Kafka集群频繁发生副本丢失,导致频繁进行副本复制,进而导致集群压力过大
            2.7.针对Kafka消费者经常超时导致数据消费失败问题
            2.8.如何实现Kafka集群平滑升级(不影响线上业务的情况下)
            2.9.如何定位Storm任务的计算瓶颈
            2.10.如何实现Strom任务资源动态调配
        3.项目知识要点
            3.1.Zookeeper要点
                3.1.1.Zookeeper的核心功能使用
                3.1.2.Zookeeper中的临时节点和Watcher监视器
            3.2.Flume要点
                3.2.1.Flume Agent(Source Channel Sink)的选择及配置
                3.2.2.Flume拦截器的使用
                3.2.3.Flume参数调优
                3.2.4.Flume进程监控实现以及进程挂掉之后自动重启
            3.3.Kafka要点
                3.3.1.Kafka中topic的partition和replication的设计
                3.3.2.Kafka集群平滑升级
                3.3.3.Kafka集群参数调忧
            3.4.Storm要点
                3.4.1.Storm并行度的分析以及调整
                3.3.2.Storm UI界面关键指标分析
                3.4.3.Storm实现动态资源调整
        4.项目技术选型
            4.1.Flume:内置十几种数据采集方式、几种存储队列、十几种数据写出方式,组件轻量不会影响业务系统并吞吐量很高,消息可带消息头可区分日志来源
            4.2.Kafka:高可用高并发的分布式消息队列,数据一旦进入kafka则不会丢失,并且数据可用重复使用,存储日志分布在集群各个机器上提高后续并发处理能力

            4.3.Storm:分布式实时计算框架,拥有低延迟、高性能、分布式、可扩展、容错等特性,可以保证消息不丢失,消息处理严格有序。
        5.项目生产环境机器配置及部署   
            5.1.Zookeeper集群配置
            5.2.Kafka集群配置
            5.3.Storm集群配置
        6.业务实现       
             6.1.分别利用Log4j+Flume+Kafka+Storm或者前端埋点+Kafka+Storm等架构
            实现实时数据处理需求
            6.2.项目具体代码实现
            6.3.项目相关指标统计分析
            6.4.项目的流分组实现
            6.5.项目的可靠性实现
            6.6.项目的定时任务实现
            6.7.项目整体流程跑通
            6.8.项目整体优化及性能调优
        7.项目总结   
            7.1.实际生产环境中的注意事项
            7.2.谈谈项目需要改进的地方
            7.3.各个项目中遇到的坑

企业级项目实战三:知名手机厂商用户行为实时分析系统
    1.需求分析   
        1.1.背景
            1.1.1.需要实时了解手机用户应用使用情况
            1.1.2.对系统接口的响应情况需要实时监控
        1.2.总体要求
            1.2.1.搭建高可用的实时计算框架,在框架中的每个部分必须是高可用的
            1.2.2.实时计算用户对应用的使用时长情况,比如每小时、每天对应用的使用情况
            1.2.3.实时计算每个接口的PV、UV、响应时间等
            1.2.4.对用户的请求做到毫秒级响应
        1.3.难点分析
            1.3.1.业务系统很多,如何实时聚合日志并对业务侵入性很小,这么多的系统的日志格式肯定都不一样,统一聚合后如何区分日志
            1.3.2数据量很大如何达到高并发,让处理速度远高于写入速度
            1.3.3.如何分布和处理数据才能对后续的系统减少压力,比如处理好的数据写入hbase,如何减少写次数
            1.3.4.我们的系统是大数据和业务系统紧密结合的,那么在大数据大量用户的情况下如何做到低延时
        1.4.解决问题的思路
            1.4.1.需求分析并找出实现难点
            1.4.2.设计每个难点的详细解决方案
            1.4.3.程序或者脚本编码
            1.4.4.项目测试
            1.4.5.项目部署
            1.4.6.项目交付
    2.知识要点   
        2.1.Flume要点
            2.1.1.怎么实现负载均衡
            2.1.2.怎么设计拓扑以达到高可用
            2.1.3.如何自己开发拦截器来实现我们特殊的要求,比如区分日志、均匀的写kafka分区
            2.1.4.写kafka是同步写还是异步写
        2.2.Kafka要点
            2.2.1.kafka的高可用
            2.2.2.建立topic,设置合理的分区与副本
            2.2.3.kafka高级消费者与低级消费者
            2.2.4.监控分区消息量以及消费进度
        2.3.Spark要点
            2.3.1.选择kafka低级消费者stream还是高级消费者stream
            2.3.2.各种算子的功能
            2.3.3.如何实现二次排序
            2.3.4.根据业务情况如何优化计算逻辑,使计算结果对后续压力减少
        2.4.Hbase要点
            2.4.1.hbase的数据模型
            2.4.2.计数器、过滤器
            2.4.3.根据我们的项目需求如何设计rowkey和表结构
            2.4.4.如何批量写hbase,减少网络通信时间
            2.4.5.项目开发中如何选择合适的拦截器以避免全表扫描
    3.难点攻克   
        3.1.难点攻克1:如何收集不同业务系统的日志
            3.1.1.不同的业务系统由不同的团队开发运维,故产生的日志格式以及内容都不一样
            3.1.2.每个业务系统会有多个日志机器,所以多个业务系统可能至少有十几台日志服务器
            3.1.3.日志服务器上面一般都有业务系统的服务再跑,如何在采集日志的时候不影响业务系统
            3.1.4.多个业务系统的日志被聚合在一起后如何在后续计算中区分日志
        3.2.难点攻克2:数据容错和提高并发处理能力
            3.2.1.业务系统产生的数据都是海量的,少则千万多则上亿,数据容错性如何保障,我们辛苦采集的数据不能在处理之前丢失
            3.2.2.这些海量日志如何被均匀发布到多台机器上,来提高并发处理能力
            3.2.3.采集的数据不只为一种计算需求所使用,数据要重复被不同的需求使用,那么如何保证
        3.3.难点攻克3:减少写hbase的读写次数
            3.3.1.我们不能每条日志处理后都写一次hbase,那么怎么减少写hbase的次数又不失准确性呢
            3.3.2.hbase里面的结果数据是要被查询的,如何减少查询次数又能满足需求
    4.方案设计   
        4.1.技术选型
            4.1.1.Flume:内置十几种数据采集方式、几种存储队列、十几种数据写出方式,组件轻量不会影响业务系统并吞吐量很高,消息可带消息头可区分日志来源
            4.1.2.Kafka:高可用高并发的分布式消息队列,数据一旦进入kafka则不会丢失,并且数据可用重复使用,存储日志分布在集群各个机器上提高后续并发处理能力
            4.1.3.Spark-streaming:基于内存的流式计算框架,可用在内存中对数据批量快速处理,具有高吞吐量低延迟的特权
            4.1.4.Hbase:亿级行百万列并可达到毫秒级查询的数据库,可以满足毫秒级低延迟查询
        4.2.架构设计
            4.2.1.日志采集层
            4.2.2.日志存储层
            4.2.3.日志处理层
            4.2.4.结果存储层
            4.2.5.查询接口
        4.3.部署方案
            4.3.1.拓扑图:哪些服务部署在哪些机器上
            4.3.2.高可用方案:HDFS HA、ResourceManager HA、Flume高可用拓扑、Kafka高可用集群
            、Spark on YARN、Hbase HA
        4.4.业务日志采集
            4.4.1.提供Flume全拓扑图
            4.4.2.采用两层agent设计
            4.4.3.第一层在业务系统服务器上部署
            4.4.4.第二层做日志聚合
    5.集群安装配置   
        5.1.Zookeeper集群配置
        5.2.Hadoop YARN集群配置
        5.3.Hbase集群配置
        5.4.Kafka集群配置
        5.5.Spark On Yarn集群配置
    6.业务实现   
        6.1.Flume采集agent
            6.1.1.配置采集agent的Source、Channel、Sink、sinkGroup
            6.1.2.采用负载均衡模式可达到高可用
        6.2.Flume聚合agent
            6.2.1.编写自定义拦截器区分业务类型
            6.2.2.配置聚合agent的Source、Channel、Sink
            6.2.3.配置写入kafka的生产者
            6.2.4.如何让日志均匀的分布到Kafka分区
        6.3.编写Spark-streaming程序
            6.3.1.根据需求创建hbase表、设计rowkey
            6.3.2.建立读取topic的DStream
            6.3.3.根据需求组合各种算子统计数据,如map/mapRoPair/filter/reduceByKey/groupByKey/sortByKey/transform
            6.3.4.将消费进度写入zookeeper以便监控消费情况
            6.3.5.写入hbase,如何防止hbase的连接数太多
            6.3.6.查看监控页面以查看作业执行情况
        6.4.Hbase 访问数据
            6.4.1.编写访问hbase的接口供实时访问
            6.4.2.根据rowKey查询、范围查询
            6.4.3.使用拦截器、如何防止全表扫描
        6.5.spark程序提交
            6.5.1.YARN程序简介
            6.5.2.提交作业的不同方式
            6.5.3.如何查看作业运行日志
            6.5.4.作业的容错性怎么保证
    7.项目总结   
        7.1.介绍实际生产环境的注意事项
        7.2.谈谈项目需要改进的地方
        7.3.各个项目中遇到的坑
企业级项目实战四:某大型传媒公司视频网站爬虫系统
    1.项目背景
        1.1.了解传统广电收视率项目背景
        1.2.用户数据有哪些价值点
        1.3.哪些机构掌握这些数据
        1.4.爬虫目标:互联网各大视频网站
    2.项目总体需求
        2.1.多维度统计:总播放指数、每日播放增量、评论数、收藏数、赞、踩
        2.2.数据可视化:节目收视排行榜、多维度指标趋势图
    3.难点分析
        3.1.网站采取反爬策略
        3.2.网站模板定期变动
        3.3.网站URL抓取失败
        3.4.网站频繁抓取IP被封
    4.系统架构设计
        4.1.总体架构解析
        4.2.数据流向
        4.3.功能模块划分
        4.4.各个模块详细解读
    5.技术选型
        5.1.数据采集层
        5.2.数据存储层
        5.3.数据处理层
        5.4.数据展示层
    6.部署方案
        6.1.爬虫项目:分布式集群
        6.2.爬虫定时项目:一台服务器
        6.3.爬虫项目监控:一台服务器
        6.4.爬虫可视化:多台服务器
        6.5.Hbase数据库:分布式集群
        6.6.Redis数据库:分布式集群
        6.7.Solr 全文检索:分布式集群
        6.8.Zookeeper 监控:分布式集群
        6.9.Solr 建立索引:一台服务器
        6.10.邮件提醒:一台服务器
    7.爬虫代码详尽实现
        7.1.下载、解析视频网站详情页面url,提取关键字段数据
        7.2.抽取视频网站解析规则模板,优化解析代码
        7.3.打通数据爬虫的下载、解析、存储流程
        7.4.采用Hbase存储爬虫数据,详解Hbase宽表和窄表设计以及爬虫项目表的详细设计,包含rowKey设计、列簇设计、历史版本
        7.5.解析视频网站所有分页url并优化解析实现类
        7.6.使用Queue队列存储视频网站所有url,实现视频网站url循环抓取
        7.7.采用高、低优先级队列循环抓取视频网站url
        7.8.采用Redis数据库实现url抓取优先级,并支持分布式爬虫
        7.9.采用多线程爬虫,加快爬虫效率
        7.10.定时启动爬虫项目
        7.11.完善爬虫项目、补充抓取关键字段数据
    8.全文检索
        8.1.Lucene.Solr.ElasticSearch简介
        8.2.全文检索过程:索引创建和搜索索引
        8.3.解决全文检索的核心问题
        8.4.Solr+Hbase组合提升检索效率
        8.5.Solr 配置详解
        8.6.Solr 安装部署
        8.7.Solr 建立索引
        8.8.Solr 检索视频网站数据
    9.数据可视化
        9.1.采用SpringMVC框架编写爬虫Web项目
        9.2.编写Hbase工具类查询Hbase数据
        9.3.编写Solr工具类检索爬虫数据
        9.4.采用Freemarker或者jsp展示页面
        9.5.采用Highcharts插件展示收视指数曲线图
        9.6.打通爬虫整个项目流程,实时查看收视排行榜以及收视指数曲线图
    项目优化一
        1.设置合理的抓取时间间隔,模拟正常用户访问,降低IP被封概率
        2.采用Redis 动态IP库,随机获取IP,随机抓取不同网站数据,降低同一IP对统一网站的访问频率
        3.实现分布式爬虫,提高爬虫效率
    项目优化二
        1.Ganglia.Zookeeper简介
        2.详解Zookeeper特性监控爬虫项目
        3.完善爬虫项目注册Zookeeper集群
        4.编写Watcher监视器监控爬虫项目生命周期
        5.集群监控的整体联调
    项目优化三
        1.监控器监控爬虫项目异常,异常数据插入数据库
        2.编写邮件Mail项目扫描爬虫项目异常信息,通知运维人员
        3.编写定时器定时执行Mail项目
企业级项目实战五: 某视频网站大数据平台离线计算项目
    1.项目背景:
        企业内部通常会有多个业务系统,数据也会分布在不同的数据库或不同的服务器上,那么这就形成了数据孤岛,比如有网站数据、手机客户端数据等,这样高层决策人员就不能从整体上观察数据,数据挖掘人员也不能利用多方面的数据进行用户画像、产品人员也不能查看本业务的全局数据来更好的了解产品的情况、市场人员也不能查看活动的整体效果来确定后续的销售方向等等。所以说企业通常会构建一个大数据平台,来满足企业各个部门对数据各种各样的需求。本项目就通过一个大数据平台离线计算的项目,使学员们从总体到细节了解大数据平台的方方面面。
    2.项目总体需求分析
        2.1.企业各个业务系统的数据及全公司的数据都要流入大数据平台
        2.2.数据尽量要实现统一化数据采集
        2.3.需要统一的调度系统
        2.4.需要满足各方人员数据临时查询需求但不能影响正常作业的计算
    3.项目难点分析
        3.1.企业数据大而且多种多样,比如有多个业务系统,每个业务系统有数据库数据和日志文件等,日志文件中又有tsv、csv文件以及nginx访问文件等;
        3.2.数据质量的保证,流水日志还好,从DB获取业务系统数据要有一定程度的完善才行,不然获取不到准确的增量数据
        3.3.计算资源控制是难点,一般来说一个大数据集群可以跑线上作业,还要满足测试人员或者产品人员的日常查询,那么如何要做好资源管理就很重要了
    4.解决问题的思路
        4.1.需求分析并找出实现难点
        4.2.设计每个难点的详细解决方案
        4.3.程序或者脚本编码
        4.4.项目测试
        4.5.项目部署
        4.6.项目交付
    5.项目技术难点攻克
        5.1.难点攻克一:数据采集
            1.1.每个业务系统都有自己的数据库,我们需要从数据库中获取全量或者增量数据,数据库表结构可能发生变化,比如删除字段或者调整了字段的顺序
            1.2.多个业务系统,每个业务系统会有多个日志机器,那么如何统一采集呢?
        5.2.难点攻克二:资源管理
            一般来说一个大数据集群可以跑多个线上作业,还要满足测试人员或者产品人员的日常查询,那么如何做好资源管理呢?
        5.3.难点攻克三:交互式查询
        产品人员、开发人员、测试人员要做临时查询,除了资源管理外还需要做到数据隐密性和安全性,那么如何做权限管理呢?
    6.解决方案设计
        6.1.技术选型:
            HDFS+MapReduce+YARN+Flume+Hive+Sqoop+Oozie+Hue+Mysql
        6.2.架构设计
            6.2.1.数据采集层
            6.2.2.数据存储层
            6.2.3.数据处理层
            6.2.4.数据集市层
    7.具体实现
        7.1.大数据平台构架设计
            7.1.1.总计构架设计
            7.1.2.数据采集规范制定
            7.1.3.数据处理层
            7.1.4.数据集市层
        7.2.Hadoop YARN高可用搭建
            7.2.1.YARN高可用配置
            7.2.2.基于队列的FIFO(先进先出)
            7.2.3.计算能力调度器Capacity Scheduler
            7.2.4.公平调度器Fair Scheduler
        7.3.MapReduce分布式计算模型
            7.3.1.mapreduce整体流程
            7.3.2.map数和reduce数如何确定
            7.3.3.二次排序
        7.4.Flume日志收集系统
            7.4.1.Flume拓扑结构
            7.4.2.Agent/source/channel/sink等组件的使用
        7.5.数据采集实战
            7.5.1.采集日志文件
            7.5.2.采集数据库数据
        7.6.MapReduce复杂日志格式代码实战
            7.6.1.拆分不同业务日志
            7.6.2.清洗复杂的日志数据
            7.6.3.按约定生成固定格式的数据
        7.7.Hive建模、HQL实战
            7.7.1.Hive环境部署及使用
            7.7.2.建立外部表、内部表、分区
            7.7.3.维度表建立
            7.7.4.数据处理表建立
            7.7.5.数据集市表建立
        7.8.作业调度系统Oozie实战
            编写脚本配置统一的作业调度
        7.9.sqoop导入mysql实战
            将hive的计算结果导入mysql
    8.项目总结
        8.1.大数据项目需要综合运用的各种技术
        8.2.介绍实际生产环境的注意事项
        8.3.谈谈项目需要改进的地方
        8.4.谈谈各个项目中遇到的坑及解决方法
企业级项目实战六: 某婚恋网站后台日志实时分析系统
    1.项目背景
        网站是个交友平台,每个用户的操作包含登陆、发信、收信、看信、删信以及推荐的用户展示记录等等;网站后台会记录每个用户的操作,这些操作日志被存储到Kafka。需要对发信、收信、读信和推荐用户数分时段(每半个小时)进行统计。
    2.设计目标
        2.1.功能目标:实时数据收集和数据计算
        2.2.性能目标:可用性、扩展性
    3.分析需求
        对网站的数据进行实时分析,统计出每半个小时内的用户收信、发信、看信、展示数据情况,展示的纬度包含地区、性别、算法、平台。方便对业务数据进行对比、改进、提升
    4.系统架构与模块设计
        4.1.整体架构
            4.1.1.构建Kafka集群
            4.1.2.构建Storm集群
            4.1.3.构建Mysql集群
            4.1.4.搭建Web服务器
        4.2.数据源
            数据源来自于社交网站,每个用户的登录、发信、收信、看信、删信
            以及推荐用户展示的记录等等
        4.3.数据存储与处理
            4.3.1.Kafka Spout 负责从kafka队列中提取日志;
            4.3.2.ParseAndFilter Bolt 负责从所有日志中提取出需要处理的日志(这里提取的日志类型是读信、发信和推荐日志)
            4.3.3.ExtractReadmsg Bolt 负责从读信日志中提取出时间、性别、平台、展位、用户类别、用户uid
            4.3.4.ExtractRecommendmsg Bolt 负责从推荐日志中提取出时间、性别、平台、展位、用户类别
            4.3.5.ExtractSendmsg Bolt 负责从发信日志中提取出时间、发信用户性别、平台、展位、发信用户类别、发信用户uid、收信用户类别、收信用户uid
            4.3.6.ExtractSendmsg Bolt 负责从发信日志中提取出时间、发信用户性别、平台、展位、发信用户类别、发信用户uid、收信用户类别、收信用户uid
            4.3.7.AnalysisReadmsg Bolt负责对提取出的读信信息进行统计,并存储到数据库
            4.3.8.AnalysisRecommendmsg Bolt负责对提取出的推荐信息进行统计,并存储到数据库
            4.3.9.AnalysisSendmsg Bolt负责对提取出的收信和发信信息进行统计,并存储到数据库
            4.3.10.StoreSignal Spout 每隔半个小时发送存储信号,当AnalysisReadmsg, AnalysisSendmsg和AnalysisRecommendmsg收到信号时,会将统计信息存储到数据库
    5.核心模块实现
        5.1.模拟数据实现
            通过python脚本,根据社交网站后台产生的真实数据格式,
            模拟产生用户的收、发信等数据
        5.2.日志采集和存储实现
            5.2.1.使用Kafka进行日志采集和数据存储,它是我们storm处理数据的来源
            5.2.2.使用Mysql存储处理后的数据,它是后续Web展示的数据来源
        5.3.数据处理实现
                5.3.1.storm读取kafka集群数据
                5.3.2.解析并过滤kafka集群数据
                5.3.3.提取不同业务数据
                5.3.4.统计分析业务数据
                5.3.5.数据结果入库
                5.3.6.发送定时信号,flush所有数据
                5.3.7.构建Storm项目Topology
                5.3.8.数据可视化
    6.项目部署上线
        6.1.上线大致流程
            6.1.1.申请机器
            6.1.2.搭建集群
            6.1.3.部署软件
            6.1.4.线下测试
            6.1.5.正式上线
        6.2.注意事项
            6.2.1.Java参数优化
            6.2.2.设置合理的worker数
        6.3.项目监控
            6.3.1.机器监控
            6.3.2.集群监控
            6.3.3.性能监控
企业级项目实战七:某移动大型电商网站数据分析系统
    1.总体需求分析
        1.1.项目背景
        1.2.项目价值
        1.3.项目需求
        1.4.项目难点分析
    2.数据采集实战
        2.1.数据采集流程概览
        2.2.埋点脚本执行
        2.3.数据收集脚本执行
        2.4.后端脚本之Lua语言详解
        2.5.后端脚本之OpenResty详解
        2.6.后端脚本解读
    3.架构设计和方案部署
        3.1.HDFS 设计前提和目标
        3.2.HDFS 适用场景
        3.3.HDFS异构层级存储结构
        3.4.HDFS数据压缩与IO
        3.5.数据接入
        3.6.Flume 数据收集
        3.7.同类产品介绍
        3.8.系统总体架构设计
        3.9.大数据集群整体部署方案
        3.10.日志收集与处理模块设计
        3.11.数据跨小时.跨天解决方案
        3.12.构建目标Web应用
    4.CDH5开发环境搭建
        4.1.数据前端埋点
        4.2.采集服务器部署
        4.3.实现采集服务器负载均衡
        4.4.部署HDFS集群环境(HA)
        4.5.部署数据管道(Flume)
        4.6.打通采集服务器到HDFS的管道
        4.7.Flume实现按小时/天滚动日志
        4.8.部署Yarn分布式集群(HA)
    5.分析模块实现
        5.1.MapReduce能够解决项目中的哪些问题
        5.2.MapReduce实现1-页面访问热度统计(pv、uv等)
        5.3.MapReduce实现2-电影评分数据分析(join)
        5.4.MR单元测试与集成测试
        5.5.Azkaban 实现作业的调度与运行
    6.系统总体联调和数据可视化
        6.1.Jmeter模拟访问产生用户日志
        6.2.系统总体联调
        6.3.Hadoop 性能调优
        6.4.数据可视化
        6.5.简历修改和面试指导
企业级项目实战八:某淘OpenTSDB时间序列分析项目
    1.结合企业应用介绍SAAS、PAAS、IAAS
    2.通过Ganglia熟悉SAAS产品
    3.OpenTSDB 项目需求介绍
    4.HBase 测试环境安装
    5.HBase 基础知识回顾
    6.HBase在各种场景如何保证区分新旧数据
    7.Hbase 访问方式
    8.Hbase 编程
    9.HBase数据接入
    10.HBase性能优化
    11.OpenTSDB 安装搭建
    12.SAAS产品的架构详细讲解
    13.OpenTSDB tcollector(自带的探针)采集数据
    14.用Tcollector来监控HBase或者Zookeeper
    15.Grafana来监控Flume
    16.Kafka 消息队列缓存数据
    17.数据接入
    18.写性能优化
    19.HBase 性能调优
    20.HBase在资源紧张时降低IO的手段
    21.HBase 冷热数据处理
    22.大数据系统维护方案

* 课程提供者:大讲台

老师还为你推荐了以下几门课程