技术踩坑
文章平均质量分 63
记录个人实践中遇到的一些难题或踩过的坑
Java小田
这个作者很懒,什么都没留下…
展开
-
postgres wal2json插件jsonb字段数据丢失问题解决
使用pg+wal2json+debezium进行数据同步时,偶尔会有jsonb字段数据丢失的问题原创 2023-07-26 17:07:54 · 968 阅读 · 0 评论 -
审计日志导致hiveserver2内存泄露的问题排查解决
记录一次hiveserver2内存泄露问题排查原创 2022-06-06 10:40:38 · 1146 阅读 · 0 评论 -
spark sql读取不到orc格式hive表数据问题
1、问题在做spark数据对账时,对于部分orc格式的hive表,会有spark sql读取表数据为空的情况排查过程中发现是因为使用了tez作为hive的执行引擎,然后执行insert select union all 时,对应的hdfs数据路径,不是直接存放数据文件,而是先有子目录HIVE_UNION_SUBDIR_x,子目录下再存放数据文件参考文章:https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_2309.htmlhttps://bl原创 2022-03-04 18:37:45 · 8248 阅读 · 0 评论 -
superset连接hive一个奇怪的异常记录:Unexpected error TTransportException
如题,在配置hive数据源时,superset提供了hive连接检测功能,但是这时候报了一个异常:Unexpected error TTransportExceptionWARNING:superset.views.core:Unexpected error TTransportException控制台只有这个日志,没有更多信息了,只能大概看出来是发起thrift请求的时候出错了,一脸懵逼。网上搜了好久,没有看到什么有帮助的回答。突然灵机一动,可能是比较底层的系统异常,导致程序打印不出具体信息。原创 2022-02-22 19:59:20 · 2425 阅读 · 0 评论 -
keepalived启动失败问题记录
执行systemctl start keepalived命令启动keepalived服务执行完之后立马执行systemctl status keepalived,发现服务状态OKps -ef | grep keepalived也能看到keepalived进程但是过一会再看,发现进程没了systemctl status keepalived也显示inactive(dead)状态通过ip -br a命令验证是否达到预期,发现vip配置也确实没生效keepalived日志默认是在 /var/log/m原创 2022-02-14 20:05:07 · 4936 阅读 · 0 评论 -
记一次诡异的Apollo Long polling failed 401问题
大家都知道Apollo开启了密钥的情况,如果客户端没配置密钥,请求配置时就会401。但是我遇到的情况时,客户端读取配置是成功的,但是程序会打警告日志:2022-01-10 22:37:45.772 WARN [Apollo-RemoteConfigLongPollService-1] RemoteConfigLongPollService.doLongPollingRefresh(197) - Long polling failed, will retry in 1 seconds ......此处省原创 2022-01-10 22:56:50 · 4986 阅读 · 2 评论 -
mvn build报错:unable to find valid certification path to requested target
由于公司运维调整了网络安全策略,导致使用maven编译的时候报Could not transfer artifact xxx from/to xxxsun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to request原创 2021-12-02 09:59:31 · 1034 阅读 · 0 评论 -
azkaban上传zip报错:Error Chunking during uploading files to db
上传时页面报Instalation FailedError Chunking during uploading files to db查看web-server日志:2021/11/26 11:20:38.253 +0800 INFO [ProjectManagerServlet] [Azkaban] Installation Failed.azkaban.project.ProjectManagerException: Error Chunking during uploading files .原创 2021-11-26 11:34:36 · 933 阅读 · 0 评论 -
ssh免密钥登录失败原因排查
最近多次遇到不同原因导致ssh免密钥登录的问题,明明都配置好了,但是就是不通。这里记录一下排查问题的思路,作为备忘。查看debug日志很关键客户端:参数加-v,比如ssh -v xxx.com服务端:vim /etc/ssh/sshd_config修改日志等级为DEBUG,默认LogLevel INFO改为LogLevel DEBUG然后通过tail -f /var/log/sshd.log查看日志场景一ssh时报:ssh_exchange_identification: read原创 2021-11-25 21:10:32 · 5399 阅读 · 0 评论 -
openj9 class storage 内存占用过大问题排查
问题概述公司使用k8s部署服务,发现有个pod自动重启,查看监控发现重启前的内存使用基本快达到最大限制4G,推测是由于OOM导致的自动重启。进一步查看监控,发现除了class storage占用比较大,其他都很正常。而这个class storage也确实大的有点不正常,最大居然达到了1G多,查看其他正常的服务,一般也就一两百M。openj9和hotspot差异我们都知道jvm加载的class信息是存储在方法区的。但是不同jvm对于方法区的实现都有比较大的差异,hotspot在java8以前叫永久代,原创 2021-09-23 21:53:10 · 1308 阅读 · 0 评论 -
spring cloud sleuth+zipkin使用异步线程池traceId重复问题
项目中使用了@Async线程池进行异步调用,为了便于重现问题,把线程池线程数设置位1。观察发现:第一次调用的时候异步线程打印的traceId跟主线程一样,然后后续的traceId都跟第一次一样,一直重复使用。直接查看源码进行研究,首先定位到异步线程池的traceId处理是在org.springframework.cloud.sleuth.instrument.async.TraceAsyncAspect这个类:这里使用了aop进行处理,逻辑看起来也很简单,如果当前span不为null就直接使用当前的原创 2021-06-26 18:24:10 · 3324 阅读 · 3 评论 -
模仿MybatisPlus实现 lambda query
刚接触MybatisPlus那会,就觉得它提供的lambda调用方式挺酷的比如new QueryWrapper.eq(“name”, “xiaoming”)改成用lambda的写法就是:new LambdaQueryWrapper.eq(User::getName, “xiaoming”);看起来差别不大,但是对于一些名字比较长的字段名,再也不用去copy了,也不用担心会写错,还是挺爽的。一直都觉得这个是个顺理成章的功能,没有想过怎么去实现它,直到这几天想自己实现一个类似的功能,发现其实没这么简单原创 2021-05-04 17:12:50 · 4562 阅读 · 0 评论 -
坑爹的spring-boot-devtools,你还在用吗
最近开发了一个sdk,给项目组的人用,我自己本地测试的时候正常,但是别人引入以后一使用就报NoSuchBeanDefinitionExceprion代码逻辑很简单,就是在根据配置的类动态获取spring bean去执行,封装了一个SpringUtil类,代码如下:@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationC原创 2021-04-01 16:07:07 · 2954 阅读 · 1 评论