1、第五章 内存大数据计算框架 Spark5.1Spark简介5.2Spark部署5.3Spark配置5.4Spark RDD习题5.5Spark Shell5.1 Spark简介第五章 内存大数据计算框架Sparkl 美国加州大学伯克利分校的AMP实验室在2010年发布的一个快速、通用的开源大数据处理引擎 l 与Hadoop平台类似,提供更高效、更快的数据处理,兼容Hadoop生态l 当前主流的数据分析、数据流式处理、机器学习平台之一Spark特性多种类数据处理支持丰富、灵活的编程接口高效、高性能的批处理灵活、易用的编程模型批处理、流失处理、迭代计算(机器学习、图计算)、交互式查询编程语言:Ja
2、va、Scala、Python、R、SQL交互式数据处理:Spark Shell、PySpark、Spark SQL CLI高效利用内存处理数据;计算中间结果不需要存储到文件系统;作业调度的优化第五章 内存大数据计算框架SparkDAG编程模型丰富了map,reduce操作接口,增加了filter、flatMap、union等操作接口5.1 Spark简介多数据源支持HDFS、Hive、HBase、Parquet等第五章 内存大数据计算框架Spark5.1 Spark简介 Spark生态系统BDAS第五章 内存大数据计算框架Spark5.1 Spark简介 Spark应用程序架构第五章 内存大
3、数据计算框架Spark5.1 Spark简介有向无环图的阶段划分 A-groupBy-BC-map-DD,E-union-FB,F-join-GRDD的转化:第五章 内存大数据计算框架 Spark5.2Spark部署5.1Spark简介5.3Spark配置5.4Spark RDD习题5.5Spark Shell大数据应用人才培养系列教材5.2 Spark部署第五章 内存大数据计算框架Sparkl 准备工作1)安装JDK2)下载Spark 5.2 Spark部署第五章 内存大数据计算框架Sparkl Spark单节点部署1)选择一台 Linux机器,安装JDK2)下载Spark包文件,并解压3)
4、运行测试程序(计算圆周率)/bin/run-example SparkPi 10 2/dev/null 5.2 Spark部署第五章 内存大数据计算框架Sparkl Spark集群点部署 Standalone模式集群的架构 5.2 Spark部署第五章 内存大数据计算框架Sparkl Spark集群点部署 Standalone模式集群的规划5.2 Spark部署第五章 内存大数据计算框架Sparkl Spark集群点部署 Standalone模式集群的部署步骤1)配置Linux机器,调通网络,关闭防火墙2)创建用户dtadmin3)配置host文件4)安装JDK5)配置免密码登录6)下载、解压
5、Spark安装包7)配置slaves文件8)执行启动脚本,启动集群 9)验证安装是否成功 10)提交测试程序 5.2 Spark部署第五章 内存大数据计算框架Sparkl Spark集群点部署 高可用集群 1)增加备用Master节点实现高可用集群2)配置Master节点本地文件系统恢复第五章 内存大数据计算框架 Spark5.3Spark配置5.1Spark简介5.2Spark部署5.4Spark RDD习题5.5Spark Shell大数据应用人才培养系列教材5.3 Spark配置第五章 内存大数据计算框架Sparkl 三种配置1)Spark属性 应用程序相关配置2)环境变量 机器相关配置
6、3)日志配置 日志开关、级别等5.3 Spark配置第五章 内存大数据计算框架Sparkl Spark属性,优先级由低到高:1)spark-defaults.conf 配置文件2)命令行参数3)SparkConf对象5.3 Spark配置第五章 内存大数据计算框架Sparkl 常用Spark属性属性名默认值含义spark.app.name(none)Spark应用程序的名称 spark.driver.cores 1集群模式下driver所使用的core的数量 spark.driver.memory 1G Driver进程所使用的内存大小 spark.executor.memory 1G 每个e
7、xecutor进程所使用的内存大小 spark.master(none)集群管理器URL spark.submit.deployMode(none)Driver程序的部署模式,取值为:”client”或”cluster”5.3 Spark配置第五章 内存大数据计算框架Sparkl 常用环境变量配置配置项含义SPARK_LOCAL_IP 绑定的IP地址 SPARK_PUBLIC_DNS Driver程序使用的DNS服务器 SPARK_CLASSPATH额外追加的classpath 第五章 内存大数据计算框架 Spark5.4Spark RDD5.1Spark简介5.2Spark部署5.3Spar
8、k配置习题5.5Spark Shell大数据应用人才培养系列教材 RDD特性只读弹性分布数据集合分布式存储一旦生成便不可修改,易于同步处理数据的分片可以自定义与编程语言中的集合类似第五章 内存大数据计算框架Spark切分为多个数据块,分散存储在多个节点中5.4 Spark RDD可重新计算在出现异常错误的情况下能够重新计算出可持久化可缓存,避免重复计算5.4 Spark RDD第五章 内存大数据计算框架Sparkl 常用RDD转换操作RDD转换含义map(func)通过函数func对数据集中的每个成员进行转换 filter(func)通过函数func选择过滤数据集中的成员 flatMap(fu
9、nc)和map转换类似,但函数func可以把单个成员转换为多个成员。union(other)返回当前集合与otherDataset集合的union操作 distinct 去掉集合中重复成员,使新的集合中成员各不相同 groupByKey 对键-值(key-value)对集合按照键(key)进行groupBy操作 sortByKey 对键-值(key-value)对集合进行排序 join(other)对两个键-值(key-value)对集合:(K,V),(K,W)进行连接操作,形成新的键-值对集合:(K,(V,W)5.4 Spark RDD第五章 内存大数据计算框架Sparkl RDD依赖关系:
10、RDD转换生成新的RDD,新的RDD依赖于旧的形成依赖关系1)窄依赖 父RDD的每个分区最多被一个子RDD分区所依赖2)宽依赖 子RDD的每个分区都依赖于父RDD的所有分区或多个分区l 按照RDD分区的依赖关系可分为两种类型:5.4 Spark RDD第五章 内存大数据计算框架Sparkl RDD窄依赖 第一类第二类5.4 Spark RDD第五章 内存大数据计算框架Sparkl RDD宽依赖 5.4 Spark RDD第五章 内存大数据计算框架Sparkof3025l RDD行动操作(Action)Action含义collect 返回RDD中的所有元素 count 返回RDD中元素的数量 c
11、ountByKey 计算键-值对RDD每个键(key)对应的元素个数 first 返回RDD中第一个元素 take(n)返回RDD中前n个元素 reduce(func)通过函数func对RDD进行聚合操作 saveAsTextFile(path)把RDD保存为一个文本文件,可以选择保存在本地文件系统、HDFS等。文件中的一行为RDD中的一个元素 foreach(func)通过函数func对RDD中的每个元素进行计算,通常在更新累加器或者使用外部存储系统时用到 5.4 Spark RDD第五章 内存大数据计算框架Sparkl RDD作业的执行 RDD的转换是惰性的(lazy),遇到Action时
12、才会执行 第五章 内存大数据计算框架 Spark5.5Spark Shell5.1Spark简介5.2Spark部署5.3Spark配置习题5.4Spark RDD大数据应用人才培养系列教材5.5 Spark Shell第五章 内存大数据计算框架Sparkl 交互式数据分析工具,适用于:1)快速数据分析2)快速原型开发3)学习Spark API第五章 内存大数据计算框架 Spark习题5.1Spark简介5.2Spark部署5.3Spark配置5.5 Spark Shell5.4Spark RDD大数据应用人才培养系列教材1.Spark集群有哪几种模式?2.Standalone集群中的Master节点和Slave节点分别负责什么功能?3.Spark-submit脚本的功能是什么?4.分布式弹性数据集RDD的特点有哪些?5.列举三个RDD转换操作,并描述其功能。6.列举三个RDD行动操作,并描述其功能。习题:感谢聆听