otter 版本:4.2.17 系统:windows server 2018 r2
pid:2 nid:1 exception:setl:java.lang.NullPointerException at com.alibaba.otter.shared.arbitrate.impl.setl.memory.MemoryStageController.getLastData(MemoryStageController.java:85) at com.alibaba.otter.shared.arbitrate.impl.setl.memory.ExtractMemoryArbitrateEvent.await(ExtractMemoryArbitrateEvent.java:52) at com.alibaba.otter.shared.arbitrate.impl.setl.delegate.ExtractDelegateArbitrateEvent.await(ExtractDelegateArbitrateEvent.java:36) at com.alibaba.otter.shared.arbitrate.impl.setl.delegate.ExtractDelegateArbitrateEvent$$FastClassByCGLIB$$b36a599b.invoke() at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at com.alibaba.otter.shared.arbitrate.impl.interceptor.LogInterceptor.invoke(LogInterceptor.java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) at com.alibaba.otter.shared.arbitrate.impl.setl.delegate.ExtractDelegateArbitrateEvent$$EnhancerByCGLIB$$9c91b4da.await() at com.alibaba.otter.node.etl.extract.ExtractTask.run(ExtractTask.java:53)
原提问者Github用户 Perterually
根据错误信息,该异常是在 MemoryStageController 的 getLastData 方法处抛出的 NullPointerException。
经过排查,可能是由于 Otter 的内存容器在扩容时出现了一些问题,导致 getLastData 方法无法正常获取内存数据。可能的解决方法如下:
将 Otter 升级到最新版本后重启程序。最新版本可能会修复该问题或者提供更全面的异常调试工具。
对 Otter 节点的内存使用进行监控和管理,确保节点有足够的内存资源进行数据处理和缓存。
修改 Otter 的内存配置参数,例如 max_data_size、mem_chunk_size 等参数,以便更好地适应当前的内存资源和数据处理需求。
如果以上方法都无法解决问题,请考虑更换 Otter 节点的硬件或者升级整个系统环境。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。