如何指定Spark2作业中Driver和Executor使用指定范围内端口

Posted Hadoop实操

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何指定Spark2作业中Driver和Executor使用指定范围内端口相关的知识,希望对你有一定的参考价值。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


Fayson的github:

​https://github.com/fayson/cdhproject​


提示:代码块部分可以左右滑动查看噢


1.文档编写目的



在CDH集群中提交Spark作业,大家也都知道Spark的Driver和Executor之间通讯端口是随机的,Spark会随选择1024和65535(含)之间的端口,因此在集群之间不建议启用防火墙。本篇文章Fayson主要介绍如何指定Spark2作业中Driver和Executor使用指定范围内的端口进行通讯。


  • 内容概述

1.配置Spark Driver和Executor端口范围

2.验证端口分配


  • 测试环境

1.CM和CDH版本为5.15

2.Spark版本为2.2.0


2.配置Spark Driver和Executor端口范围



1.登录到CM管理界面,进入Spark服务的配置界面


如何指定Spark2作业中Driver和Executor使用指定范围内端口_spark


2.在Gateway分类中配置也搜索“spark-defaults.conf”,添加如下配置:


spark.driver.port=10000
spark.blockManager.port=20000
spark.port.maxRetries=999

(可左右滑动)


如何指定Spark2作业中Driver和Executor使用指定范围内端口_端口号_02


3.保存配置,并重新部署Spark2的客户端配置


如何指定Spark2作业中Driver和Executor使用指定范围内端口_hadoop_03


3.验证端口分配



1.向集群提交一个Spark2的作业


spark2-submit --class org.apache.spark.examples.SparkPi\\
--master yarn --num-executors 4 --driver-memory 1g\\
--driver-cores 1 --executor-memory 1g --executor-cores 1\\
/opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera2.jar 10000

(可左右滑动)


如何指定Spark2作业中Driver和Executor使用指定范围内端口_端口号_04


2.查看Spark作业的运行界面查看Driver和Executor使用的端口号


如何指定Spark2作业中Driver和Executor使用指定范围内端口_hadoop_05


4.总结



本篇文章Fayson主要是以Spark2为例说明限制Driver和Executor使用指定范围内的端口号。细心的朋友可以看到Driver启动的时候会监听两个端口示例中是10001和20000。关于这两个端口的解释如下:


1.spark.driver.port的10001端口是用来监听来自executor的请求,在executor起来的时候需要与drive通信并获取具体的任务信息,是driver使用的管理调度用端口。


2.spark.blockManager.port(20000)端口是driver和executor直接数据传输端口(比如cached data frame, broadcast vars)。


3.在Spark运行中,blockManager将不会和YARN交互,而driver是会和YARN中运行的Application Master进程交互。


4.Spark2中指定Executor的端口号是通过spark.blockManager.port指定与Spark1的(spark.executor.port)指定参数不同。



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。



推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

如何指定Spark2作业中Driver和Executor使用指定范围内端口_端口号_06

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操


以上是关于如何指定Spark2作业中Driver和Executor使用指定范围内端口的主要内容,如果未能解决你的问题,请参考以下文章

Spark2x on yarn日志配置详解

在 Spark 上下文中使用多个同时作业的 Spark 2 作业监控 (JobProgressListener)

spark-submit 如何在集群模式下传递 --driver-class-path?

Spark 2.0 设置罐子

使用 cassandra-python-driver 记录所有查询

spark2.1.0之配置与源码分析