Spark工作原理及基础概念(超详细!)

目录

    • 一、Spark概述
      • (1)概述
      • (2)Spark整体架构
      • (3)Spark特性
      • (4)Spark与MR
      • (5)Spark Streaming与Storm
      • (6)Spark SQL与Hive
    • 二、Spark基本原理
      • (1)Spark Core
      • (2)Spark SQL
      • (3)Spark Streaming
      • (4)Spark基本工作原理
        • (1)分布式数据集
        • (2)弹性
        • (3)迭代式处理
        • (4)容错性
    • 三、Spark 运行模式及集群角色
      • (1)Spark运行模式
      • (2)Spark集群角色
        • (1)Cluster Manager
        • (2)worker
        • (3)executor
        • (4)Application
        • (5)Driver
        • (6)sparkContext
      • (3)Spark其他核心概念
        • (1)RDD
        • (2)DAG
        • (3)DAG Scheduler
        • (4)Task Scheduler
        • (5)Job
        • (6)stage
        • (7)TaskSet Task
    • 四、Spark作业运行流程
      • (1)Spark作业运行流程
      • (2) Spark RDD迭代过程
      • (3)Yarn资源管理器介绍
      • (4)Spark程序在Yarn上执行流程
    • 五、基于WordCount程序开发
      • (1)Java开发WordCount程序
      • (2)Scala开发WordCount程序
      • (3)程序打包提交Spark集群测试

一、Spark概述

(1)概述

Spark,是一种"One Stack to rule them all"的大数据计算框架,期望使用一个技术堆栈就完美地解决大数据领域的各种计算任务。Apache官方,对Spark的定义就是:通用的大数据快速处理引擎。
Spark使用Spark RDD、Spark SQL、 Spark Streaming,MLlib,GraphX成功解决了大数据领城中,离线批处理、交互式查询、实时流计算、机器学习与图计算等最重要的任务和问题。
Spark除了一站式的特点之外,另外一个最重要的特点,就是基于内存进行计算,从而让它的速度可以达到MapReduce、Hive的数倍甚至数十倍!
现在已经有很多大公司正在生产环境下深度地使用Spark作为大数据的计算框架,包括eBay.Yahool、 BAT、网易、京东、华为、大众点评、优酷土豆、搜狗等等。
Spark同时也获得了多个世界顶级IT厂商的支持,包括IBM、 Intel等。

Spark,是一种通用的大数据计算框架,I正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等,
Spark包含了大数据领城常见的各种计算框架:比如Spark Core用于离线计算,Spark SQL用于交互式查询,Spark Streaming用于实时流式计算,Spark MILlib用于机器学习,Spark GraphX用于图计算。
Spark主要用于大数据的计算,而Hadoop以后主要用于大数据的存储(比如HDFS、Hive,HBase等),以及资源调度(Yarn)。
Spark+Hadoop的组合,是未来大数据领域最热门的组合,也是最有前景的组合!

(2)Spark整体架构

Spark工作原理及基础概念(超详细!)_第1张图片

(3)Spark特性

在这里插入图片描述

(1)spark 计算速度快

spark将每个任务构建成DAG进行计算,内部的计算过程通过弹性式分布式数据集RDD在内存在进行计算,相比于hadoop的mapreduce效率提升了100倍。

(2)易于使用

spark 提供了大量的算子,开发只需调用相关api进行实现无法关注底层的实现原理。

通用的大数据解决方案

相较于以前离线任务采用mapreduce实现,实时任务采用storm实现,目前这些都可以通过spark来实现,降低来开发的成本。同时spark 通过spark SQL降低了用户的学习使用门槛,还提供了机器学习,图计算引擎等。

(3)支持多种的资源管理模式

学习使用中可以采用local 模型进行任务的调试,在正式环境中又提供了standalone,yarn等模式,方便用户选择合适的资源管理模式进行适配。

(4)社区支持

spark 生态圈丰富,迭代更新快,成为大数据领域必备的计算引擎。

(4)Spark与MR

MapReduce能够完成的各种离线批处理功能,以及常见算法(比如二次排序、topn等),基于Spark RDD的核心编程,都可以实现,并且可以更好地、更容易地实现。而且基于Spark RDD编写的离线批处理程序,运行速度是MapReduce的数倍,速度上有非常明显的优势。
Spark相较于MapReduce速度快的最主要原因就在于,MapReduce的计算模型太死板,必须是map-reduce模式,有时候即使完成一些诸如过滤之类的操作,也必须经过map-reduce过程,这样就必须经过shuffl

你可能感兴趣的:(面试,学习路线,阿里巴巴,spark,big,data,scala,c++,java)