Spark on YARN 的两种模式

目前 Apache Spark 支持四种模式 分别是

  1. local:开发模式使用

  2. Standalone:Spark 自带模式,即独立模式,自带完整服务,可以单独部署到一个集群中。目前 Spark 在 standalon 模式下是没有单点故障问题,通过 zookeeper 实现的。架构和 MapReduce 是完全一样的。

  3. Spark On Mesos :官方推荐这种模式,目前而言,Spark 运行在 Mesos 上比运行在 YARN 上更加灵活

  4. Spark On YARN:目前很有前景的部署模式,
    支持两种模式
    1)yarn-cluster:适用于生产环境
    2)yarn-client:适用于交互、调试、希望立即看到 app 的输出

    上面涉及到Spark的许多部署模式,究竟哪种模式好这个很难说,需要根据你的需求,如果你只是测试Spark Application,你可以选择local模式。而如果你数据量不是很多,Standalone 是个不错的选择。当你需要统一管理集群资源(Hadoop、Spark等),那么你可以选择Yarn或者mesos,但是这样维护成本就会变高。
      · 从对比上看,mesos似乎是Spark更好的选择,也是被官方推荐的
      · 但如果你同时运行hadoop和Spark,从兼容性上考虑,Yarn是更好的选择。 · 如果你不仅运行了hadoop,spark。还在资源管理上运行了docker,Mesos更加通用。
      · Standalone对于小规模计算集群更适合!

Spark On YARN两种模式介绍

yarn-cluster和yarn-client的区别在于yarn appMaster,每个yarn app实例有一个appMaster进程,是为app启动的第一个container;负责从ResourceManager请求资源,获取到资源后,告诉NodeManager为其启动container。yarn-cluster和yarn-client模式内部实现还是有很大的区别。如果你需要用于生产环境,那么请选择yarn-cluster;而如果你仅仅是Debug程序,可以选择yarn-client。

提示:不管什么模式,Spark 的应用程序代码一样,只是在提交时通过–master参数来指定,运行模式就行

Spark 运行模式

这里写图片描述

两种模式的区别

  • Client
  • Driver 运行在 Client 端(提交 Spark 作业的机器)
    Client 会和请求到 Container 进行通信来完成通信作业的调度和执行,Client 是不能退出的
    日志新在控制台输出:便于测试
  • Cluster
  • Driver 运行在 ApplicationMaster 中
    Client 只要完成提交作业后就可以关掉,因为作业已经执行在 YARN 上运行了
    日志在终端看不到,因为日志在 Driver 上,只能通过 yarn logs -applicationId application_id

运行实例

1)首先启动 YARN 资源管理器
2)更改$SPARK_HOME/conf/spark-env.sh下文件
这里写图片描述
添加25行的 HADOOP_CONF_DIR配置文件的路径
如果不配置的话出现错误:

  Exception in thread "main" java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.

3)运行代码实例
官网实例:http://spark.apache.org/docs/latest/submitting-applications.html#master-urls
运行 yarn client 模式

 ./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --executor-memory 1G \
  --num-executors 1 \
  /opt/spark-2.3.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.3.0.jar \
  10

直接可以在面板看到 PI 的输出:
这里写图片描述
在 YARN 后台:这里写图片描述

运行yarn-cluster模式

  ./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --deploy-mode cluster \
  --executor-memory 1G \
  --num-executors 1 \
  /opt/spark-2.3.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.3.0.jar \
  10

只可以在 YARN 后台可以看到:这里写图片描述这里写图片描述这里写图片描述这里写图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值