Spark集群中一个Worker启动失败的排错记录
文章目录
- 1 检查失败节点worker启动日志
- 2 检查正常节点worker启动日志
- 3 查看正常节点spark环境配置
- 4 又出现新的ERROR
- 4.1 报错解释
- 4.2 报错解决思路
- 4.3 端口报错解决操作
集群下电停机后再次启动时,发现其中一台节点的worker
启动失败。
1 检查失败节点worker启动日志
检查启动日志报以下错:
Spark Command: bin/java -cp /opt/hdSpace/spark/conf/:/opt/hdSpace/spark/jars/*:/opt/hdSpace/hadoop/etcihadoop/ -Dspark.deploy.recoveryode=Z00KEEPER -Dspark,deploy .zookeeper,url=hadoop01,hadoop02,hadoop03-Dspark.deploy.zookeeper.dir=/spark -Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval-86400
-Dspark.worker.cleanup.appDataTtl-259200 -Xmx1g org.apache. spark.deploy.worker,orker --webui-port 8081
spark://hadoop01:7077
======================================
/opt/hdSpace/spark/bin/spark-class: line 99: /opt/hdSpace/spark/bin/java: No such file or directory
根据/opt/hdSpace/spark/bin/java: No such file or directory
,问题定位大致是目录的原因,涉及到jdk的目录,这里将jdk目录解析到了spark目录下,而spark/bin/java
中根本没有jdk。
2 检查正常节点worker启动日志
于是找一台正常启动worker
的节点查看日志:
Spark Command: /opt/java8/bin/java
只看第一行的前半句日志,jdk目录的配置似乎出现了问题。
于是检查spark-env.sh
。
发现JAVA_HOME
的配置写的是变量:
export JAVA_HOME=${JAVA_HOME}
于是echo一下:
# echo ${JAVA_HOME}
/opt/java8
看上去是没问题的,因为这里确实是jdk的目录。
此时,需要和其他节点的配置做一个对比,因为这套集群的spark并不是我安装的,spark配置文件的分发我不能保证正确。
3 查看正常节点spark环境配置
再次查看一台其他正常启动的worker
的spark-env.sh
:
export JAVA_HOME=/opt/java8
这里写的是绝对路径,于是将失败节点也配置为了绝对路径,再次启动worker
,该目录问题解决。
- 经过对比检查,解决了jdk目录的问题。
4 又出现新的ERROR
INFO ExternalShuffleService:54 - Starting shuffle service on port 7337 (auth enabled = false)
ERROR Worker:91 - Failed to start external shuffle service
java.net.BindException: Address already in useat sun.nio.ch.NET.bind0...
4.1 报错解释
这是因为端口7337被占用了,端口 7337 在 Spark Cluster 模式中通常用于 Spark 的 Executor 进程之间进行通信。Executor 进程是 Spark 应用程序的工作单元,它们负责执行 Spark 任务,并将结果返回给 Driver 程序。Executor 之间需要进行数据交换和通信,而端口 7337 通常用于这些通信。当进行Shuffle操作(如reduceByKey或groupByKey)时,数据需要从不同的 Executor 之间传输,以进行数据重组。这也可能涉及到端口 7337。
4.2 报错解决思路
此时需要查看端口(例如 7337 端口)的网络连接,可以使用 netstat
命令或 ss
命令。
使用 netstat
命令:
netstat -tuln | grep 7337
上述命令将显示所有监听(-l
)的UDP(-u
)和TCP(-t
)连接,然后使用 grep
过滤出包含 “7337” 的行,这些行表示占用了 7337 端口的连接。
使用 ss
命令:
ss -tuln | grep 7337
与 netstat
类似,这个命令也会列出占用 7337 端口的网络连接。
这将显示占用 7337 端口的网络连接的相关信息,包括本地地址、远程地址等。如果有进程正在使用这个端口,可以从相关的信息中找到它。
4.3 端口报错解决操作
[root@hadoop10 logs]# lsof -i:7337
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 24611 root IPv6 108223 0t0 TCP *:7337 (LISTEN)
[root@hadoop10 logs]# kill -9 24611
[root@hadoop10 logs]# ss -tuln grep 7337
[root@hadoop10 logs]# jps
24448 DataNode
25089 HRegionServer
35141 Jps
34890 Worker
将占用端口kill掉后,重新启动spark节点,worker
启动成功。
相关文章:

Spark集群中一个Worker启动失败的排错记录
文章目录 1 检查失败节点worker启动日志2 检查正常节点worker启动日志3 查看正常节点spark环境配置4 又出现新的ERROR4.1 报错解释4.2 报错解决思路4.3 端口报错解决操作 集群下电停机后再次启动时,发现其中一台节点的worker启动失败。 1 检查失败节点worker启动日…...
Mysql的JDBC知识点
什么是JDBC JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语…...

git的实际操作
文章目录 删除GitHub上的某个文件夹克隆仓库到另一个仓库 删除GitHub上的某个文件夹 克隆仓库到另一个仓库 从原地址克隆一份裸板仓库 –bare创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库 git clone --bare ****(原…...

数据结构零基础C语言版 严蔚敏-线性表、顺序表
二、顺序表和链表 1. 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构,…...

Keil uVision 5 MDK版软件安装包下载及安装教程(最详细图文教程)
目录 一.简介 二.安装步骤 软件:Keil uvision5版本:MDKv518语言:中文/英文大小:377.01M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.59GHz 内存4G(或更高)下载通道①百度网盘丨64位下载链接…...

单目3D目标检测[基于深度辅助篇]
基于深度辅助的方法 1. Pseudo-LiDAR Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving康奈尔大学https://zhuanlan.zhihu.com/p/52803631 首先利用DRON或PSMNET从单目 (Monocular)或双目 (Stereo)图像获取对应的…...

Ubuntu20.04下安装MySQL8环境
Ubuntu20.04下安装MySQL8环境 1.下载MySQL客户端和服务器2.配置MySQL3.测试MySQL4.设置MySQL服务开机自启动5.修改root密码MySQL数据库基本使用启动MySQL数据库服务重启MySQL数据库服务停止MySQL数据库服务查看MySQL运行状态设置MySQL服务开机自启动停止MySQL服务开机自启动MyS…...
html鼠标悬停图片放大
要在HTML中实现鼠标悬停时图片放大的效果,你可以使用CSS和JavaScript来完成。下面是一个简单的示例: 首先,创建一个HTML文档,包含一张图片和相应的CSS和JavaScript代码。 <!DOCTYPE html> <html lang"en">…...

基于hugging face的autogptq量化实践
1.量化并保存到本地的 #导入库: from transformers import AutoModelForCausalLM, AutoTokenizer, GPTQConfig model_id "facebook/opt-125m"quantization_config GPTQConfig(bits4,group_size128,dataset"c4",desc_actFalse, )tokenizer A…...

MySQL2:MySQL中一条查询SQL是如何执行的?
MySQL2:MySQL中一条查询SQL是如何执行的? MySQL中一条查询SQL是如何执行的?1.连接怎么查看MySQL当前有多少个连接?思考:为什么连接数是查看线程?客户端的连接和服务端的线程有什么关系?MySQL参数…...

C++入门01—从hello word!开始
1.第一个C程序 1.1 创建项目 第一次使用Visual Studio时: 1.2 创建文件 1.3 编写代码 编写第一个代码: #include<iostream> using namespace std; int main() {cout << "hello word!" << endl;system("pause"…...

Mingw下载---运行vscodeC++文件
下载 下载网址: https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/ 翻到最下面,选择win64的安装: 下载完,解压到没有空格和中文字符的路径。不然在vscode中运行不了C代码。...

数据安全与PostgreSQL:最佳保护策略
在当今数字化时代,数据安全成为了企业不可或缺的一环。特别是对于使用数据库管理系统(DBMS)的组织来说,确保数据的完整性、保密性和可用性至关重要。在众多DBMS中,PostgreSQL作为一个强大而灵活的开源数据库系统&#…...

火山引擎实时、低延时拥塞控制算法的优化实践
摘要 火山引擎智能拥塞控制算法 VICC(Volcano Intelligent Congestion Control)是一种自适应的拥塞控制算法,旨在解决全球不同网络环境下,不同音视频应用对带宽利用率和延时的差异化要求。它结合了传统拥塞控制算法(如…...
adb设备调试常用命令
自从工作越来越忙后,越来越懒得写文章了,趁着1024程序员节,仪式性地写篇文章,分享一下最近调试设备经常用到的adb指令~ 1.查看应用内存占用 1.1 dumpsys meminfo package dumpsys是查看系统服务信息的一个常用指令,可…...
ubuntu下Docker的简单使用并利用主机显示
首先分享一个docker镜像的网站:https://hub.docker.com/search?q 这个网站里面有很多配置好的镜像,可以直接拉取。 下面介绍一下docker的安装和使用。 1、docker得到安装: sudo apt-get install docker 2、docker拉取一个镜像到本地,这里我…...

第12章 PyTorch图像分割代码框架-1
从本章开始,本书将会进行深度学习图像分割的实战阶段。PyTorch作为目前最为流行的一款深度学习计算框架,在计算机视觉和图像分割任务中已经广泛使用。本章将介绍基于PyTorch的深度学习图像分割代码框架,在总体框架的基础上,基于PA…...
2023CSPJ 旅游巴士 —— dijkstra
This way 题意: 给你一个有向图,1号点为起点,n为终点。你可以在k的倍数的时间点在起点开始,每条边的边长为1,同时,每条边有一个限定时间ai,表示你必须在大于等于ai的时间点才能走这条边。 …...

数据结构之栈的讲解(源代码+图解+习题)
我们在学习过顺序表和链表之后,了解了使用数组存储数据,使用结构体来存储数据和有关的指针,这些都是底层的东西,链表是靠指针的链接,顺序表是靠数组的下标才能得以实现增删查改。众多数据结构其实底层都离不开数组&…...

内网渗透-内网信息收集
内网信息收集 前言 当我们进行外网信息收集,漏洞探测以及漏洞利用后,获得了主机的权限后,我们需要扩大渗透的战果时,这是我们就要进行内网的渗透了,内网渗透最重要的还是前期的信息收集的操作了,就是我们的…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...