自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 Failed to submit application_1662088449147_0004 to YARN : User sfapp cannot submit applications to q

提交MR任务,报无队列权限问题

2022-09-02 14:04:55 1788 1

原创 使用easyexcel时遇到Could not initialize class cglib.beans.BeanMap

maven依赖问题排查

2022-06-14 10:12:43 346

原创 Hadoop远程调试参数配置

在hadoop-env.sh下加#调试NODEMANAGERexpor YARN_NODEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=11888,server=y,suspend=y"#调试RESOURCEMANAGERexport YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"#调试M

2022-04-01 14:14:03 171

原创 java设置远程代理

问题配置代理后,在linux上能curl某接口但是应用代码中通过http访问却不行分析发现telnet连不上,但curl可以。因为curl走了代理,telnet不会走代理,所以java调用时会报连不上的错误。解决应用的启动参数加上代理设置java -Dhttp.proxyHost=ip -Dhttp.proxyPort=port -Dhttps.proxyHost=ip -Dhttps.proxyPort=port ...

2022-01-26 13:47:37 230

原创 ORA-27102: out of memory

问题背景使用Flink Oracle CDC组件<dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-oracle-cdc</artifactId> <version>2.1.0</version> </dependency>程序在运行一段

2022-01-18 19:02:52 2846

原创 spring aop中ms.getMethod().getAnnotation拿不到注解信息

问题场景注解如下public @interface GlobalQueueLock { String mode() default "block"; String lockName() default "globalQueueLock"; int expire() default 30;}aop pointcut如下 @Pointcut("@annotation(com.sf.annotation.GlobalQueueLock)") public void p

2022-01-12 13:58:14 1465

原创 Java HTTP接口返回数据乱码

问题场景使用hutool工具类发起get请求,代码如下String res = HttpUtil.get(url, Charset.forName("UTF-8"));实际返回结果没有中文,但还是显示乱码,如下问题分析结合这篇文章给的思路(关于Http请求后返回json乱码的问题),并结合源码,发现HttpUtil默认会给请求头加上Accept-Encoding: gzip, deflate设置代码如下导致hutool后续处理时,使用GZIP流解析响应结果而服务端可能并不是GZIP

2021-12-11 12:48:36 3200

原创 SpringBoo同时支持http和https

1.本地生成证书window打开cmd,输入keytool -genkey -alias tomcat -dname "CN=Andy,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365最终在C:\Users\01393330可以发现keystore.p12文件2.项目配置1.证书复制到src/main

2021-11-25 11:32:26 176

原创 object alibaba is not a member of package

问题场景电脑上的scala版本为2.11.8,然后使用IDEA创建scala的maven项目。其中pom引入如下依赖 <build> <plugins> <!-- 该插件用于将Scala代码编译成class文件 --> <plugin> <groupId>net.alchim31.maven</groupId>

2021-10-05 20:48:36 1297

原创 Spring中Primary注解在项目中的解决方案

项目背景项目采用springboot+mybatis-plus+druid。其中druid数据源供mysql使用,信息配置在yml文件中:spring: main: allow-bean-definition-overriding: true profiles: active: dev application: name: iotp datasource: url: jdbc:mysql://${mysql.ip}:3306/idap?character

2021-07-28 14:32:44 394

原创 Apache Hive中JdbcStorageHandler的入门和源码分析

文章目录一、JdbcStorageHandler入门1.为什么要有StorageHandler2.JdbcStorageHandler介绍3.开发步骤(1)环境搭建(2)建表语法(3)创建外部表(4)查询数据二、JdbcStorageHandler源码分析1.划分切片(1)JdbcStorageHandler类 (2)JdbcInputFormat类(3)DatabaseAccessor接口2.查询分片 (1)JdbcRecordReader类(2) JdbcRecordIterator类一、JdbcSt

2021-07-01 11:29:15 1248

原创 java读取远程jar的解决方案

需求背景用户将自己写的java代码打成jar包,然后在A项目的前端页面上上传,后台会将jar包通过http方式上传到B项目。现在有个需求是:A项目某业务逻辑会用到B项目的jar包,执行其中的方法并拿到方法返回结果。需求的难点在于:A项目如何远程执行B项目中jar包中的方法呢?URLClassLoader远程加载java中提供了URLClassLoader类来加载外部jar,并可以执行其中的方法,参考 记录——JAVA动态加载外部JAR,并调用方法以及卸载关闭打开的外部JAR。这篇博文介绍

2021-06-25 14:16:08 1601

原创 java线程池的核心线程数过少引发的血案

前置条件项目采用如下线程池 private static final ExecutorService CACHED_THREAD_POOL = new ThreadPoolExecutor(4, 40, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(1024), NAMED_THREAD_FACTORY, new AbortPolicy());其中核心线程数为4,最大线程数为40。往线程池提交任务的逻辑如下 Threa

2021-06-25 13:37:18 766

原创 通过HTTP方式上传文件

前言A项目的后台接收到MultipartFile类型的参数,然后需要通过B项目暴露的http接口,将该文件上传至B项目。步骤1.引入相关依赖<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.8.1</version></dependenc

2021-06-22 19:19:49 3603

原创 java Instant与mysql时间对不上

文章目录前置条件问题描述问题解决前置条件1.mysql时间字段字段类型为某条记录的时间为2021-05-19 14:01:342.java时间字段字段类型为Instant createTime;3.代码中jdbc连接信息spring: datasource: url: jdbc:mysql://${mysql.url}:3306/idap?characterEncoding=UTF-8&rewriteBatchedStatements=true&so

2021-05-19 15:32:20 834

原创 项目maven依赖冲突问题排查思路

文章目录前言问题场景问题分析1.分析异常链路,找到报错代码2.断点跟进3.对比其他正常项目4.分析依赖树,看是哪里引入了jsp-api包问题解决前言先介绍下接口字段校验的框架Java服务端接口参数校验框架——hibernate-validator使用。我们项目采用的springboot,在web依赖中已经封装了该框架,如下所以可以直接使用,无需再引入其他依赖。这里仅贴出一段在项目中用到的、和问题有关的代码,如下ValidationUtils类private static final Vali

2021-05-15 18:04:42 1776

原创 Java引用传递遇到的一个问题

问题场景在项目中有这样一段伪代码:A方法调用B方法,传入引用类型的入参C。B方法在业务处理后将新的引用指向入参。在A方法调用完B方法后,会继续操作入参C。A方法如下void A(){ .....业务处理 //C是一个对象 C c = ... //调用B方法 void B(c) .....业务处理,继续操作参数c}B方法如下void B(入参){ .....业务处理 入参 = 新的引用 .....业务处理}本来以为B方法对参数引用进行修改后,

2021-05-15 17:01:21 178

原创 TDengine在Apache Hive中的探索和实践

前言随着TDengine产品的名气越来越广,为了实现降本增效,公司最近将底层的时序数据库引擎由Opentsdb换成了TDengineHive对JDBC的实现Hive对TDengine的实现遇到的问题总结

2021-04-29 19:05:01 1133

原创 java子类重写父类后的泛型类型返回值

在java中,子类重写父类方法时,子类的返回值可以和父类相同,或者为父类的子类。比如abstract class Parent{ abstract Parent test();}class Son extends Parent{ @Override Son test() { return new Son(); }}而如果父类返回值包括泛型类型,那么子类重写时,如果返回值的泛型类型是父类泛型的子类,此时会报错 abstract class

2021-04-29 18:27:22 2118

原创 Hive on TDengine关联其他数据源查询的问题

数据源介绍2.3.8版本的hive创建了多张表:fvp是TDengine的表,enpoint是Mysql的表,dn是TDengine的表,这三者都是使用JdbcStorageHandler创建的,底层对应的InputFormat都为JdbcInputFormat。student是原生HDFS上的数据,对应的InputFormat为TextInputFormat。问题场景在hive中执行如下sqlselect count(*) as count from fvp inner join endpoi

2021-04-27 18:04:49 725

原创 mybatis中xml的$符号是什么时候替换的

问题场景xml中某sql语句如下,其中变量使用${}括起来,而不#{}select * from base_collect_model ${condition}目前存在的是事实是,如果使用#{},mybatis底层会先对#{}占位符进行解析,将每个参数包装为ParameterMapping对象,同时将#{}占位符替换为"?",最后设置实际参数时,将有"?"的地方,根据ParameterMapping信息替换为实际的值。现在我们使用的是${},根据上述分析,mybatis解析时无法找到#{}占位符,

2021-04-16 17:09:55 899

原创 java的appendReplacement方法去除反斜杠

问题场景项目中维护的一个字符串常量的内容为(\\d{2}:\\d{2}:\\d{2}.\\d{3})在业务逻辑中使用Matcher类的appendReplacement方法,将该常量写入StringBuffer中String str = "(\\d{2}:\\d{2}:\\d{2}.\\d{3})"StringBuffer sb = new StringBuffer();Matcher m = r.matcher(moduleFileContent);//moduleFileContent为另

2021-04-08 18:18:03 1518

原创 spring与mybatis的整合

一、原生spring与mybatis的整合分两种方式介绍:原始xml方式和基于注解的方式1.xml方式参考Spring的基本配置和Spring与Mybatis的整合2.注解方式@Configuration//开启事务支持@EnableTransactionManagement//指定mapper接口的路径@MapperScan(basePackages = {"cn.enjoy.dao"})public class MybatisConfig{ @Autowired p

2021-04-03 18:01:43 246

原创 项目中多线程修改同一引用引发的线程安全问题

问题描述项目中存在如下伪代码:其中customThreadPool变量是项目自定义的线程池,fileBeatInstanceDTO变量是线程池外部创建的一个对象。最后issueOperator.operateWhenFirstDeploy方法接收fileBeatInstanceDTO参数。FileBeatInstanceDTO fileBeatInstanceDTO = new FileBeatInstanceDTO(); ...... ...... //赋值 fileBeatInstanc

2021-03-30 17:25:31 324

原创 JAVA责任链设计模式在项目中的体现

项目需求项目包含如下业务逻辑1.前端界面点击“新增采集”按钮,进入后台逻辑。2.后台开始部署FileBeat实例的逻辑。部署过程包含下发、安装、启动、更新配置等操作,每个操作都是一次http接口调用。只有当前一个操作完成后,才能进行下一个操作,否则操作中断。传统设计由于“只有当前一个操作完成后,才能进行下一个操作,否则操作中断”,所以我们定义一个接口方法,方法使用如下伪代码结构:每个操作都用try-catch包裹public void deploy(FileBeatInstanceDTO fil

2021-03-27 17:07:24 145

原创 falcon-agent模块代码里执行sys.CmdOutBytes命令导致的问题

背景介绍在agent模块提供了一个方法,方法里的主要逻辑是通过内置的sys.CmdOutBytes函数,调用linux的sh -c命令。http.HandleFunc("/run", func(w http.ResponseWriter, r *http.Request) { if r.ContentLength == 0 { http.Error(w, "body is blank", http.StatusBadRequest) return } bs, err := io

2021-03-23 09:16:56 291

原创 Hive远程debug步骤

1.官网下载hive启动包我用的包版本为apache-hive-2.3.8-bin.tar.gz,下载完后解压到linux指定目录。我的路径为/app/hive/apache-hive-2.3.8-bin2.官网下载hive源码包对应的版本为apache-hive-2.3.8-src.tar.gz,下载完后解压到window指定目录,...

2021-03-10 19:53:19 1473

原创 kafka主题总消息大小和每条消息大小的计算方式

1.总消息大小假设主题名为monitor_data_to_hbase,共3个分区,分别分布在3个brokers上,都只有1个副本。monitor_data_to_hbase_0分布在broker1,monitor_data_to_hbase_1分布在broker2,monitor_data_to_hbase_2分布在broker3。进入monitor_data_to_hbase_0目录,执行du -shc *.log可以看到输出的总大小为依次类推,再分别计算1、2号分区的大小,最后相加。

2021-03-09 10:45:46 2890

原创 springmvc使用拦截器跳转至不同页面

前言在前后端未分离的传统web项目中,当前端访问后台时,后台controller会跳转至指定页面。假如现在需要根据页面选择的不同语言,让后台跳转至不同页面。传统做法是写不同的controller,每个controller对应一个语言的页面。其实,我们可以只写一个controller,然后再通过拦截器对页面进行修改。代码1.controller代码返回ok.jsp页面@RequestMapping("/ok")public String queryUser(@RequestParam(requ

2021-03-07 16:01:38 1313 1

原创 kafka的producer执行卡住的问题

前言在我前面写的一篇文章中(线上cpu过高的排查思路),提到了网关项目由于抗不住大量数据导致疯狂GC的问题。在解决这个问题之后,我在项目调用下游系统逻辑后加了一段逻辑————往自己搭建的kafka发送数据问题刚开始启动的时候,通过日志发现数据能发送kafka,过了一段时间后,日志没有再打印了。而且每次重新启动都是这个现象。原以为是外部没有再发送监控数据,所以kafka也不会收到。但是奇怪的是,为什么只有在刚启动那段时间才发送后面,就不发送了?断点分析通过打远程断点发现,刚开始启动那会,断点

2021-03-06 12:57:54 749

原创 传统springmvc同时使用jsp和freemarker出现的无法访问页面的问题

项目介绍项目不是前后端分离,使用的springmvc架构。其中配置类如下,我们同时配置jsp和freeMarker两种静态页面@Configuration@EnableWebMvcpublic class AppConfig implements WebMvcConfigurer { @Bean public FreeMarkerConfigurer freeMarkerConfigurer() { FreeMarkerConfigurer freeMarkerC

2021-02-27 21:16:43 477 3

原创 springmvc三种不同的HandlerMapping介绍

先来看看继承关系,其中主要的类为RequestMappingUrlHandlerMapping、BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping。1.类型一:RequestMappingUrlHandlerMapping该类型用于匹配我们最常用的controller类。原理是,发起请求后,RequestMappingUrlHandlerMapping匹配到RequestMapping注解中实际的url路径,从自身维护的map中根据url取出对应

2021-02-27 20:34:43 1463 2

原创 springboot测试类的子线程中注入对象报错

问题场景springboot测试类某方法如下:启动子线程,每个线程调用monitorPluginService.issueHostPlugin方法@RunWith(SpringRunner.class)@SpringBootTest(classes = Application.class)@ContextConfiguration@Slf4jclass MonitorPluginServiceImplTest { @Autowired private MonitorPlugi

2021-02-20 16:36:20 272

原创 同时使用 @Transactional和@Async出现的报错

问题场景在上一篇文章中spring中autowired注入自己的代理后,最后容器中的对象是原对象还是代理对象,我们谈到了在spring中autowired注入自己的代理后,最后容器中只有一个对象。现在我们给文章中涉及的代码加@Async注解@Servicepublic class UserRightService { @Autowired private UserRightService userRightService; @Transactional @Async

2021-02-03 17:49:25 3581 1

原创 spring中autowired注入自己的代理后,最后容器中的对象是原对象还是代理对象

问题场景假设类UserRightService中存在加了事务注解的方法,且通过@Autowired注入自身@Servicepublic class UserRightService { @Autowired private UserRightService userRightService; @Transactional public boolean checkUserFuncRight(String userId, String url) { ......

2021-02-03 16:51:00 11178

原创 spring自定义缓存切面

需求背景关于spring的缓存切面1.本身spring的缓存切面注解不支持手动设置缓存过期时间,例如商品缓存我想要30s过期,优惠券信息我想要50s过期。2.自定义写的缓存切面能不能实现类似nginx那样的流程,当一个线程发现缓存失效后,就加锁让别的所有线程都等待(或者只允许进入没几个线程),被放行的线程去数据库里查数据,然后把缓存存好以后,开锁,让正在等待的所有线程和后续来的线程都可以去缓存中查数据。如上功能如果使用reids的话redisson中好像提供了一个有类似加锁功能的切面,但是其还是不支

2021-02-02 09:20:38 661

原创 mysql插入语句的大小超出限制的问题

问题项目需要插入十几万条数据到mysql,考虑到一次插入一条速度太慢,于是使用了insert语法的批量插入,java代码如下 List<List<MonitorObjectRule>> partition = Lists.partition(needInsertList, 10000); for (List<MonitorObjectRule> rules : partition) { monitorObjectRuleMapper.bat

2021-02-01 21:50:22 1576 1

原创 rabbitmq批量确认结合qos导致的消费者假死和消息丢失问题

代码项目使用的是springboot整合rabbitmq。其中消费者代码如下,用的是手动批量确认模式@Slf4j@Componentpublic class MessageListener { @RabbitListener(queues = "jack.queue") public void process(@Payload String message, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag, Channel ch

2021-02-01 21:47:50 1393

原创 多个集合中分别获取元素,组成唯一性字符串

数据格式1.有多个集合,每个集合的元素为字符串,字符串内容为key=value形式。2.每个集合里的元素里的key都相同,只有value不同,比如A集合的元素为"A=A1""A=A2"“A=A3”…B集合的元素为"B=B1"“B=B2”…C集合的元素为"C=C1""C=C2"“C=C3”…需求1.依次从每个集合中获取一个元素,将获取的多个元素组装为一个字符串,字符串内容为"A=A1:B=B1:C=C1"这样的形式。2.组成的字符串具有唯一性3.列举出所有的唯一性字符串实现1.使用com

2021-02-01 21:47:39 354

原创 使用@Async时出现Cannot find current proxy: Set ‘exposeProxy‘ property on

问题场景A类的某个方法B加了@Async注解,且方法中使用AopContext.currentProxy()获取A类的代理对象。结果B方法运行时报错:Cannot find current proxy: Set ‘exposeProxy’ property on Advised to ‘true’ to make it available, and ensure that AopContext.currentProxy() is invoked in the same thread as the AO

2021-02-01 21:47:21 1354

Doris参数整理和检查方式

Doris参数整理和检查方式

2024-10-25

Navicat Premium.zip

连接mysq、oracle数据库的工具,以可视化的界面查询和操作数据库中的数据,极大的提升开发人员的工作效率

2020-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除