Flink线上问题: The assigned slot container_xxx was removed

article/2025/10/6 11:00:35

Flink线上问题: The assigned slot container_xxx was removed


客户现场使用Flink(on Yarn)进行数据抽取,Source是JDBC,Sink是Kafka,客户反映流程差不多跑10天左右就挂,让我看看.

环境:

Flink: 1.5.2

jdk: 1.8.0_25

Hadoop: 2.4.1

jobmanger和TaskManger都分配1G内存

首先我看了一下我们系统收集到的日志,有2段可能有用.

第一段:

2019-12-26 08:42:42,157 WARN  akka.remote.ReliableDeliverySupervisor                        - Association with remote system [akka.tcp://flink@tdh04:46540] has failed, address is now gated for [50] ms. Reason: [Disassociated] 
2019-12-26 08:42:42,877 INFO  org.apache.flink.yarn.YarnResourceManager                     - Closing TaskExecutor connection container_1576488269936_0008_01_000008 because: Exception from container-launch.
Container id: container_e05_1576488269936_0008_01_000008
Exit code: 255
Stack trace: ExitCodeException exitCode=255: at org.apache.hadoop.util.Shell.runCommand(Shell.java:585)at org.apache.hadoop.util.Shell.run(Shell.java:482)at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:776)at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 255

第二段:

2019-12-26 08:42:42,877 INFO  org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager  - Unregister TaskManager f4660fcc70ee329e2427b5ed1245aa83 from the SlotManager.
2019-12-26 08:42:42,878 INFO  org.apache.flink.runtime.executiongraph.ExecutionGraph        - Source: JDBC Source -> Timestamps/Watermarks -> sink_0_projection -> 数据输出_0_CheckOutputTypeFunction -> Sink: Unnamed (1/1) (96b3d4c2da227693ac34a8e8d2a4abea) switched from RUNNING to FAILED.
org.apache.flink.util.FlinkException: The assigned slot container_1576488269936_0008_01_000008_0 was removed.at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlot(SlotManager.java:786)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlots(SlotManager.java:756)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.internalUnregisterTaskManager(SlotManager.java:948)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.unregisterTaskManager(SlotManager.java:372)at org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection(ResourceManager.java:793)at org.apache.flink.yarn.YarnResourceManager.lambda$onContainersCompleted$0(YarnResourceManager.java:339)at org.apache.flink.yarn.YarnResourceManager$$Lambda$212/930337248.run(Unknown Source)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:332)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:158)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:70)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.onReceive(AkkaRpcActor.java:142)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.onReceive(FencedAkkaRpcActor.java:40)at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)at akka.actor.Actor$class.aroundReceive(Actor.scala:502)at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)at akka.actor.ActorCell.invoke(ActorCell.scala:495)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)at akka.dispatch.Mailbox.run(Mailbox.scala:224)at akka.dispatch.Mailbox.exec(Mailbox.scala:234)at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
2019-12-26 08:42:42,879 INFO  org.apache.flink.runtime.checkpoint.CheckpointCoordinator     - Discarding checkpoint 82951 of job 42983ed24d98360747a8a535f2a3c8ba because: The assigned slot container_1576488269936_0008_01_000008_0 was removed.
2019-12-26 08:42:42,879 INFO  org.apache.flink.runtime.executiongraph.ExecutionGraph        - Job flow_1575462616880_0011 (42983ed24d98360747a8a535f2a3c8ba) switched from state RUNNING to FAILING.
org.apache.flink.util.FlinkException: The assigned slot container_1576488269936_0008_01_000008_0 was removed.at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlot(SlotManager.java:786)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlots(SlotManager.java:756)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.internalUnregisterTaskManager(SlotManager.java:948)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.unregisterTaskManager(SlotManager.java:372)at org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection(ResourceManager.java:793)at org.apache.flink.yarn.YarnResourceManager.lambda$onContainersCompleted$0(YarnResourceManager.java:339)at org.apache.flink.yarn.YarnResourceManager$$Lambda$212/930337248.run(Unknown Source)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:332)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:158)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:70)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.onReceive(AkkaRpcActor.java:142)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.onReceive(FencedAkkaRpcActor.java:40)at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)at akka.actor.Actor$class.aroundReceive(Actor.scala:502)at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)at akka.actor.ActorCell.invoke(ActorCell.scala:495)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)at akka.dispatch.Mailbox.run(Mailbox.scala:224)at akka.dispatch.Mailbox.exec(Mailbox.scala:234)at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
2019-12-26 08:42:42,882 INFO  org.apache.flink.runtime.executiongraph.ExecutionGraph        - Try to restart or fail the job flow_1575462616880_0011 (42983ed24d98360747a8a535f2a3c8ba) if no longer possible.
2019-12-26 08:42:42,882 INFO  org.apache.flink.runtime.executiongraph.ExecutionGraph        - Job flow_1575462616880_0011 (42983ed24d98360747a8a535f2a3c8ba) switched from state FAILING to FAILED.
org.apache.flink.util.FlinkException: The assigned slot container_1576488269936_0008_01_000008_0 was removed.at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlot(SlotManager.java:786)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlots(SlotManager.java:756)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.internalUnregisterTaskManager(SlotManager.java:948)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.unregisterTaskManager(SlotManager.java:372)at org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection(ResourceManager.java:793)at org.apache.flink.yarn.YarnResourceManager.lambda$onContainersCompleted$0(YarnResourceManager.java:339)at org.apache.flink.yarn.YarnResourceManager$$Lambda$212/930337248.run(Unknown Source)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:332)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:158)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:70)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.onReceive(AkkaRpcActor.java:142)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.onReceive(FencedAkkaRpcActor.java:40)at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)at akka.actor.Actor$class.aroundReceive(Actor.scala:502)at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)at akka.actor.ActorCell.invoke(ActorCell.scala:495)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)at akka.dispatch.Mailbox.run(Mailbox.scala:224)at akka.dispatch.Mailbox.exec(Mailbox.scala:234)at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
2019-12-26 08:42:42,882 INFO  org.apache.flink.runtime.executiongraph.ExecutionGraph        - Could not restart the job flow_1575462616880_0011 (42983ed24d98360747a8a535f2a3c8ba) because the restart strategy prevented it.
org.apache.flink.util.FlinkException: The assigned slot container_1576488269936_0008_01_000008_0 was removed.at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlot(SlotManager.java:786)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlots(SlotManager.java:756)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.internalUnregisterTaskManager(SlotManager.java:948)at org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.unregisterTaskManager(SlotManager.java:372)at org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection(ResourceManager.java:793)at org.apache.flink.yarn.YarnResourceManager.lambda$onContainersCompleted$0(YarnResourceManager.java:339)at org.apache.flink.yarn.YarnResourceManager$$Lambda$212/930337248.run(Unknown Source)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:332)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:158)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:70)at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.onReceive(AkkaRpcActor.java:142)at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.onReceive(FencedAkkaRpcActor.java:40)at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)at akka.actor.Actor$class.aroundReceive(Actor.scala:502)at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)at akka.actor.ActorCell.invoke(ActorCell.scala:495)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)at akka.dispatch.Mailbox.run(Mailbox.scala:224)at akka.dispatch.Mailbox.exec(Mailbox.scala:234)at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

看完日志能得到的信息非常有限,就知道了container被移除了,至于为什么被移除还不知道.接下来去Yarn上看一下日志.(Yarn要开启日志聚合,第一次让我看问题的时候日志聚合没有开,我把日志聚合打开后告诉他有问题之后再找我)

Yarn上有用的日志:

jobmanager.out

2019-12-26 08:42:44,233 INFO  org.apache.flink.runtime.entrypoint.ClusterEntrypoint         - RECEIVED SIGNAL 15: SIGTERM. Shutting down as requested.

taskmanager.err

SEVERE: Failed to resolve default logging config file: config/java.util.logging.properties
Uncaught error from thread [flink-akka.actor.default-dispatcher-4]: GC overhead limit exceeded, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for for ActorSystem[flink]
java.lang.OutOfMemoryError: GC overhead limit exceededat sun.reflect.AccessorGenerator.emitConstructor(AccessorGenerator.java:429)at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:379)at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112)at sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:340)at java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1376)at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:72)at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:493)at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)at java.security.AccessController.doPrivileged(Native Method)at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:468)at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:602)at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1484)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1334)at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)at org.apache.flink.runtime.rpc.messages.RemoteRpcInvocation$MethodInvocation.readObject(RemoteRpcInvocation.java:204)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:483)at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:502)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:489)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:477)

我按时间先后整理了一下:

2019-12-26 08:42:42,877  Container退出
2019-12-26 08:42:44.084  kill job
2019-12-26 08:42:44,233 ClusterEntrypoint  - RECEIVED SIGNAL 15
2019-12-26 08:42:45,005  FINISH_APPLICATION sent to absent application application_1576488269936_0008

首先是TaskManger的Container退出,其实这时候任务就失败了,由于任务异常结束,系统主动kill Yarn上的任务,所以SIGNAL 15其实是我们自己发的,下面那条其是在Yarn上kill一个已经不存在的任务时发出的警告.

由于没有找到明显导致Container退出的原因,结合以下信息:

  1. 任务可以正常启动
  2. 几乎周期性的失败
  3. akka报的OutOfMemory

猜测可能是存在内存泄露,然后我就去业务代码(不是我写的)里看,看到JDBC PreparedStatement每次都弄个新的,并且没有close,我猜测可能就是它导致的,然后写了一段Demo,如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class JDBC {public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");PreparedStatement preparedStatement;while (true) {preparedStatement = conn.prepareStatement("select count(*) from table_a");ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()) {resultSet.getObject(1);}//preparedStatement.close();//Thread.sleep(10);}}
}

JVM参数:-Xmx100M

使用Visual VM观察内存变化,启动程序后很快就OOM了,所以加了个sleep,通过Visual VM观察老年代一直在增长,后来发生了GC但是也不管用还是OOM了.

更改代码把preparedStatement关闭之后老年代虽然也可以几乎涨满,但是GC过后内存就下来了.

如果不是任务启动的时候因为其他异常比如ClassNotFound导致的The assigned slot container_xxx was removed,并且周期性的出现问题,要优先考虑一下内存泄露.

欢迎关注公众号:大数据开发者
在这里插入图片描述


http://chatgpt.dhexx.cn/article/XLkBB9xI.shtml

相关文章

There‘s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64

Qt系列文章目录 文章目录 Qt系列文章目录前言一、 分析错误原因二、解决步骤1.选择Qt版本2.检查环境变量3.重新构建工程 There’s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64 前言 如果你想了解关于Qt与VS2019开发环境搭建&#xff0c;可以至…

SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析

ABAP里的IS BOUND, IS NOT INITIAL和IS ASSIGNED这组关键字&#xff0c;如果平时不留心&#xff0c;很容易理解地似是而非。今天我们就来说一说它们的区别。 先把SAP帮助文档抄过来&#xff1a; IS BOUND It checks whether a reference variable contains a valid referenc…

【FLink】Assigned key must not be null

1.概述 我的flink任务报错Assigned key must not be null,但是我把keyby用到的字段已经提前做了非空过滤,还是偶尔会报这个错。 还没法复现这个问题。 对应的源码位于 public static int assignToKeyGroup(Object key, int maxParallelism) {Preconditions.checkNotNull(k…

xxx is assigned a value but never used 报错

xxx is assigned a value but never used报错 找到路径 package.json文件 -> devDependencies -> rules 添加以下代码 "rules": {"generator-star-spacing": "off","no-debugger": "off","no-tabs": &quo…

There is no Qt version assigned to project

问题描述&#xff1a;最近从用vs2017Qt5.13编写程序&#xff0c;从一台已经编译好的电脑上拷贝到另外一台有vs2017和Qt5.13环境的电脑&#xff0c;但是问题来了&#xff0c;出现了如下图片的描述&#xff1a; 解决方法&#xff1a;首先检查Qt Project Setting&#xff0c;如果界…

Unity Universal RP asset not assigned

Unity Universal RP asset not assigned 问题解决 问题 项目导入URP后&#xff0c;相机出现这个错误 解决 打开Edit > Project Settings… > Graphics在可脚本渲染管道设置字段中&#xff0c;添加前面创建的通用渲染管道资产。 参考: Unity Doc

IDEA报错private field “xxx“ is never assigned解决

文章目录 1.现象2.解决办法 1.现象 在IDEA中&#xff0c;开发Spring项目时&#xff0c;在一个类中使用Autowired注解注入成员变量时&#xff0c;IDEA会在该成员变量上报类似于如下警告&#xff1a; 一开始还以为是代码哪里配置的有问题&#xff0c;以前也没遇到过啊。 暂时怀…

Computed property was assigned to but it has no setter问题随记

初始代码&#xff1a;弹窗使用dialogtablvisible 但是其他位置改变了这个值 在methods中修改了这个属性的值 当该事件发生时会报这个错误Computed property was assigned to but it has no setter 解决方法其实很简单&#xff0c;组件中定义的computed属性缺少setter,使用过co…

前端开发:Vue报错Computed property “show“ was assigned to but it has no setter的解决方法

前言 在前端开发中,使用Vue的时候关于组件使用是非常常见的操作,而且也会遇到各式各样的问题,尤其是刚接触前端开发的开发者。本篇博文分享一下在封装关于Vue的组件的时候,通过计算属性监听父子组件传值提示警告的问题,即:Computed property "show" was assign…

‘xxx‘ is assigned a value but never used.

报这个错误的原因是eslint中的验证语法导致的 解决办法&#xff0c;在报这个错误行后面加上 // eslint-disable-line no-unused-vars即可解决 解决后如下所示&#xff1a;

identity和assigned 的区别

在使用strutshibernate开发过程中&#xff0c;数据的持久化操作时出现了“org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): ”的错误&#xff0c;首先检查了数据库&#xff0c;发现建表时没有把ID设置成…

EditPlus 安装及注册

EditPlus下载链接 密码&#xff1a;ssam 安装过程&#xff1a; 1、解压下载下来的文件 2、解压EditPlus 3.zip 选择解压到EditPlus 3 3、解压密码为 123456 4、打开解压后的文件夹&#xff0c;根据自己的电脑选择文件夹&#xff0c;32位选择“X86”文件夹&#xff0c;64选择“…

EditPlus注册码在线生成

在线网址&#xff1a;EditPlus注册码在线生成工具 ←←←点击链接 此在线生成页面包含Editplus注册码、MyEclipse注册码、Intellij Idea注册码 随意输入用户名&#xff0c;点击生成注册码按钮就生成了注册码&#xff0c;如上图所示。 非常方便~

2020-12-03_EditPlus下载安装注册

EditPlus下载、安装、激活教程 下载 EditPlus下载地址 安装 傻瓜式安装&#xff0c;每次都点下一步就可以。 激活 EditPlus4注册码 注册名&#xff1a;host1991 序列号&#xff1a;14F50-CD5C8-E13DA-51100-BAFE6 注册名&#xff1a;360xw 注册码&#xff1a;93A52-85B8…

RGB图像转换到CIELab空间的研究及优化

第一次写博客&#xff0c;没有太多经验&#xff0c;初入图像处理方向的炒鸡菜鸟&#xff0c;看着大神们都有自己的博客&#xff0c;而且总是学习大神的文章&#xff0c;心里除了满满的敬佩&#xff0c;还有一丝丝的失落&#xff0c;后悔自己当初读本科时没学计算机方向&#xf…

CIC滤波器的matlab仿真与实现

CIC滤波器的matlab仿真与实现 介绍 在数字信号处理中&#xff0c;由于后级硬件如FPGA的处理速度无法跟上前级ADC的采样速度&#xff0c;因此需要对ADC的采样数据进行降速处理&#xff0c;也就是对采样数据进行抽取&#xff0c;简单的抽取描述就是对其中连续几个点取一个点进行…

RGB颜色空间与Lab颜色空间区别与联系(附转换代码)

RGB颜色空间 RGB颜色是红色&#xff08;Red&#xff09;、绿色&#xff08;Green&#xff09;和蓝色&#xff08;Blue&#xff09;三基色的字母缩写。RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色。这个标准能够涵盖人类视力所能感知的所有颜色&am…

matlab中的xlabel, ylabel, zlabel

随时随地阅读更多技术实战干货&#xff0c;获取项目源码、学习资料&#xff0c;请关注源代码社区公众号(ydmsq666) 标注x&#xff0c;y和z轴 语法 xlabel(string) xlabel(fname) xlabel(...,PropertyName,PropertyValue,...) xlabel(axes_handle,...) h xlabel(...) ylabel…

在CIELab颜色空间下使用八方向Sobel算子实现边缘检测

参考河北师范大学硕士学位论文——基于八方向Sobel算子的边缘检测算法研究。 由于自己实现滤波器运算&#xff0c;计算速度很慢&#xff0c;以后有能力再进行改进。 算子定义如下&#xff1a; 算法思路&#xff1a; 1.将RGB图像转化为CIELab颜色空间的图像。 2.计算不同方…