|
|
2017年 共138讲 视频+素材+源码 本项目主要讲解了一套应用于互联网电商企业中,使用Java、Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为、页面跳转行为、购物行为、广告点击行为等)进行复杂的分析。用统计分析出来的数据,辅助公司中的PM(产品经理)、数据分析师以及管理人员分析现有产品的情况,并根据用户行为分析结果持续改进产品的设计,以及调整公司的战略和业务。最终达到用大数据技术来帮助提升公司的业绩、营业额以及市场占有率的目标。
3 a1 f) Z. T) H" C& M# D; Y8 C, b. P( f% J! U
2 k8 W# ^. i5 y( b( |! |& T9 }: K( n# N7 e8 s" E1.课程研发环境' ~/ z" r+ w8 u7 E* c& G$ g" I2 m5 W
. X+ u0 o0 e6 H9 W9 N开发工具: Eclipse
/ z+ U" t3 }3 n* K# Y# A8 s7 p1 V+ a4 K3 S# L2 cLinux:CentOS 6.40 @# R9 ]. I# s" T, I# P8 j+ v8 \% W. i5 [
Spark: 1.5.16 t+ l* L% h; Q& E0 S9 h- Z1 X; m( q* _, c6 d0 S# u: ~# W9 J$ C6 B. K
Hadoop: hadoop-2.5.0-cdh5.3.6# }8 T' U7 u2 \8 e/ Z& T3 _
/ C1 P2 p' o: i* SHive: hive-0.13.1-cdh5.3.6 j+ C/ }5 c" H% H6 o7 u) N# N9 I$ p; f! U# M' _
ZooKeeper: zookeeper-3.4.5-cdh5.3.61 K, B' k, v0 ~' `
- U" S. I% t0 a; t& ~5 w1 PKafka: 2.9.2-0.8.1 8 x: N& [7 v8 U. e' v) N# p7 `+ x B- ?6 F' Q6 S- D1 e5 i! N% c r
其他工具:flume-ng-1.5.0-cdh5.3.6、SecureCRT、WinSCP、VirtualBox等
4 E9 D/ a" t% _" A# f( ?$ f9 B/ y. h4 @) s, D- V2 K- H I& ]- k& _( Q- h3 J( n% C; J' ]" P% T) A# h
, i$ N2 t. L+ u x% C& D
! X5 d( U( U/ Z: p4 h1 b2.内容简介6 N+ N8 C+ I, t; z% p0 w
* g' p- w0 T7 L% m3 v# ~- E项目主要采用目前大数据领域流行、热门的技术——Spark,具有普通项目无法比拟的技术前瞻性与尖端性。本项目使用了Spark技术生态栈中常用的三个技术框架,Spark Core、Spark SQL和Spark Streaming,进行离线计算和实时计算业务模块的开发。实现了包括用户访问session分析、页面单跳转化率统计、热门商品离线统计、广告点击流量实时统计4个业务模块。0 S" H l# f% B, x% J, V7 V. Q
: ^2 r# J( P: \/ ]! m项目中所有的业务功能模块都是直接从实际企业项目中抽取出来的,业务复杂度绝对没有任何缩水,只是为了更好的贴近大数据实战课程的需要,进行了一定程度上的技术整合和业务整合。该项目的真实性、业务复杂性以及实战型,绝对不是市面上现有的仅几个课时的Demo级的大数据项目可以比拟的。; ]( v9 _- ]- f0 v0 E" g7 l
" y2 }7 `. J0 }/ f* t$ Z; Q7 J; n+ O1 o3 X7 ]4 X0 d0 I0 H
. i& F# B4 m' x/ N* F通过合理的将实际业务模块进行技术整合与改造,该项目完全涵盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架中几乎所有的功能点、知识点以及性能优化点。仅一个项目,即可全面掌握Spark技术在实际项目中如何实现各种类型的业务需求!在项目中,重点讲解了实际企业项目中积累下来的宝贵的性能调优、troubleshooting以及数据倾斜解决方案等知识和技术,是任何其他视频课程以及书本中都没有包含的珍贵经验积累!同时以企业级大数据项目开发流程贯穿每个业务模块的讲解,涵盖了项目开发全流程,包括需求分析、方案设计、数据设计、编码实现、测试以及性能调优等环节,全面还原真实大数据项目的开发流程。该项目的整体商业价值绝对在百万元以上!8 S- {) `# P1 f7 P; Z3 Z
! {& s7 P. C& _! s3 M5 |- V9 `# U
( ?; `/ @' L2 L2 M* ]学习完本课程之后,可以大幅度提升学员的Spark技术能力、实战开发能力、项目经验、性能调优和troubleshooting经验。如果学员已经学习过《Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)》课程,再学习完本课程,则完全可以达到2~3年左右Spark大数据开发经验的水平,正式迈入Spark高级开发工程师的行列!在跳槽或者面试的时候,精湛的Spark技术以及复杂的Spark大数据项目的经验,足以让你应付国内任何公司的面试(包括BAT等顶级互联网公司的面试难度),从而让学员通过学习掌握自己的人生!- t- z. t! \' a+ Q% H; L
+ g0 B9 o! q9 ?% C8 d5 }! P5 e- q/ N8 W7 G& ?( _! q
+ R3 z; O% u! a! y) s% x- }# k在此特别强调,本课程的学习要求有Java基础、Hadoop基础,如果学员没有相关基础,请先自学相关知识。本课程要求学员有扎实的Spark技术基础,如果没有,则推荐学习北风网的《Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)》课程。% T; o. @/ F# j. @6 ]& A! r# b
0 t0 U J; Q( v备注一:关于《Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)》与本套课程的关系,如果学习了第一套Spark技术课程,那么在融会贯通的情况下,可以达到1~2年Spark开发经验的水平;如果在学习完第一套Spark课程,同时学习完第二套Spark项目课程,并且融会贯通的情况下,那么可以达到2~3年的Spark开发经验的水平,成为Spark高级/资深开发工程师。1 E5 ]8 [" V2 X: j4 T9 x8 B( G2 A8 q( A. ~3 j8 a
8 V* O, S! B4 `
- A/ c+ t0 j9 e' H7 X备注二:考虑到学员不统一的技术基础,因此本项目仅仅要求J2SE基础,也就是Java基础编程即可,不要求J2EE,而且也不使用任何Java框架,不涉及与第三方技术整合。主要就是为了降低课程的学习门槛。本课程不会讲解J2EE层的开发,只是讲解Spark如何与J2EE结合使用,组成交互式大数据平台的架构。因此唯一的要求仅仅是Java编程基础以及Spark扎实的技术即可学习课程。, e7 {9 L C! `3 X* f) a# ]- \/ e' G; n: ^
* f) ?& t7 ?- p! O. N% L8 n
! u3 }# \. t) d* g; o3 b备注三:关于课程开发语言的选择,本套课程选择使用Java,而不是Scala,作为编程语言;原因主要是因为在开发大型、复杂的大数据业务系统或平台时,Java的优势是Scala所不可比拟的;在真正大型复杂的项目中,可能Spark需要管理大量的组件,此时可能需要用Spring框架;可能需要执行复杂的数据库操作,此时需要ORM类框架,比如MyBatis;可能需要与Redis、Kafka、ZooKeeper整合使用,此时需要使用Java Client API;以上需求都是Scala满足不了的。使用Scala很可能会导致项目的多语言混编,造成可维护性和可扩展性大幅度降低。(注意,本套项目课程为了降低学习难度,并且聚焦在Spark上,没有使用以上任何技术,只是用纯粹的Java基础编程与Spark技术;但是这并不意味着你在真正的工作中不会碰到上述的情况)' L; f0 I5 A$ s
2 M. L, y$ z0 _. ^! ~0 e2 w; Z! u* e, ]; ^ {- C: H9 H8 E+ Y5 p* S0 C5 Q N, O) J: |! c1 R1 e
% ~" t5 M% L% |9 F- x2 E7 k
7 |( k5 K- `/ v1 P: p本课程的最大特色包括:
) G& R0 ~; n! @; k9 K% e8 n( e6 G+ j1、高端大数据项目:市面上目前完全没有任何高端的大数据项目实战类课程,更没有Spark大数据项目实战类课程,本课程是企业级大型Spark大数据实战项目课程!$ G$ m5 W: Q" W0 i
; ~4 m7 m* f# ?$ P) _0 Y. I. [# b& T! J7 |! r; [0 a. ~ G: J0 o
2、企业级大数据项目的架构搭建:配置管理组件、JDBC辅助组件(内置数据库连接池)、Domain与DAO模型等等,完全正规的大型大数据项目架构!, W# z- r$ t! i. P! L# e0 g
" d9 B' M* U' s* g, R! v8 Z/ @! O% U6 p/ e0 L4 Q+ C2 w+ W2 o1 j2 P- m( R2 n) s; w I) I, R
3、交互式大数据分析平台架构:本项目的原型不是普通的定时调度离线统计任务的大数据项目;而是Spark与J2EE系统结合构成的交互式大数据分析平台,项目中的Spark开发都是按该架构来讲解的!
. {1 _2 U% q; K C7 C2 X% f$ e* k! L& m2 \7 v- V0 e/ V
% c! d* R8 F. j3 l; h1 A% Z* Q8 d8 j3 V) d5 k* Z4、真实还原完整的企业级大数据项目开发流程:项目中采用完全还原企业大数据项目开发场景的方式来讲解,每一个业务模块的讲解都包括了数据分析、需求分析、方案设计、数据库设计、编码实现、功能测试、性能调优、troubleshooting与解决数据倾斜(后期运维)等环节,真实还原企业级大数据项目开发场景。让学员掌握真实大数据项目的开发流程和经验!3 Z5 r+ z! c+ `' u2 G; q: x0 U. B( r, u6 D! W
% B( k- V+ ^- F1 N/ T9 V- b5 E. A4 E3 H5、技术点覆盖广:一套项目课程,全面涵盖了至少90%以上的Spark Core、Spark SQL和Spark Streaming的几乎所有的初、中、高级技术点;通过本项目课程的学习,可以全面锻炼了学员的Spark大数据项目实战能力,将技术与项目融会贯通,彻底精通Spark实战开发!9 j r' c7 i- e5 d$ q# L2 b0 m% p$ q- _! U& F" ~7 `8 ]8 U' v
2 @+ D. q9 Q3 p& R3 M3 |$ }4 g6 I" f0 A
6、真实的性能调优方案与troubleshooting经验:项目中通过实际的功能模块和业务场景,以及讲师曾经开发过的处理十亿、甚至百亿以上数据级别的Spark作业的经验积累,贯穿讲解了大量的高级复杂的性能调优技术和知识、troubleshooting解决线上报错和故障的经验。真正帮助学员掌握企业实际项目中使用的高精尖Spark技术!, |- ]" A7 t# Y( `- e+ d% B% _: I, @- }/ c% M
& I u1 J9 M/ |5 o/ V& W" a$ a$ `8 x7、高端的数据倾斜解决方案:本课程讲解了高端而且宝贵的,大量实际项目中积累的——数据倾斜全套解决方案!包括数据倾斜问题的判断、诊断与定位,以及一整套7种针对各种不同类型数据倾斜的解决方案,彻底帮助学员解决企业项目中最棘手的数据倾斜问题,称为企业中最核心的技术人才!
. V( p( F8 ] K; V8 s, e& x; i; J8 j0 x _# F7 ]: A& Q# [; T/ n1 o& Z1 X! h
W" g% P S' p/ Y6 ?9 D4 P8、业务功能极其复杂:项目中的四个功能模块,全部是实际企业项目中提取出来的,并进行技术整合和改良过的功能模块,包含了比实际项目中更多、更全面的技术点。所有模块的需求,全部是企业级的复杂和真实的需求,业务模块非常之复杂,绝对不是市面上的Demo级别的大数据项目能够想比拟的。学习过后,真正帮助学员增加实际企业级项目的实战经验!8 q, [; V% S/ u6 w( T$ e; h% a
$ K: ?1 S2 h' M; G$ I: V1 O9 U1 ^; j) |
7 f* L& R! U+ S" T( c# L9、大量高端技术:自定义Accumulator、按时间比例随机抽取算法、二次排序、分组取topN、页面切片生成以及页面流匹配算法、Hive与MySQL异构数据源、RDD转换为DataFrame、注册和使用临时表、自定义UDAF聚合函数(group_concat_distinct)、自定义get_json_object等普通函数、Spark SQL的高级内置函数(if与case when等)、开窗函数(ROW_NUMBER)、动态黑名单机制、transform、updateStateByKey、transform与Spark SQL整合、window滑动窗口、高性能写数据库,等等。# w& u; m' Q2 d' ?" |- Q: j1 z6 v: o" r! b2 h" ~
! e1 A6 \( b( W1 m( O5 i, C' r
10、行业经验穿插介绍:贯穿了大量讲师在大数据行业内的从业经验以及所见所闻,帮助学员丰富行业阅历。 |; I4 f& q) |5 m3 R9 p! z
; A! y# T/ {1 t% G
3 _6 x5 V& Z1 N4 a6 m) N m3 z: j. f& A11、高端源代码:赠送完整spark大型大数据项目的商业级别的源代码,价值上百万;稍加改造,二次开发,甚至可以直接用于你的企业的大数据行为分析。# L6 X, E+ [1 x, V2 | o6 |. w
) b* ~# X. T& `/ A7 c" h( c( w6 n* p% O2 ~& D5 U% t9 ?! ~/ x9 f* y- @* h R& R7 P, B
12、现场Excel手工画图与写笔记:所有复杂业务流程、架构原理、Spark技术原理、业务需求分析、技术实现方案等知识的讲解,采用Excel画图或者写详细比较的方式进行讲解与分析,细致入微、形象地透彻剖析理论知识,帮助学员更好的理解、记忆与复习巩固。4 v4 n7 N* P9 h* C& Z
6 t% }2 M$ L) y! H' B ^" J. T3 D+ ^' \' [ X! h% f4 n% G# q3 @
Spark 2.0实战升级!$ p ^6 y% `8 V6 k3 m1 h' G- l
$ k# m7 B3 ]" g. V& |; q本次课程升级,主要是为了保证课程跟上Spark的最新技术发展趋势。目前Spark已经发展到2.0版本,未来Spark的主要开发接口将以Dataset API为主,原先的RDD API将作为底层API退居二线。但是这并不意味着之前的内容就过时了,实际上对于一些性能要求和稳定性要求极高,需要工程师对Spark进行最底层把控的时候,Spark官方也是建议,还是应该使用RDD API的,因为可以对所有的底层参数进行深度的把控,同时系统报错的时候,可以直接定位最原始的源码进行问题排查和修复。Dataset API会作为一种更加高层次的、易用的API,来在合适的场景下,提高我们的开发效率。但是Dataset API的缺点在于其被高度封装,底层会自动生成大量代码和优化,导致我们几乎无法对其进行太多的优化,出现问题时非常难以排查。因此Spark 2.0,并不意味着任何已有的技术淘汰,也不意味着任何新的技术是万能的,需要我们灵活根据业务场景选择对应的技术。
) `% d" z t# d. F1 V6 Z6 ?7 L- ]0 T! K9 d" b7 p& v$ Q9 t
$ [7 Y: `: ^4 n4 D0 Y( o* ~/ R% Z& Z# s8 y, Z/ |9 `本次课程赠送了《Spark 2.0从入门到精通》课程的部分内容,主要是照顾到没有购买过《Spark 2.0从入门到精通》的同学,可以初步地了解Spark 2.0的新特性以及核心思想。此外,最重要的是增加了基于Spark Dataset 2.0开发的一个功能模块:用户活跃度分析模块。该模块可以让产品经理或运营人员了解到企业在各种条件和场景下,最活跃的那些用户是哪些,并进一步分析他们的访问行为轨迹,进而为自己优化产品设计,或者调整运营策略,提供数据上的决策依据。该模块基本涵盖了Spark Dataset 2.0的核心功能和API,掌握该模块的开发,基本上运用Spark Dataset进行项目开发,问题就不大了。* m% i: ?' \8 ^8 q. _9 \
, D; w8 j% ~: @( e1 B) D1 w
) l8 N4 d" r! H z1 d- B& [3 q! \' \8 |! x此外,本次课程全部使用纯Scala语言进行项目开发,也是对本套课程的一个有力的弥补。" y# E# o9 v8 ? U4 X
' D5 b2 H D e; W- ]/ a* V" x
0 E. b" M$ a, W0 L( w$ v/ P) ?- {( A* @% ]# y$ w- q1 [) Q# y: |
+ [# [ H. e+ C9 H4 }) R2 O t) { m! L( p6 f
' B8 ^/ R- M) a6 j( h3 `中华石杉: 在国内BAT公司以及一线互联网公司从事过大数据开发和架构工作,负责过多个大型大数据系统的架构和开发。精通Hadoop、Storm、Spark等大数据技术。有丰富的企业内部技术分享、技术培训和技术讲座的 |
|