周末班课程大纲

时间:2018-07-16 08:46:47



适合人群:

1.拥有一定编程编程基础

2.在职,想转行从事大数据开发的人群。


Java部分

--------------------

[基础部分]

Java核心内容,包含多线程、网络编程、反射、内省、设计模式等。


[高级部分]

二进制按位运算方式与底层存储结构以及在java关键字修饰符与os中资源隔离的应用技巧,使用Serialize手段实现java对象图的深度复制、版本ID在串行和反串行中的缺失与影响控制实体是否参与持久化进程。


java 字符类型的存储与转换处理以及采用unicode码方式全量字符输出。多种字符的混排与读取处理。使用原生二进制流与自定义协议实现hadoop的文件归档处理。


java集合框架中hash算法的原理剖析与具体实现以及大数据场景下各个应用场景介绍

java集合框架百万数据插入时链表与数组列表对不同的插入方式的量化性能分析与技巧处理

hash容器中的分桶策略与计算法则

hash算法对hashMap集合的对(N-1)/N 数据检索的高性能影响

hashMap的扩容算法原理与技术实现


JVM内存结构划分,堆内空间、非堆空间以及离堆内存控制与回收,对内空间中的伊甸区、幸存区以及老年代分区划分与调整。JVM堆溢出、栈溢出、永久区溢出的控制手段与注意事项。


多线程并发控制中竞态条件处理、极端条件下的小概率事件线程死锁再现与应对机制。

贪婪模式下生产消费关系的技术处理、线程状态机变换图以及触发条件

NIO中selector模型工作原理、通道模型同堆缓冲区和离堆缓冲区的组合应用

离堆缓冲区的垃圾回收控制与处理、

使用虚拟内存映射技术实现磁盘文件的高并发、高吞吐量的控制访问。

缓冲区的内部结构与编程技巧,切片、压缩、回绕、定格、标号等操作的应用场景介绍


单例模式下的性能与安全控制解析、并发环境下安全问题处理

Proxy与ThreadLocal技术模拟实现事务的AOP横切式管理

UDP协议实现的屏广通信与实时监控、UDP数据包的拆解与拼装以及无序状态下的顺序保证

Socket实现IM通信时,传输报文的设计、拆解与组装,java中实现爬虫程序以及反扒的原理与技术实现


mysql中个事务隔离级别的实现原理与数据安全与性能权衡应对关系

RDBMS中mvcc策略与隔离级别的实现关系

悲观锁、乐观锁、独占写锁、独占读锁、共享读锁、行级锁、表级锁的实现原理与应用场景说明


java并发库下线程池的实现原理与线程池状态的单数字化控制原理实现手段

几种常见线程池优缺点比较与应用场景介绍


装饰模式、池化模式、单例模式、工厂模式组合实现数据源


[linux]部分

[基础]

Linux的介绍,Linux的安装,Linux的常用命令,nano编辑器:nano编辑器的介绍、nano扥使用和常用快捷键,Linux用户和组账户管理:用户的管理、组管理,Linux系统文件权限管理,Centos软件包管理器Yum命令,源修改,Linux网络管理,Linux系统进程管理常用命令,Shell编程等


[高级]

使用taskset和cgroup分别实现资源隔离

采用hadoop的脚本实现原理编写脚本实现命令的集群化操作与文件的全分发脚本

centos7下桌面安装后导致的file system readonly问题的解决处理办法

X11与putty组合实现centos7虚拟机模式下client机App在host机上的窗口融合配置以及python的大数据分析处理

google protolbuf

-----------------

google的protobuf串行化协议与avro穿习惯化系统的原理及技术实现

java串行化、protobuf与avro串行技术的性能评测

hadoop中protobuf的应用场景与源代码跟踪


开发环境

------------------

引入Intellij IDEA开发工具,IDE的全eclipse主题与UI调整。

对maven和scala的超强支持,分分钟碾压eclipse。

快速掌握IDEA下的JavaWeb、scala、python等编程技巧。


Hadoop部分

-----------------

[基础部分]

Hadoop介绍和环境搭建,常规的操作和MR详解,Hadoop集群管理和高可用-HA等


[高级部分]

hdfs数据报写入过程剖析原理实现、Packet计算法则与配置实现、chunk的大小界定与优化原则

Packet内缓冲区数据结构分析与头报文设计原理

lz4、lzo、snappy等压缩编解码器的编程应用与压缩性能评测

名称节点的镜像文件和编辑日志等元数据的查看与结构分析

镜像文件的融合处理和融合条件

YARN调度框架中基于事件状态机的二次分发原理剖析

数据倾斜的产生的原因以及三种解决方案

自定义接口实现MR编程模型的rdbms数据访问与数据和hdfs的导入导出实现,模拟类sqoop实现

多个数据集之间的join操作的map实现和reduce实现以及他们的优缺点

Hadoop的QJM方式下HA工作原理与配置实现,Hadoop与zookeeper结合实现自动fail over与容灾演示。

Resoucemanager的HA原理与配置实现

Hadoop的HA配置模式下对大数据生态圈中各项目的整合处理方式

使用UML时序图对hadoop的Mapreduce job提交流程进行源码跟踪解析

Hadoop的参数调优处理,包括block设置,block最小值设置、packet设置、chunk设置。

使用黑白名单控制手段完成hadoop生产环境下的节点上下线操作流程与规范

hadoop 镜像文件和编辑日志二进制文件的oiv,oev检查元数据。

hadoop生产环境下的编辑日志的手动滚动、空间保存、元数据存储、配额管理、快照管理、回收周期设定等主要的运维任务处理

hadoop集群的健康检查与再平衡处理


Hive

-------------

[基础部分]

Hive的介绍和使用场景以及各种开发应用。

[高级部分]

通过jdbc协议与thrift服务器远程通信,实现远程分布式查询处理

使用动态分区表

桶表 + orc存储结构实现行级acid事务处理

Hive元数据库外部化存储与底层数据库结构分析

EXPLAIN 与 ANALYZE组合进行hive调优分析处理

6中压缩算法的运行配置与性能评测

数据本地化与JVM重用调优处理

Map端连接、半连接、倾斜连接的优化处理

UDF、UDAF原理与自定义实现


Intellij IDEA

---------------

引入IDEA开发环境


zookeeper

-----------------

[基础部分]

zk的介绍和使用场景以及各种开发应用。

[高级部分]

zk在大型企业中的应用场景


hbase

------------

[基础部分]

Hbase的介绍和使用场景以及各种开发应用。

[高级部分]

Hbase底层文件存储机制的源代码解析

三级坐标定位于版本化技术手段的实现

FlushBuffer+WAL+BatchSize组合实现大批量数据

使用bulkload实现hbase巨量数据快速移植

Hbase表预切割、运行时切割、手动融合技术实现hbase集群的负载平衡和高吞吐量处理

编程实现HRegionServer的在cluster上的自动移动处理

多Filter组合实现类RDBMS的复杂检索需求

使用Random、Hash等算法实现RowKey的多种盐析手段避免数据热点问题

自定义协处理器实现put操作的对偶处理以及二级索引数据实现

使用Java实现爬虫程序将数据存在hbase中。


Spark

-----------

[基础部分]

spark的介绍和使用场景以及各种开发应用。

[高级部分]

SparkRDD源代码解读、重点轻量级RDD和重量级RDD的本质与区别

SparkContext启动时三级调度框架依存关系与源代码分析

DAGSchduler工作原理与TaskScheduler交互过程

Spark后天调度器的作用、实现原理与时序图分析

Spark底层最小执行单元Task的串行化处理

Spark Stage边界的划分法则和技巧

依赖的判断方式与方法,窄依赖和shuffle依赖(注意没有宽依赖)

独创分布式环境下Netcat便捷跟踪调试技术深入理解Spark worker见协作流程

深入Spark底层探查Netty在RPC远程通信过程的技术实现和通信架构

Spark"毒药"设计模型在消息队列中的应用

Spark local、standard、yarn集群部署模式区别于应用场景

Spark App部署模式的区别与应用场景以及在同Spark集群部署模式的组合应用


Spark缓存、持久化、持久化个级别控制等源代码分析与应用场景

Spark Stream的windows化操作实现原理

Spark Stream技术实现准实时社会舆情监督

Spark job提交流程UML 时序图分析


【项目一】电信级海量通话记录大数据系统改造

前端数据是交换机上下来的数据写入到本地日志文件中,主要包含通话信息记录,内容涉及到主叫、被叫、时长、通话时间、主叫所在地区、被叫所在地区等等。


本地的日志文件通过flume实时收集数据到hbase。


由于通话日志中只有主叫信息,该系统采用协处理实现被叫通话记录的同步插入并使用极少的冗余数据实现类二级索引,并对Get请求进行重写设计,实现主被叫查询时,服务器端回传相同的通话详情,对客户端实现透明化处理。


为避免hbase系统中设计的重灾区,即热点问题,系统采用主叫方特征数据与通话时间特征数据的hash计算后对rowkey进行加盐处理,可实现系统的高吞吐量查询和负载均衡处理。


本系统在hadoop的hdfs和Yarn层面以及hbase均采用外部化ZooKeeper集群实现统一的HA管理,可轻松解决系统的容灾问题。其中Hadoop的HDFS的HA集群采用更加流行而且成熟的基于QJM的架构方案处理。


本系统可对公检法系统提供接口,集合手机号码绑定身份信息,快速可疑人员进行定位和跟踪。


【项目二】电信级海量通话详单存储与查新系统

hadoop+hbase+flume+zookeeper实现电信级海量通话日志数据的存储,随机访问与实时读写。通过hash技术对rowkey进行盐析处理,解决hbase的热点问题,协同coprocessor,解决系统的高吞吐量和查询负载问题以及如何避免中间结果导致通知风暴或死递归问题,让同学们体验到大数据技术在企业中实战应用。


1.整体架构分析

hadoop体系架构与ha配置方案。hbase体系架构与ha配置方案flume实时收集架构方案。SSM实现前端web实现以及与后端HBase的交互架构方案。hive+oozie实现的周期任务调度。Spark streaming实现窗口化敏感词实时监控方案。


2.hbase中callLogs表的设计与实现。

通话信息的内容分析与常用场景分析以及对rowkey的设计与实现。重点讲解盐析的原理与热点问题的解决。rowkey的设计原则与实战中的技巧。


3.协处理原理与应用实战讲解。

被叫通话记录的设计思想讲解,以及通过协处理器方式实现callog日志主叫记录,被主换位与同步写入。在callog是表中数据的存储序列与双向查询方方式的一致性透明结果处理。


4.Hadoop以及HBase的HA集群配置与实战。

hadoop的使用QJM的高可用架构配置讲解,ResourceManager的高可用架构配置讲解。zookeeper的工作原理以及配置、实操演练,hbase与Hadoop HA集成注意事项以及客户端API编程细节处理。



【项目三】电商大数据


战略合作伙伴