Spark 有什么优缺点?

Posted BAT笔试面试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark 有什么优缺点?相关的知识,希望对你有一定的参考价值。

优点

1、速度快
基于内存运算时比mapreduce快100倍,基于磁盘运算也快10倍以上

2、使用方便,支持多语言
本地调试很方便
支持多种语言:Scala、Java、Python、R
多种运行模式:Local模式、Standalone模式、Spark On Yarn、Spark On Mesoes、Kubernetes

3、丰富的操作算子
spark有丰富的算子,代码很简洁,几行代码就可以实现mapreduce几个类的工作。
Value型Transformation算子:map、flatMap、mapPartition、filter、union、distinct、distinct、sample、cache、persist
Key-Value型Transformation算子:mapValues、reduceByKey、partitionBy
Action算子:count、foreach、collect、reduce、saveAsTextFile、join、leftOuterJoin、rightOuterJoin

4、支持的场景多
支持批处理、实时处理 Spark Streaming、机器学习 Mllib、图计算 Graphx
各种处理可以在同一个应用中无缝隙使用


5、生态完善、社区活跃
很容易操作hadoop、hbase、cassandra、kafka
文档很全

缺点

1、流式计算不如flink
2.3版本以前spark的流式计算是将流数据当成小批量的数据(Micro-batch)进行处理,延迟较高,通常大于百毫秒级别;
2.3版本以后开始支持连续处理模型(类flink), 但功能不如flink全。

2、资源消耗较高
spark是基于内存计算,因此对资源的要求较高,尤其是内存;
当从hdfs上读取很多小文件生成rdd时,rdd元数据会占用较多内存。

推荐阅读








加小编微信 “tickai”  (备注大数据),拉你入 “大数据学习交流群”

------------- End -------------
更多面试题请关注
“BAT笔试面试”

以上是关于Spark 有什么优缺点?的主要内容,如果未能解决你的问题,请参考以下文章

关于mq的思考

详细探究Spark的shuffle实现

Apache Spark 动态分区 OverWrite 问题

spark和hadoop的区别

spark和hadoop的区别

SparkSQL vs Hive on Spark - 区别和利弊?