前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何指定Spark2作业中Driver和Executor使用指定范围内端口

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

作者头像
Fayson
发布2018-09-29 10:46:51
5K0
发布2018-09-29 10:46:51
举报
文章被收录于专栏:Hadoop实操Hadoop实操

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服务的配置界面

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

代码语言:javascript
复制
spark.driver.port=10000
spark.blockManager.port=20000
spark.port.maxRetries=999

(可左右滑动)

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

3.验证端口分配


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

代码语言:javascript
复制
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

(可左右滑动)

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

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)指定参数不同。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档