【硅谷之路视频总结】深入浅出Spark(三)什么是Standalone



  • 作者:Robert Cai

    本系列讲座是冯沁源先生对Sameer Farooqui的《Advanced Apache Spark》的解说。原始视频参考:

    根据对215名学生的调查结果显示,Spark最主要资源管理方式按排名为Hadoop Yarn, Apache Standalone 和Mesos。在单机使用时,Spark还可以采用最基本的local模式。

    0_1473783646365_1.png
    图1.如何部署Spark的统计图

    本节主要介绍Local和Spark Standalone资源管理模式。下一节将介绍YARN。

    1. 传统Hadoop MapReduce的资源管理方式

    0_1473783723527_2.png
    图2.有两个Map Reduce App运行的Hadoop的资源管理

    Name Node管理所有节点的情况,每台机器里有Data node, 存储数据。
    Job Tracker将任务发到Task Tracker。 每个Task Tracker启动Map和Reduce工作。

    2. Spark最基本的Local模式。

    0_1473783804313_3.png
    图3. 本地(Local)运行Spark。

    带有8个内核的CPU启动了一个JVM, 右下黑色的是Driver, 启动12个task的本地运行环境, 通过内部的线程进行并发运算。

    图3的JVM中存了两个逻辑RDD, 紫色的RDD有三个分区。蓝色的RDD有两个分区。

    右侧程序演示了在scala中用SparkConf设置了如左侧的运行环境, 注意到这段程序还为Executor分配了3GB的内存。

    3. Spark Standalone模式

    Spark Standalone Mode用于多台机器的集群(cluster)管理。一台Master负责管理集群。

    每个机器里有一个worker与Spark Master交互。

    RDD现在被分块到了多台机器中。如图蓝色RDD有八个分块, 每台分到两个。紫色的RDD分成了两个分块,并且复制到了另两台机器。

    每台机器的内核数量不同,可以并发的任务数也不同,左起第二台机器的内核数量多,可以分配更多的并发任务。注意到图中用SSD作为为中间存储设备。SSD比硬盘快很多,可以提高性能。

    0_1473783912333_4.png
    图4. 单个Master的Standalone调度

    多个master时,可以用zookeeper调度,如图5。

    0_1473783935780_5.png
    图5.多个Master时的Standalone模式

    一个worker可以调用多个executor, 如图6。

    0_1473783963894_6.png
    图6. 一个Worker调度多个Executor

    默认一个Worker为一个Driver调度一个Executor,如果我们希望一个Driver用两个Executor,则要为该Driver创建两个Worker。如图7。

    0_1473783986827_7.png
    图7一个Driver调用两个Executor.

    4. Spark为我们提供了任务执行统计信息的网页。通过这些页面我们可以看到当前的任务数量,Worker以及Executor信息,正运行的Job, Stages和Tasks, 内存的使用情况等等信息。

    0_1473784020891_8.png
    图8. Spark任务执行统计UI

    5. 总结Spark standalone工作模式

    • Spark用Master来管理整个Cluster, worker来与Master进行交互管理当地的执行情况。Worker 有Executor,里面有多个Job执行。

    • 每个工作(Job)分多个阶段(Stage), 每个阶段 (Stage)分为多个任务(Task)。

    • RDD的分块执行。使用统计面板里的具体信息理解任务调度。


  • 太阁x英雄榜

    赞赞 小太阳辛苦啦!


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待