关于Spark报错不能连接到Server的解决办法(Failed to connect to master master_hostname:7077)

2023-10-26

问题产生

Spark集群,即可以基于Mesos或YARN来部署,也可以用自带的集群管理器,部署于standalone模式下。笔者在部署standalone模式时,

首先,通过如下命令,启动了Master。

./sbin/start-master.sh

成功启动后,可以通过http://master_ip:8080/连接到Master的UI,并在页面中找到URL为spark://host_name:7077。

然后,通过如下命令,启动Slave。

./sbin/start-slave.sh spark://host_name:7077

但Slave无法连接Master,查它的Log,可以得到如下错误。

17/02/20 15:31:12 INFO Worker: Retrying connection to master (attempt # 2)
17/02/20 15:31:12 INFO Worker: Connecting to master 10.xx.xx.xx:7077...
17/02/20 15:31:12 WARN Worker: Failed to connect to master 10.xx.xx.xx:7077
org.apache.spark.SparkException: Exception thrown in awaitResult
        at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:75)
        at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
        at scala.PartialFunction$OrElse.apply(PartialFunction.scala:167)
        at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:83)
        at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:88)
        at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:96)
        at org.apache.spark.deploy.worker.Worker$$anonfun$org$apache$spark$deploy$worker$Worker$$tryRegisterAllMasters$1$$anon$1.run(Worker.scala:216)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Failed to connect to /10.xx.xx.xx:7077
        at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:228)
        at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:179)
        at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:197)
        at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:191)
        at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:187)
        ... 4 more
Caused by: java.net.ConnectException: Connection refused: /10.xx.xx.xx:7077
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:224)
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:289)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
        ... 1 more

这是一个很常见的问题,上网一搜也能发现很多人遇到过。具体怎么解决这个问题呢,请看下文。

问题解决过程

这到底是网络连接的问题,还是Spark连接的问题呢?下面就是笔者解决这个问题的思路历程。

关闭防火墙

防火墙有时候会阻止一些连接或端口。再我们不确定哪些服务有用时,最好的办法就是先将防火墙关闭,确定是防火墙导致的问题,再来调整防火墙的策略。笔者用的是Ubuntu Server,关闭防火墙的命令如下:

ufw disable

然后可以用如下命令来检查防火墙的状态:

ufw status verbose

对于这个问题,关了防火墙,发现还是报相同的错误信息。继续思考其它方案。

修改hostname

笔者Master所在的Linux,hostname是root,太简单,连接spark://host_name:7077会不会被DNS解析到其它主机。在Master主机修改hostname,需要修改两个文件,命令如下。

vim /etc/hostname 
vim /etc/hosts

修改后,启动Master,再启动Slave连接spark://new_host_name:7077,依然报错。猜测是连接不到new_host_name,改为启动Slave连接spark://master_ip:7077,依然报错。猜测是连接不到new_host_name,改为启动Slave连接spark

用nmap确认能连接Master主机端口7077

那么,是不是Master的7077端口不能连接呢?下载nmap工具(apt install nmap),在Slave主机用如下命令测试:

nmap -p 7077 master_ip

确认7077端口是可以连接的。

python环境

笔者环境中默认是python版本是2.7,而笔者用virtualenv将Spark运行在Python3.5环境中。
这里无论是用python2.7还是Python3.5的virtualenv,都不能解决问题。

JDK配置

笔者的JAVA_HOME,CLASSPATH,PATH都写在~/.bashrc,这里用source命令重新使能这几个环境变量。依然无法解决问题。

修改Spark配置文件

在stackoverflow上,笔者还查到了大量修改conf/spark-env.sh的做法,如这里。这些修改都分别在Master和Slave都做了,还是没法解决问题。

添加master启动参数

最后,在stackoverflow上发现了一个很小众的答案,修改了Master的启动方法:

./sbin/start-master.sh -h master_ip

成功启动后,可以通过http://master_ip:8080/连接到Master的UI,并在页面中找到URL为spark://master_ip:7077。注意这里的URL已经由spark://host_name:7077变为spark://master_ip:7077。

然后,通过如下命令,成功启动了Slave!!

./sbin/start-slave.sh spark://master_ip:7077

结论

Best Practice:用-h参数启动Master,连接到Master的UI,确保URL是spark://master_ip:7077,而非spark://host_name:7077。这样Slave连接Master的问题不会再出现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Spark报错不能连接到Server的解决办法(Failed to connect to master master_hostname:7077) 的相关文章

  • Spark基础知识(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 一 Spark概述 Spark模块 Core SQL Streami
  • 【Spark NLP】第 3 章:Apache Spark 上的 NLP

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • SparkSession和sparkSQL

    一 概述 spark 有三大引擎 spark core sparkSQL sparkStreaming spark core 的关键抽象是 SparkContext RDD SparkSQL 的关键抽象是 SparkSession Data
  • Spark数据处理实战之列空值&新增列处理

    在spark dataset dataframe操作过程中 我们经常会遇到对于一个列值的一些判断情况 是否为NULL 创建一个新列等 本文讲解了常用的增加列的方法 并且对于列空值判断 填充处理以及查询的api做了详细的描述和实例讲解 阅读完
  • Spark课程设计——电影推荐系统

    题目所需数据集及相应信息描述 数据集 1 用户评分数据集ratings dat 包含了大量用户的历史评分数据 2 样本评分数据集personalRatings dat 包含了少数几个用户的个性化评分数据 这些数据反映了某个用户的个性化观影喜
  • pyspark 连接远程hive集群配置

    今天本地spark连接远程hive集群 直接把配置导入进去 本地直接应用远程环境 1 安装spark 设置spark环境变量 2 拿到远程集群配置文件 将配置文件放在spark conf 目录下 xml 一共五个文件 3 将mysql co
  • cdh下spark2-yarn运行sparkstreaming获取kafka数据使用spark-streaming-kafka-0-10_2.11报错解决

    报错问题 20 07 15 17 20 51 INFO utils AppInfoParser Kafka version 0 9 0 kafka 2 0 0 20 07 15 17 20 51 INFO utils AppInfoPars
  • LightGBM参数介绍

    Xgboost和LightGBM部分参数对照 Xgboots LightGbm booster default gbtree boosting default gbdt eta default 0 3 learning rate defau
  • SparkSQL HiveSQL 常用正则表达式

    SparkSQL HiveSQL 常用正则表达式 目录 SparkSQL HiveSQL 常用正则表达式 1 匹配汉字 2 匹配手机号码 3 匹配身份证 4 SparkSQL HiveSQL 常用正则函数 5 SparkSQL 分组 聚合
  • Kafka/Spark消费topic到写出到topic

    1 Kafka的工具类 1 1 从kafka消费数据的方法 消费者代码 def getKafkaDStream ssc StreamingContext topic String groupId String consumerConfigs
  • 大数据相关常用软件下载地址集锦

    文章目录 每日一句正能量 前言 一 软件下载地址如下 二 文档地址如下 结语 每日一句正能量 生命中有一些人与我们擦肩了 却来不及遇见 遇见了 却来不及相识 相识了 却来不及熟悉 熟悉了 却还是要说再见 前言 由于大数据开发中经常需要用到Z
  • dolphinschedule使用shell任务结束状态研究

    背景 配置的dolphin任务 使用的是shell shell里包含了spark submit 如下截图 dolphin shell 介绍完毕 开始说明现象 有天有人调整了集群的cdp配置 executor cores max 1 我之前这
  • Spark SQL 之 Temporary View

    Spark SQL 之 Temporary View spark SQL的 temporary view 是支持原生SQL 的方式之一 spark SQL的 DataFrame 和 DataSet 均可以通过注册 temporary vie
  • 如何使用 Whisper 和 Spleeter AI 工具制作卡拉 OK 视频

    介绍 人工智能工具可用于处理图像 音频或视频以产生新颖的结果 直到最近 在不使用大量时间和计算能力的情况下 自动编辑图像或音频仍然具有挑战性 即使如此 通常也只能运行交钥匙滤波器来删除声音中的某些频率或更改图像的调色板 较新的方法使用人工智
  • 【Spark NLP】第 7 章:分类和回归

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • spark-submit 报错 Initial job has not accepted any resources

    spark submit 报这样的错误 WARN scheduler TaskSchedulerImpl Initial job has not accepted any resources check your cluster UI to
  • 11.Linux下Spark的安装配置以及spark-shell的启动和 Spark集群环境搭建

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 安装Spark 1 先用xftp将安装包传到home hadoo
  • sparkstreamming 消费kafka(2)

    spark streaming提供了两种获取方式 一种是同storm一样 实时读取缓存到内存中 另一种是定时批量读取 这两种方式分别是 Receiver base Direct 一 Receiver base Spark官方最先提供了基于R
  • spark hadoop环境及运行

    hadoop配置 在Ubuntu20 04里安装Hadoop详细步骤 图文 亲测成功 ubuntu20 04安装hadoop 菜鸡的学习之路的博客 CSDN博客 启动hadoop root ubuntu usr local hadoop s
  • Spark SQL 项目:实现各区域热门商品前N统计

    一 需求1 1 需求简介这里的热门商品是从点击量的维度来看的 计算各个区域前三大热门商品 并备注上每个商品在主要城市中的分布比例 超过两个城市用其他显示 1 2 思路分析使用 sql 来完成 碰到复杂的需求 可以使用 udf 或 udaf查

随机推荐

  • 服务器 文件类型,linux服务器支持的文件类型

    linux服务器支持的文件类型 内容精选 换一换 弹性云服务器卸载磁盘 弹性云服务器状态为stopped时支持系统盘 也就是 dev sda挂载点 和用户盘的卸载 没有操作系统限制 也不需要在弹性云服务器内部安装vmtools 弹性云服务器
  • 【深度解析→博文总结】李宏毅机器学习2023作业01Regression(COVID-19 Cases Prediction)

    文章目录 系列文章 简要说明 视频分享 作业详情 调参记录 Simple Baseline 1 96993 Medium Baseline 1 15678 Strong Baseline 0 92619 Boss Baseline 0 81
  • Seata1.2.0配置及分布式事务失效解决

    配置 版本说明 springCloud Alibaba组件版本关系 我用的是 cloud Alibaba 2 2 1 RELEASE springboot 2 2 5 RELEASE nacos 1 2 1 seata1 2 0 1 配置数
  • booth算法

    booth算法 1 booth算法定义 2 二进制乘法过程 3 二进制乘法转换成 booth乘法运算 4 Radix 2 Booth乘法器 5 Radix 4 Booth乘法器 6 Booth乘法器计算实例 1 booth算法定义 将乘数看
  • 【CV】图像分类中的细粒度/粗粒度怎么理解

    粗粒度图像分类 类别之间差异大 比如人 汽车 树 细粒度图像分类 类别之间差异小 比如200种鸟的分类 100种花的分类 由于细粒度类别属于同一个大类 所以各类别之间的差距很小 这些细微的差距容易被光照 颜色 背景 形状和位置等变化因素覆盖
  • Python作图——numpy库和matplotlib库

    一 numpy库 1 1概述 numpy是一个存储和处理多维数组 矩阵等的库 提供多种关于数组运算的数学函数 可供直接调用 1 1 1数据类型 numpy的数据类型包括整型 浮点型 复数型 布尔型等 在IDLE查询numpy支持的数据类型
  • MATLAB .dat读、存及简单处理

    文章目录 0 前言 1 思路 2 MATLAB 3 结语 0 前言 近期接触到二进制文件 dat 写一个简单的教程 假设文件内容为连续的通信数据 含有不符合的数据 对其进行简单剔除 1 思路 假设输入 dat文件共有3个整帧数据 每帧长度5
  • 机器学习(归一化、去中心化、标准化)

    为什么要进行数据的预处理 这需要分两种情况说明 1 数据数值很大 2 数据数值很小 1 首先 对于一个数值非常之大的特征 T 若其数值非常之大 区间也非常之大 例如区间范围为 10 10 10 20 以线性拟合函数举例 显然我们在进行机器学
  • Android:JNI调用C++自定义类的详细方法

    一般情况下 我们都是用 JNI 调用 C 的某个方法的代码 包括直接使用 android studio 生成的代码也是如此 但有时我们需要新建 或者得到的是 C 的一个自定义类 在调用时就不能像调用 C 方法那样了 查阅了一部分其他人的博客
  • 学习笔记五:电路设计需要注意的那些事

    注意One part 电路中电源VBAT须要先经过滤波电容再到芯片的VBAT引脚 芯片时钟端走线尽量不要靠近电源走线 避免对电源走线产生纹波的干扰 需要隔离地处理 天线走50欧姆的阻抗设计 走线两侧距离30mil处添加过孔 最好用第三层GN
  • Adobe MAX 2020:最新版Photoshop提供AI智能神经滤镜及天空替换等功能

    数据猿年度重磅活动预告 2020年度金猿策划活动 金猿榜单发布 金猿奖杯颁发 即将推出 尽情咨询期待 大数据产业创新服务媒体 聚焦数据 改变商业 数据报道 受新冠疫情影响 今年的Adobe MAX 2020 于北京时间10月21日改为了线上
  • 一个优秀的程序员真的能顶10个普通的程序员吗?

    一个优秀的程序员真的能顶10个普通的程序员吗 一 前言 优秀的程序员 比糟糕的程序员的工作产出高100倍 二 糟糕程序员会有哪些表现 1 无法对代码进行推理 2 没有补救措施 3 代码难以改动 三 优秀程序员是怎么做的呢 1 先进行实验是他
  • Java+SSM+Vue 毕业设计 游戏攻略资讯补丁售卖商城(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 3 系统结构设计 4 项目获取 1 项目简介 Hi 各位同学好呀 这里是M学姐 今天向大家分享一个今年 2022 最新完成的毕业设计项
  • Win32学习笔记(16)消息类型

    1 消息的产生与处理流程 如上图 我们在创建窗口程序中详细介绍了这张图 比如 我们点击某个窗口的时候就会产生消息 操作系统会先判断这个消息是点在了哪个窗口 找到窗口后 会根据窗口对象中的一个成员找到窗口是属于哪个线程的 找到后就会把他封装好
  • 从零开始搭建一个 React 项目 -- 配置篇(一)

    从零开始搭建一个 React 项目 配置篇 一 参考资源 从零搭建完整的React项目模板 Webpack React hooks Mobx Antd 1 项目初始化及常用以来安装配置 1 创建名为 react admin demo 的目录
  • python虚拟环境配置、Python代码打包成exe可执行文件

    背景 因工作需要 要打包一些脚本使其成为exe文件 方便未安装python环境的电脑运行脚本 但是直接使用默认环境的话 会有很多的包 但是其实这个脚本根本用不到 导致生成的exe文件很大或者直接打包失败 所以创建一个虚拟环境 只安装该代码需
  • socket套接字,粘包问题

    目录 scoket套接字 socket工作流程 TCP服务端 TCP客户端 基于TCP 的SOCKET服务端与客户端 基础版本 客户端 加入连接循环 加入通信循环 支持并发的TCP服务端 常见问题 半连接池 粘包问题 TCP协议的特点 解决
  • OpenAI开源!!Whisper语音识别实战!!【环境配置+代码实现】

    目录 环境配置 代码实现 实现 mp4转换为 wav文件 识别后进行关键词匹配并输出关键词出现的次数 完整代码实现请私信 环境配置 安装 ffmpeg 打开网址 https github com BtbN FFmpeg Builds rel
  • vue使用svg自定义icon图标

    1 安装 svg sprite loader svg sprite loader 是用于创建SVG精灵图的Webpack加载程序 通过该插件可以将导入的SVG文件自动生成为symbol标签并插入进html中 安装语句如下 npm insta
  • 关于Spark报错不能连接到Server的解决办法(Failed to connect to master master_hostname:7077)

    问题产生 Spark集群 即可以基于Mesos或YARN来部署 也可以用自带的集群管理器 部署于standalone模式下 笔者在部署standalone模式时 首先 通过如下命令 启动了Master sbin start master s