火花初体验

  • ,而不能支持对迭代式、交互式、流式数据的处理。

 

  • :Spark 允许将 map 端的中间输出和结果存储在内存中,reduce 端在拉取中间结果时避免了大量的磁盘 I/O。Spark 将应用程序上传的资源文件缓冲到 Driver 本地文件服务的内存中,当 Executor 执行任务时直接从 Driver 的内存 中读取,也节省了大量的磁盘 I/O。

  • :park 把不同的环节抽象为 Stage,允许多个 Stage 既可以串行执行,又可以并行执行。

  • :当 Stage 中某个分区的 Task 执行失败后,会重新对此 Stage 调度,但在重新 调度的时候会过滤已经执行成功的分区任务,所以不会造成重复计算和资源浪费。

  • :Spark 可以根据不同场景选择在 map 端排序或者 reduce 端排序。

  • :Spark 将内存分为堆上的存储内存堆外的存储内存堆上的执行内存堆外的执行内存 4 个部分。Spark 既提供了执行内存和存储内存之间是固定边界的实现,又提供了执行内存和存储内存之间是“软”边界的实现。Spark 默认使用“软”边界的实现,执行内存或存储内存中的任意一方在资源不足时都可以借用另一方的内存,最大限度的提高 资源的利用率,减少对资源的浪费。。Spark 由于对内存使用的偏好,内存资源的多寡和使用 率就显得尤为重要,为此 Spark 的内存管理器提供的 Tungsten 实现了一种与操作系统的内存 Page 非常相似的数据结构,用于直接操作操作系统内存,节省了创建的 Java 对象在堆中占 用的内存,使得 Spark 对内存的使用效率更加接近硬件。Spark 会给每个 Task 分配一个配套 的任务内存管理器,对 Task 粒度的内存进行管理。Task 的内存可以被多个内部的消费者消费,任务内存管理器对每个消费者进行 Task 内存的分配与管理,因此 Spark 对内存有着更细粒度的管理

spark 初体验

Spark 生态圈以 SparkCore 为核心从 HDFS、Amazon S3 或者 HBase 等持久层,以 MESOS、YARN 和自身携带的 Standalone 为资源管理器调度 Job 完成 Spark 应用程序的计算。

  • SparkShell/SparkSubmit 的批处理

  • SparkStreaming 的实时处理应用

  • SparkSQL 的结构化数据处理/即席查询

  • BlinkDB 的权衡查询

  • MLlib/MLbase的机器学习、GraphX的图处理和PySpark的数学/科学计算和SparkR的数据分析。

 

    火花初体验

<李>

:火花允许将中间输出和结果存储在内存中,节省了大量的磁盘IO.Apache火花使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能。同时引发自身的DAG执行引擎也支持数据在内存中的计算.Spark官网声称性能比Hadoop快100倍,即便是内存不足需要磁盘IO,其速度也是Hadoop的10倍以上

,spark 初体验


    • :支持批处理、支持交互式查询、支持交互式查询、支持机器学习、支持图计算。

    • :Spark 现在支持 Java、Scala、Python 和 R 等编程语言编写应用程序,大大降低了使用者的门槛。自带了 80 多个高等级操作符(算子),允许在 Scala,Python,R 的 shell 中进行交互式查询,可 以非常方便的在这些 Shell 中使用 Spark 集群来验证解决问题的方法。

    spark 初体验


      • :Spark 也可以不依赖于第三方的资源管理和调度器,它实现了 Standalone 作为其 内置的资源管理和调度框架,这样进一步降低了 Spark 的使用门槛,使得所有人都可以非常 容易地部署和使用 Spark,此模式下的 Master 可以有多个,解决了单点故障问题。当然,此模式也完全可以使用其他集群管理器替换,比如 YARN、Mesos、Kubernetes、EC2 等。

        火花初体验