目录
大数据Spark企业级项目实战(实战sparksql和kafka的流数据处理应用)
在2014年以后,大数据领域内掀起了一股强劲的Apache Spark学习和应用的浪潮。Apache Spark以内存计算为核心,以其通用,快速和完整的生态圈等特点,正在逐步取代速度较慢的hadoop,越来越多的应用在了企业中。ADHOC SQL查询,流计算,数据挖掘,图计算,R语言,一个又一个功能强大的组件使得越来越多的spark爱好者和企业界意识到,只要掌握一门spark技术,就能够为大多数的企业遇到的大数据的应用场景提供明显的加速。
学习Spark,成为一名合格的Spark工程师,使得每个致力于大数据行业的人,不仅能得到技术上的提升,也为个人的薪资带来了巨大的提升空间。
1.课程研发环境
项目源代码以spark1.5.2,jdk8,scala2.10.5为基准。
开发工具:SCALA IDE eclipse;
其他工具:shell脚本
2.内容简介
本教程从最基础的Spark介绍开始,介绍Spark的各种部署模式以及动手进行搭建,然后逐步介绍其中RDD的计算模型,创建和常用的操作,以及其中一些分布式计算,RDD持久化,容错,shuffle机制,共享变量等内容。
而后在RDD的基础上,讲解SparkSQL的子框架,介绍dataframe,使用场景,创建方法,对parquet等文件格式和不同类型的数据源的支持,对hive的兼容和整合,以及对传统数据库的JDBC的支持,和thriftserver的部署等。再配合一些实战动手的实验来加深对dataframe的理解和应用。
然后,讲解sparkstreaming的子框架,介绍DSTREAM的概念,使用场景,数据源,操作,容错,性能调优,还有与kafka的集成。
最后以2个项目来实际带学习者到开发环境中去动手开发,调试,一些基于SparkSQL,SparkStreaming,kafka的实战项目,加深大家对Spark应用开发的理解。其中简化了企业里的实际业务逻辑,加强对错误调试的分析和思路上的启发,使得学习者更容易掌握Spark的开发技巧。
12年开始从事hadoop领域技术研究,14年专职从事spark技术研究与开发,目前在企业里从事spark相关工作,同时负责企业的内训,主讲spark部分。在14年夏做为Hadoop培训讲师,曾参与过广州汇丰银行的高级Hadoop课程(Hbase,Spark)培训,并与该企业中的一些学员互留联系方式并保持长期技术上的联系。曾参与EASYHADOOP社区14年11月活动,演讲《spark介绍及SPARKSQL应用》,获得学员和与会者的好评并有长期的技术层面联系。
内容 | 培训大纲 | 实战 |
第一讲_spark简介 | Ø spark介绍 Ø Spark与hadoop的比较 Ø Spark的使用场景介绍 Ø spark软件栈 Ø 动手搭建一个最简单的spark集群 Ø 运行例子程序SparkPi | 实战:单节点的spark部署和运行SparkPi |
第二讲_spark部署模式介绍 | Ø Spark部署模式OverView Ø Spark启动过程详解 Ø Spark集群部署之Standalone Ø Spark集群部署之Spark on Yarn Ø Spark集群部署之Spark on Mesos | 实战:完全分布式的spark standalone和spark on yarn模式的动手实战 |
第三讲_spark集群硬件,开发语言和java版本的选择 | Ø spark集群硬件配置 Ø spark开发的语言选择 Ø Java版本的选择 | |
第四讲_spark的rdd及其操作介绍 | Ø RDD介绍及创建 Ø RDD的操作 Ø RDD函数传递 Ø 闭包 Ø shuffle介绍 Ø RDD的持久化 Ø 共享变量 Ø 常用transformation和action的API介绍 Ø 在spark-shell里动手实战wordcount及常用API Ø Scala介绍 | 实战:动手在Sparkshell中编写wordcount和linecount,以及动手实验常用的RDD操作。 |
第五讲_SparkSQL及DataFrame讲解 | Ø SparkSQL简介 Ø SparkSQL之DataframeSave&Load Ø SparkSQL之Dataframe介绍及创建 Ø SparkSQL之DataframeParquet Ø SparkSQL之DataframeJson&HiveTables Ø SparkSQL之DataframeJDBC&PerformanceTuning&Cli&ThriftServer | 实战:Sparksql的Dataframe创建,配置,SparkSQL连接hive,及ThriftServer. |
第六讲_SparkStreaming和DStream介绍 | Ø SparkStreaming的demo和介绍 Ø DStream和DataSource Ø DStream的Transformation和output Ø DStream持久化,checkpoint,以及和DataFrame的交互 Ø SparkStreaming应用的部署和监控 | 1) Spark Streaming应用的监控与分析 |
第七讲_SparkStreaming性能调优,容错和Kafka集成 | Ø SparkStreaming的性能调优 Ø SparkStreaming的容错 Ø SparkStreaming与Kafka的集成 | |
第八讲__SparkSQL项目实战之文本比对 | Ø 开发SparkSQL应用的雏形和定义dataframe Ø 数据清洗 Ø 业务逻辑的实现和保存数据处理结果 Ø 开发SparkSQL应用调度程序,实现多文本并行 Ø SparkSQL应用的参数化,提高可配置性 Ø SparkSQL应用部署到集群中,调试 Ø 编写简单的shell脚本,调试及查阅JIRA Ø 集群和SparkSQL应用参数的调整 Ø SparkSQL应用schedular模式介绍和性能调优 | 实战:在spark上开发一个文本比对的SparkSQL的应用 |
第九讲_SparkStreaming+ SparkSQL+Kafka 项目实战开发 | Ø kafka简介,安装和集群搭建 Ø kafka实战 Ø 多组件部署模式的设计与思考 Ø SparkStreaming+kafka应用运行日志的分析 Ø 开发基于direct模式的SparkStreaming应用 Ø SparkStreaming应用的参数设置 Ø SparkStreaming应用部署调试 Ø SparkStreaming与SparkSQL结合 Ø Kafka集群升级与connect的探索 Ø 开发自定义的Kafka producer,完成整个应用 | 实战:在第八讲的基础上,继续开发一个sparkstreaming结合sparksql和kafka的流数据处理应用 |
目标一. 了解Spark的特点,应用场景,RDD的计算模型
目标二. 学会动手搭建不同模式下的Spark集群
目标三. 掌握RDD的创建,使用,运行的相关机制
目标四. 了解SparkSQL的应用场景,特点
目标五. 掌握对dataframe的创建,操作,会动手写SparkSQL的应用,并进行调试和调优
目标六. 了解SparkStreaming的应用场景,特点,DSTREAM的相关机制,调优以及和kafka的集成
目标七. 掌握开发SparkStreaming应用的技巧,调试和其他调优
亮点一、Spark1.5.2 + scala2.10.5+Kafka 0.9.0.0,一整套对结构化数据的做批处理和流处理的实战案例
亮点二、理论与实战相结合,由浅入深。即照顾到基础学员,又照顾到有一定经验的学员,讲解过程中留有学生思考的时间.
亮点三、课程绝大多数代码均以scala为编程语言,在实战的时候,融入了对scala语言的语法和特点,以及实际开发的介绍。代码大部分一行一行手工敲入,手把手一步步带领学员从入门到精通.
亮点四、整个课程虽项目不大,但整个项目基本上涉及到Spark应用开发,官方文档阅读,调试,调优的方方面面,而且讲师框架基本是按照实际项目开发的顺序来做讲解,学员拿到该项目后稍加改造就可以用到自己的项目,实用性超强.
1.课程针对人群
本课程针对稍有的hadoop,scala基础(不要求懂shell脚本)的学员,想通过本项目的学习,了解使用scala开发Spark应用的学员。也适合是有志于成为Spark或者大数据开发工程师的学员。
2.我该怎么学,如何才能学好这门课程,给些建议。
2.1、时间上的安排建议
本课程共63讲,如果您时间上充分,建议以每天3-4讲的进度往前学习。
2.2、学习要求
如果您没有基础,建议还是中规中矩的按照课程进度一点一点仔细观看学习,并一定要把看完的视频中的代码自己手敲一遍,以加深理解和记忆,对于课后的作业,应该尽可能的完成,只有实际动手才会有收获。
如果您有基础,可不必按步就搬进行,可以拿你感兴趣的部分去学习,但一定要注意实践,并学会举一反三
2.3、讲师建议
1.最好看完视频之后,抛开视频,独立自己去把上课中的示例写一遍,看自己是否理解,如果不正确,可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握的目的。
2.对于项目实战部分,一定要自己亲自动手做一遍,不要满足听完就OK了
3. 建议一般听视频,用云笔记软件做一些记录和笔记,在空闲的时间里可以在手机上翻出来复习下,这是一种非常好的学习习惯。
4. 一定不要过于依赖视频,要学会看官方文档,积极加入到社区中去,多用API和使用百度,有时间翻译下Spark相关论文和一些重要的官方文档,学会思考,学会举一反三
5. 最后祝您学有所成
课程是属于大数据行业的专业技术,掌握该技术后,你可以从事以下职位的相关工作
1.Spark开发工程师
2.Hadoop开发工程师
3.大数据研发工程师