`

storm worker异常重启原因排查汇总

阅读更多

此时此刻,正在等到6.18的到来,趁着没事写个博客,,,酷

 

storm集群在worker down掉以后会自动启动新的woker,但是有很多情况下是感觉不应该重启的时候,woker重启了,因此就走上了排查woker重启的道路上~

 

一、排查思路

经过排查,主要总结有以下几种问题,会导致woker重启:

1. 代码有未捕获的异常

如下例子,因为处理的数据有异常,并且在代码中没有捕获异常,这样Exception被抛给了JVM,导致woker down掉。

对于这样的异常,可以在storm UI界面看到相应的异常信息,因此,排查问题时,可以首先看UI中是否有异常抛出。

 

java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "赠品"
    at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:90)
    at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:61)
    at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:62)
    at backtype.storm.daemon.executor$fn__3498$fn__3510$fn__3557.invoke(executor.clj:730)
    at backtype.storm.util$async_loop$fn__444.invoke(util.clj:403)
    at clojure.lang.AFn.run(AFn.java:24)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NumberFormatException: For input string: "赠品"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Long.parseLong(Long.java:410)
    at java.lang.Long.parseLong(Long.java:468)
    at com.jd.ad.user.service.impl.UserOrderEntireUpdateServiceImpl.processUserOrderEntireData(UserOrderEntireUpdateServiceImpl.java:96)
    at com.jd.a

 

2、JVM 内存溢出

关于这个问题,没有保留下来当初的现场,主要是由于各种原因导致JVM的垃圾回收机制有问题,最终导致内存溢出,这个问题,也会导致woker退出。

对于此类异常,跟1中的一样,也可以在UI界面中看到的,这个需要具体排查JVM内存溢出的原因。

 

3、woker 无问题,supervisor重启woker

对于1和2中的问题,抛出来的异常信息都可以在UI界面中以及woker的日志文件中查找到,但是,我们还遇到了另一种情况,就是在woker中找不到任何的异常信息,但是总是随机的会有woker重启。

 

因为woker中找不到异常信息,这时候就需要查看supervisor中的log信息了,因为supervisor会对本机上的woker中的状态信息进行监控,并且woker的重启也是由supervisor操作的。

 

此时,查看supervisor中的日志信息可以看到以下内容:

2017-06-17 23:36:08 b.s.d.supervisor [INFO] Shutting down and clearing state for id 867ed61b-a9d5-423e-bb0b-b2e428369140. 
Current supervisor time: 1497713767. State: :timed-out, 
Heartbeat: #backtype.storm.daemon.common.WorkerHeartbeat{:time-secs 1497713735, :storm-id "data_process_1-170-1497518898", 
:executors #{[578 578] [868 868] [1158 1158] [1448 1448] [1738 1738] [-1 -1] [288 288]}, :port 6716}

 因此,可以判断为是由于supervisor获取状态信息timeout超时(其实supervisor是获取谁的状态信息,这点还不明确,因为woker的状态信息是在本地文件系统中的,难道是获取executor的状态?这点希望大家拍砖吐槽),导致把woker shut down 了,然后重启了woker。并且此时查看机器的状态,发现zookeeper的机器的CPU负载,会偶尔出现不稳定的状态。如下图:

 

 

因此,可以断定是由于supervisor获取状态信息超时导致的。

 

跟运维沟通,zookeeper的3台机器是跟supervisor部署在同一台机器上面的,因此会造成机器不稳定的情况出现。

 

平稳度过618,准备回家了。

 


 

 

 

 

 

 

 

  • 大小: 25.9 KB
1
2
分享到:
评论

相关推荐

    8051Proteus仿真c源码用LCD循环右移显示WelcometoChina

    8051Proteus仿真c源码用LCD循环右移显示Welcome to China提取方式是百度网盘分享地址

    8051Proteus仿真c源码万能逻辑电路实验

    8051Proteus仿真c源码万能逻辑电路实验提取方式是百度网盘分享地址

    8051Proteus仿真c源码基于ADC0832的数字电压表

    8051Proteus仿真c源码基于ADC0832的数字电压表提取方式是百度网盘分享地址

    水空两用无人机动力系统设计与研究.pdf

    水空两用无人机动力系统设计与研究.pdf

    8888888yyyyyyy

    999999999yyyyyyy

    8051Proteus仿真c源码温度控制的实例

    8051Proteus仿真c源码温度控制的实例提取方式是百度网盘分享地址

    基于java项目开发人脸识别代码.zip

    基于java项目开发人脸识别代码.zip

    基于Mnist数据集生成用于(多)目标检测的小型数据集.zip

    1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R

    个人毕业设计_电脑售后管理系统_Springboot+Mybatis-plus+Vue前后端分离_

    个人毕业设计_电脑售后管理系统_Springboot+Mybatis-plus+Vue前后端分离_springboot-vue-CASMS

    模型基础班预习课件.zip

    模型基础班预习课件.zip

    8051Proteus仿真c源码简易交通灯的设计

    8051Proteus仿真c源码简易交通灯的设计提取方式是百度网盘分享地址

    “Mnsaas多端SAAS平台运营系统”接入微信开放平台,微信公众号管理及微信小程序一键授权发布、具备多租户管理等等

    “Mnsaas多端SAAS平台运营系统”接入微信开放平台(第三方服务商),微信公众号管理及微信小程序一键授权发布、具备多租户管理、多应用上架购买、多终端(公众号,H5,小程序,PC,APP)可接入、强大的权限节点控制(管理员权限,租户及租户应用权限)、 强大的一键CRUD生成代码(页面JS,控制器controller,模型及关联模型model)、采用Tinkphp6框架及Element ui等等

    ggggggggggggggggggggggg

    hhhhhhhhhhhhhhhhhhhhhhhhhh

    tttttttttttttuuuuuuuuuuuuuuuuuuuuuu

    yyyyyyyyyyyyyyyyyyyy

    基于STM32的水位检测自动控制系统 支持: 水位检测、水温检测、水泵控制、水温水位数据分析、已连接阿里云服务器、有手机端APP

    基于STM32的水位检测自动控制系统 支持: 水位检测、水温检测、水泵控制、水温水位数据分析、已连接阿里云服务器、有手机端APP 水位检测: 超声波模块 水温检测: 温度传感器DS18B20 内容: 原理图、PCB文件、程序源码、服务器配置资料、模块参考资料

    8051Proteus仿真c源码红外遥控模拟

    8051Proteus仿真c源码红外遥控模拟提取方式是百度网盘分享地址

    MISRA C 2023 编码标准&规范指南

    MISRA C 2023 编码标准&规范指南(MISRA C2012的2023修订版)。每一条规则都非常详细(包含规则说明、违规代码示例、修复代码示例、参考说明等)。 使用时打开主页面“MISRAC2012.html”即可看到所有编码规则的目录,点击相关条目链接即可跳转至相关规则的详细说明。

    动态系统分析:数学模型的应用与实践

    动态系统是指随时间演变的系统,其状态或输出不仅取决于当前的输入,还取决于系统的历史状态。这类系统在工程、物理、生物、经济和社会科学中非常普遍。数学模型是理解和分析动态系统的重要工具,它们可以帮助我们预测系统行为、设计控制器和优化系统性能。本文将详细介绍如何使用数学模型进行动态系统分析,包括动态系统的基本概念、常用的数学模型、模型构建和分析方法,以及实际应用案例。 动态系统分析是理解和预测系统行为的重要工具。通过使用数学模型,我们可以有效地分析和预测动态系统的行为。本文详细介绍了动态系统分析的基本概念、数学模型、分析方法和实际应用案例,为读者提供了一个全面的动态系统分析指南。 随着技术的发展,动态系统分析将在更多领域发挥重要作用,如自动驾驶汽车的控制、经济系统的预测、生物系统的建模等。

    使用yolov5作为目标检测器,deepsort作为跟踪器,使用flask部署到web前端的一个项目.zip

    1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R

    8051Proteus仿真c源码用T0控制LED灯闪烁间隔

    8051Proteus仿真c源码用T0控制LED灯闪烁间隔提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics