在这里将某项目学习笔记整理分享给大家
课程介绍
本套课程主要讲解一个真实、复杂的大型企业级大数据项目。是Spark的大型项目实战课程。通过本套课程的学习,学员可以积累大量的Spark项目经验。在学员本身Spark技术就很好的情况下,学习完本套课程之后,可以达到有2年Spark大数据开发经验的水平。
本课程可以正式让学员迈入Spark高级开发工程师的行列!在跳槽或者面试的时候,精湛的Spark技术以及复杂的Spark大数据项目的经验,足以让你应付国内任何公司的面试(包括BAT等顶级互联网公司的面试难度),从而让学员通过学习掌握自己的人生!
特别声明的是,本套课程的学习,是需要Java、Hadoop和Spark基础的。如果没有相关基础的同学,需要自己先自学相关的基础知识。在课程中,对于一些Java的高级知识点,也会加以讲解,但是学员还是必须有Java编程的基础。
项目介绍
本项目主要用于互联网电商企业中,使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为、购物行为、广告点击行为等)进行复杂的分析。用统计分析出来的数据,辅助公司中的PM(产品经理)、数据分析师以及管理人员分析现有产品的情况,并根据用户行为分析结果持续改进产品的设计,以及调整公司的战略和业务。最终达到用大数据技术来帮助提升公司的业绩、营业额以及市场占有率的目标。
项目主要采用目前大数据领域最流行、最热门的技术——Spark,具有普通项目无法比拟的技术前瞻性与尖端性。本项目使用了Spark技术生态栈中最常用的三个技术框架,Spark Core、Spark SQL和Spark Streaming,进行离线计算和实时计算业务模块的开发。实现了包括用户访问session分析、页面单跳转化率统计、热门商品离线统计、广告流量实时统计4个业务模块。
项目中所有的业务功能模块都是直接从实际企业项目中抽取出来的,业务复杂度绝对没有任何缩水,只是为了更好的贴近大数据实战课程的需要,进行了一定程度上的技术整合和业务整合。该项目的真实性、业务复杂性以及实战型,绝对不是市面上现有的仅几个课时的Demo级的大数据项目可以比拟的。
通过合理的将实际业务模块进行技术整合与改造,该项目完全涵盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架中,几乎所有的功能点、知识点以及性能优化点,仅一个项目,即可全面掌握Spark技术在实际项目中如何实现各种类型的业务需求!在项目中,重点讲解了实际企业项目中积累下来的宝贵的性能调优、troubleshooting以及数据倾斜等知识和技术,几乎所有知识和技术都是全网唯一,是任何其他视频课程以及书本中都没有包含的珍贵经验积累!同时以企业级大数据项目开发流程贯穿每个业务模块的讲解,涵盖了项目开发全流程,包括需求分析、方案设计、数据设计、编码实现、测试以及性能调优等环节,全面还原真实大数据项目的开发流程。该项目的整体商业价值绝对在百万元以上!
课程特色
1、市面上目前完全没有任何高端的大数据项目实战类课程,更没有Spark大数据项目实战类课程,本课程是全网唯一的企业级大型Spark大数据实战项目课程!
2、项目中全面覆盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架几乎全部的初级和高级的技术点和知识点。真正让学员学以致用,通过一套课程,即掌握如何将Spark所有的技术点和知识点应用在真实的项目中,来实现业务需求!
3、项目中的4个功能模块,全部是实际企业项目中提取出来的,并进行技术整合和改良过的功能模块。全部是企业级的复杂和真实的需求,业务模块非常之复杂,绝对不是市面上的Demo级别的大数据项目能够想比拟的。学习过后,真正帮助学员增加实际企业级项目的实战经验!
4、项目中通过实际的功能模块和业务场景,以及讲师曾经开发过的处理十亿、甚至百亿以上数据级别的Spark作业的经验积累,贯穿讲解了大量的高级复杂的性能调优技术和知识、troubleshooting解决线上报错和故障的经验、高端的全方位数据倾斜处理和解决方案。真正帮助学员掌握高精尖的Spark技术!
5、项目中采用完全还原企业大数据项目开发场景的方式来讲解,每一个业务模块的讲解都包括了需求分析、方案设计、数据设计、编码实现、功能测试、性能调优等环节,真实还原企业级大数据项目开发场景。让学员掌握真实大数据项目的开发流程和经验!
模块简介
1,用户session分析:
该模块主要是对用户访问session进行统计分析,包括session的聚合指标计算、按时间比例随机抽取session、获取每天点击、下单和购买排名前10的品类、并获取top10品类的点击量排名前10的session。该模块可以让产品经理、数据分析师以及企业管理层形象地看到各种条件下的具体用户行为以及统计指标,从而对公司的产品设计以及业务发展战略做出调整。主要使用Spark Core实现。
2,页面单跳转化率统计:
该模块主要是计算关键页面之间的单步跳转转化率,涉及到页面切片算法以及页面流匹配算法。该模块可以让产品经理、数据分析师以及企业管理层看到各个关键页面之间的转化率,从而对网页布局,进行更好的优化设计。主要使用Spark Core实现。
3,热门商品离线统计:
该模块主要实现每天统计出各个区域的top3热门商品。然后使用Oozie进行离线统计任务的定时调度;使用Zeppeline进行数据可视化的报表展示。该模块可以让企业管理层看到公司售卖的商品的整体情况,从而对公司的商品相关的战略进行调整。主要使用Spark SQL实现。
4,广告流量实时通知:
该模块负责实时统计公司的广告流量,包括广告展现流量和广告点击流量。实现动态黑名单机制,以及黑名单过滤;实现滑动窗口内的各城市的广告展现流量和广告点击流量的统计;实现每个区域每个广告的点击流量实时统计;实现每个区域top3点击量的广告的统计。主要使用Spark Streaming实现。
环境介绍
1,centos 6.4
2,cdh 5.3.6
3,spark 1.5.1
4,zookeeper 3.4.5
5, Kafka
6,flume
7,java、scala
8、eclipse
java与scala的选择说明
本课程的编码实现采用Java。
1、因为Java语言具有高度的稳定性,语法简洁,更容易理解。
2、最重要的一点是,Java并不只是一门编程语言,而是一个生态体系!使用Java开发复杂的大型Spark工程项目,可以让Spark与Redis、Memcaced、Kafka、Solr、MongoDB、HBase、MySQL等第三方技术进行整合使用,因为Java就是一个生态系统,这些第三方的技术无一例外,全部都会包含了Java的API,可以无缝与Spark项目进行整合使用。
3、Java是目前最主流的语言,绝大多数公司里都有一批Java工程师。使用Java开发Spark工程,在项目进行交接、迁移、维护、新人加入时,只要懂得Java的人,都能快速接手和上手Spark开发和项目。更利于项目的交接与维护。
对于Scala,本课程仅仅会在部分重要技术点的使用,比如自定义Accumulator、二次排序等,用Scala辅助讲解一下如何实现。
1、因为Scala的高级语法复杂,学习曲线非常陡峭,不利于学习,容易造成迷惑。
2、因为Scala仅仅只是一门编程语言,而没有达到技术生态的程度。当Spark要与第三方技术,比如Redis、HBase等配合使用时,就只能混合使用Java。此时就会造成一个项目两种语言混编,可维护性与可扩展性大幅度降低。
3、Scala目前远远没有达到普及的程度,会的人很少,在进行项目交接时,如果是Scala的项目,交接过程会很痛苦,甚至导致项目出现问题。
本人正在学习大数据,将学习的相关知识整理成笔记分享给大家,行百里者,半九十,现在我的计划是这样先简略的把这套项目过一遍,坚持每天发一篇,之后再进行回顾整理,将相关代码进行发布,由于时间仓促,有些章节暂时列个提纲,或者直接截图,整套项目有了一个大的框架之后,我再进行相关知识点的补充,如果您看到有误的知识点或希望早点看到完善的笔记,可以给我留言,我会尽快完善相关章节。本人正在找有关java web 和 大数据的相关工作,坐标北京,如果您的公司正好缺个小弟,欢迎留言或发简信骚扰。
网友评论