Spark介绍

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。

Spark介绍与安装 - 图1

Spark的安装

  • Standalone模式;
  • On Yarn模式;

standalone 和 on yarn 都是 spark 的一种运行模式,通常使用spark on yarn模式即可。

一、Standalone 模式

  1. 不依赖其他任何组件
  2. 有 spark 自身来管理资源
  3. 有 master 和 worker 节点
  4. 资源调度器不够灵活,目前只支持 FIFO 模式的调度
  5. 只能以内存来管理资源

  6. Standalone-client 模式提交任务

    1. ./spark-submit \
    2. --master spark://node1:7077 \
    3. --deploy-mode client \
    4. --class org.apache.spark.examples.SparkPi \
    5. …/examples/jars/spark-examples_2.11-2.4.0.jar 100

    在这种模式下,我们能够很清楚的在客户端看到 Driver 与 Worker 的通信,因为此时 Driver 是运行在客户端的。

  7. Standalone-cluster 模式提交任务

    1. ./spark-submit \
    2. --master spark://node1:7077 \
    3. --deploy-mode cluster \
    4. --class org.apache.spark.examples.SparkPi \
    5. …/examples/jars/spark-examples_2.11-2.4.0.jar 100

Standalone-cluster模式driver会在集群的随机一台worker节点上启动。如果提交多个application,那么每个application的driver会分散到集群的worker节点,起到一个分担流量的作用。这种模式适用于生产模式。

二、On Yarn 模式

  1. spark 做为一个应用程序(application) 的方式运行在 yarn 上
  2. 不需要部署 spark 集群,没有 master 和 worker 节点
  3. 支持丰富的调度管理策略,常用的有 公平调度和容量调度
  4. 支持动态资源申请
  5. 支持 内存,cpu 来管理资源

至于测试的时候,会出现 standalone 会比 on yarn 快是正常的,但是不会说快的非常多,基本上性能是差不多的。
毕竟 on yarn 的时候,要比 standalone 多了与 yarn 交互的步骤

  1. Yarn-client模式提交任务
    1. ./spark-submit \
    2. --master yarn \
    3. --deploy-mode client \
    4. --class org.apache.spark.examples.SparkPi \
    5. …/examples/jars/spark-examples_2.11-2.4.0.jar 100

与Standalone-client模式一样,会造成流量激增,适合做测试不适合生产。

  1. Yarn-cluster模式提交任务
    1. ./spark-submit \
    2. --master yarn \
    3. --deploy-mode cluster \
    4. --class org.apache.spark.examples.SparkPi \
    5. …/examples/jars/spark-examples_2.11-2.4.0.jar 100