一、Spark数据分析导论
1.Spark是一个用来实现快速而通用的集群计算的平台,扩展了MapReduce计算模型,支持更多计算模式,包括交互式查询和流处理
2.包括Spark Core、Spark SQL、Spark Streaming(内存流式计算)、MLlib(机器学习)、GraphX(图计算)
3.适用于数据科学应用和数据处理应用
二、Spark下载与入门
1.Spark应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作,驱动程序通过一个SparkContext对象来访问Spark,这个对象代表对计算集群的一个连接
三、RDD编程
1.RDD(Resilient Distributed Dataset,弹性分布式数据集),就是分布式的元素集合,在Spark中,对数据的所有操作就是创建RDD、转化RDD以及调用RDD操作进行求值
2.工作方式:
3.RDD的转化操作都是惰性求值 的,在调用行动操作之前Spark不会开始计算
4.常用转化操作:map()和filter()
四、键值对操作
1.pair RDD(键值对RDD),Spark提供了一些专有操作
2.Spark程序可以通过控制RDD分区方式来减少通信开销,只有当数据集多次在诸如连接这种基于键的操作中使用时spark快速数据分析,分区才会有帮助
3.在Java中使用partitioner()方法获取RDD的分区方式
4.Spark的许多操作都引入了将数据根据键跨节点进行混洗的过程,这些操作都在分区中获益
五、数据读取与保存
1.将一个文本文件读取为RDD时,输入的每一行都会成为RDD的一个元素,也可以将多个完整文件一次性读取为一个pair RDD
2.JSON数据是将数据作为 文本文件读取,然后使用JSON解析器对RDD中的值进行映射操作,在Java和Scala中也可以使用一个自定义Hadoop格式来操作JSON数据
3.SequenceFile是由没有相对关系结构的键值对文件组成的常用Hadoop格式,有同步标记,Spark可以用它来定位到文件中的某个点,然后再与记录的边界对齐
六、Spark编程进阶
1.累加器:提供了将工作节点中的值聚合到驱动器程序中的简单语法spark快速数据分析,常用于调试时对作业执行过程中的事件进行计数
2.广播变量:让程序高效地向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用
3.Spark的pipe()方法可以让我们使用任意一种语言实现Spark作业中的部分逻辑,只要能读写Unix标准流就行
4.Spark的数值操作是通过流式算法实现的,允许以每次一个元素的方式构建出模型
七、在集群上运行Spark
1.在分布式环境下,Spark集群采用的是主/从结构,中央协调节点称为驱动器(Driver)节点,工作节点称为执行器(executor)节点,能过集群管理器(Cluster Manager)的外部服务在集群中的机器上启动Spark应用
2.驱动器程序:把用户程序转为任务;为执行器节点调度任务
3.使用bin/spark-submit部署
4.可以使用其他集群管理器:Hadoop YARN和Apache Mesos等
八、Spark调优与调试
1.修改Spark应用的运行时配置选项,使用SparkConf类
2.关键性性能考量:并行度、序列化格式、内存管理、硬件供给
九、Spark SQL
来源【首席数据官】,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!
版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。