Spark快速大数据分析(读书笔记)

第一章:spark数据分析导论 
1.1 spark是什么 
快速通用集群计算平台

spark扩展了mapreduce计算模型,高效的支持更多的计算模式,包括交互式查询和流处理(在处理大规模数据集时,速度非常重要,速度快就意味着我们可以进行交互式的数据操作),能够在内存中进行计算(不过就算必须在磁盘中进行复杂计算,spark依然比mapreduce更加高效)

spark适用于各种各样原来需要多种不同分布式平台的场景,包括批处理、迭代算法、交互式查询、流处理。通过在这一个统一的框架下支持这些不同类型的计算,spark是我们可以简单而低耗地把各种处理流程整合到一起。而这样的组合在实际开发中很有意义,进而减轻原来需要对各种平台分别管理的负担

spark可以运行在hadoop集群上,访问hadoop上任意数据源

1.2一个大一统的软件栈

spark的核心是一个对有许多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。该引擎支持多种不同应用场景专门设计的高级组件,例如 spark streaming、saprk sql、MLlib、GraphX ,这些组件关系密切并且可以相互调用,这样就可像平常软件项目中使用程序库那样,组合使用这些组件

各组间密切集成于spark平台的优点: 
都可以从下层改进中受益(当spark核心引擎引入一个优化,sql和机器学习程序库都能自动获得性能提升) 
运行整个软件栈的代价变小了(不需要同时运行支持多种不同应用场景所需的多个软件系统,只需在spark上调用各种库)这些代价包括系统的部署、维护、测试、支持、升级 
能够无缝整合不同处理模型的应用

spark软件栈:独立调度器/YARN/Mesos——>spark core ——> spark sql/spark streaming/MLlib/GraphX

1.2.1 Spark Core 
Spark Core 上实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core还包含了对弹性分布式数据集的API定义。RDD表示分布在多个节点可并并行操作的元素集合,是spark主要的编程对象。spark core提供了创建和操作这些集合的多个API

1.2.2 Spark SQL 
Spark SQL 是spark用来操作结构化数据的程序包,可以使用HiveQL来查询数据。Spark SQL支持多种数据源,比如 Hive表、Parquest以及Json。saprk SQL还支持开发者将SQL和传统的RDD编程数据操作方式结合(python、java、scala皆有相应程序包)

1.2.3 Spark streaming 
Spark提供的对流式数据进行流式计算的组件。比如网页服务器日志或者网络服务中用户提交的状态更新组成的消息队列,都是数据流 可操作磁盘、内存、实时数据流

1.2.4 MLlib 
Spark还提供一个机器学习的程序库,MLlib,提供了许多种机器学习的算法,包括分类、回归、聚类、协同过滤以及模型评估和数据导入等功能

1.2.5 GraphX 
操作图的程序库,例如 社交网络的朋友关系图,可以进行并行的图计算以及常用的图算法

1.2.6 集群管理器 
底层而言,spark设计为高效的在一个计算节点到数千个计算节点伸缩计算,spark支持多种集群管理器(Hadoop YARN、Apache Mesos),以及spark自带的独立调度器。
https://blog.csdn.net/qq_33813365(本人大四考研狗,防止小队被公示,copyCSDN,请体谅)
全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务