Spark一些个人总结

文章目录

  • 前言
  • 一、Spark是什么
  • 二、Spark用来做什么
  • 三、Spark的优势是什么
  • 四、为什么用Spark
  • 五、Spark解决了什么问题
  • 总结


前言

随着大数据技术的发展,一些更加优秀的组件被提了出来,比如现在最常用的Spark组件,基于RDD原理在大数据处理中占据了越来越重要的作用。在此我们探索了Spark的原理,以及其在大数据开发中的重要作用。


一、Spark是什么

Spark是一个用来实现快速,通用的集群计算平台
Spark适用于各种各样原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。通过在一个统一的框架下支持这些不同的计算,spark使我们可以简单而低耗地把各种处理流程整合在一起

二、Spark用来做什么

1.数据科学任务
具备 SQL、统计、预测建模(机器学习)等方面的经验,以及一定的python,matlab,R语言能力的数据科学家对数据进行分析,以回答问题或发现一些潜在规律。
3.数据处理任务
Spark 的另一个主要用例是针对工程师的。在这里,我们把工程师定义为使用 Spark 开发
生产环境中的数据处理应用的软件开发者。这些开发者一般有基本的软件工程概念,比如
封装、接口设计以及面向对象的编程思想,他们通常有计算机专业的背景,并且能使用工
程技术来设计和搭建软件系统,以实现业务用例。
a.Spark 为开发用于集群并行执行的程序提供了一条捷径。通过封装,Spark不需要开发者关注如何在分布式系统上编程这样的复杂问题,也无需过多关注网络通信和程序容错性。
b.Spark已经为工程师提供了足够的接口来快速实现常见的任务,以及对应用 进行监视、审查和性能调优

三、Spark的优势是什么

1.快:与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上;而基于磁盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效地处理数据流。
2.容易使用:Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同应用。而且Spark支持交互式的Python和Scala的Shell,这意味着可以非常方便的在这些Shell中使用Spark集群来验证解决问题的方法,而不是像以前一样,需要打包、上传集群、验证等。这对于原型开发非常重要。
3.通用性:Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(通用Spark SQL)、实时流处理(通过Spark Streaming)、机器学习(通过Spark MLlib)和图计算(通过Spark GraphX)。
这些不同类型的处理都可以在同一应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台处理问题,减少开发和维护的人力成本和部署平台的物理成本。当然还有,作为统一的解决方案,Spark并没有以牺牲性能为代价。相反,在性能方面Spark具有巨大优势。
4.可融合性:Spark非常方便的与其他开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassanda等。这对于已部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark强大的处理能力。Spark也可以不依赖第三方的资源管理器和调度器,它实现了Standalone作为其内置资源管理器和调度框架,这样进一步降低了Spark的使用门槛,使得所有人可以非常容易地部署和使用Spark。此外Spark还提供了在EC2上部署Standalone的Spark集群的工具。

四、为什么用Spark

为什么使用Spark?很简单,就是因为Spark在计算性能上的提升。

第一代的Hadoop,主要针对的是大数据离线计算场景,在稳定性上一枝独秀,但是随着大数据的发展,实时流计算成为主流的需求,Hadoop MapReduce已经不能满足了。而Spark正是在这样的背景下产生,Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

五、Spark解决了什么问题

最大化利用内存cache (采用该多线程的方式)
中间结果放内存,加速迭代(内存计算下Spark比MapReduce约快100倍)
某结果集放内存,加速后续查询和处理,解决运行慢的问题
更丰富的API(解决API单一问题)
Transfomation变换的api,比如map可对每一行做变换,filter过滤出符合条件的行等,这些API实现用户算法
spark提供很多转换和动作,很多基本操作如Join,GroupBy已经在RDD转换和动作中实现。不需用户自己实现

总结

Spark的横空出世,极大促进了大数据技术的发展,Spark在大数据开发中有着重要的作用,比如和Hive在一起实现Hive on Spark,此外,Spark在数据处理上一枝独秀,能很好地利用内存,以及提高处理速度,也提供了很多借口,来让大数据处理更加便利。

你可能感兴趣的:(大数据,spark,big,data,scala)