spark面试题:你是怎么理解Spark,它的特点是什么?

一,spark是什么?

Spark是基于海量数据的分布式分析引擎。

Spark是在总结Hadoop的经验教训的基础上,基于MapReduce思想的分布式计算框架,包含所有Hadoop的优点,但不同于Hadoop中MapReduce将中间结果存储在Hdfs,spark的中间输出和结果可以保存在内存,从而避免了存储到Hdfs所需要的磁盘IO和网络传输,性能大为提升。

Spark是分布式计算引擎,其没有存储功能,所以Spark需要指定数据源和数据输出。

二,spark的特点

速度快

官网案例表明Spark比Hadoop快100倍,这得益于Spark基于DAG的先进调度机制、查询优化引擎、物理执行引擎,针对海量数据批式处理和流式处理都能保证高性能。

在这里插入图片描述
内存计算

  • spark在计算过程中尽量不把数据存储的文件系统,而是直接保存在内存中,这是Spark比Hadoop快的根本原因。

  • mapreduce任务以进程的方式运行在yarn集群中,比如程序中有100个MapTask,一个task就需要一个进程,这些task要运行就需要开启100个进程。
    spark任务以线程的方式运行在进程中,比如程序中有100个MapTask,后期一个task就对应一个线程,这里就不再是进程,这些task需要运行,这里可以极端一点:只需要开启1个进程,在这个进程中启动100个线程就可以了。
    进程中可以启动很多个线程,而开启一个进程与开启一个线程需要的时间和调度代价是不一样。 开启一个进程需要的时间远远大于开启一个线程。

易用性

Spark算子众多,语义丰富,可以通过 java/scala/python/R/SQL等不同语言快速去编写spark程序

通用性

spark框架不在是一个简单的框架,可以把spark理解成一个spark生态系统,内部包含很多模块,基于不同的应用场景可以选择对应的模块去使用,见下图:

  • sparksql:通过sql去开发spark程序做一些离线分析
  • sparkStreaming/Structured Streaming:实时计算
  • Mlib:它封装了一些机器学习的算法库
  • Graphx:图计算
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java追光着

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值