![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 52
一个不安分的程序员
愿做技术社区的一股清流,让技术帮助更多的人,分享编程感悟,成长我们一直在路上
展开
-
SpringBoot JPA not-null property references a null or transient value 问题解决
也可以先使用ID获取当前需要更新的实体,然后修改需要更新的字段后再使用save保存,这样每次更新都是全字段,如果字段比较多对数据库性能会有影响。可以在实体类上使用@DynamicUpdate注解,这样hibernate在生成更新SQL时就只包含值有变更并且不为null的字段。使用了@DynamicUpdate注解后,在service中先load再更新 生成的SQL edit:test_hot5。报错的字段恰好时更新时不需要的字段,在字段对应的@Column注解中设置updatable=false解决。原创 2023-10-10 10:51:02 · 661 阅读 · 0 评论 -
Unable to make field private final java.lang.String java.io.File.path accessible: module java.base
经过检查发现升级了gradle7,使用的JDK 17. 真是一次大跳跃, 不得不说Java这几年发版本真快。从报错信息可以看出跟Java模块化有关,先前都是用的JDK8 而模块化是JDK9引入的新功能。可以在gradle.properties(项目根目录下可以找到)中设置。既然JDK 17要模块化,那就跟项目指定一个不需要模块化得JDK8.原创 2023-06-21 08:44:12 · 4313 阅读 · 0 评论 -
Flink 1.16 idea intellij中运行web ui
/设置为0 每次启动端口都不一样 也可以设置一个固定的端口 如8081。(conf) 时直接设置下这个参数就行了,需要发布运行时也不用再修改代码。在pom.xml文件中添加flink-runtime-web依赖。Flink 1.16.1亲测可用, 先前的版本可能还需要使用。做的事情也无非就时往配置项里添加了个rest.port.在初始化执行环境时传入的配置中添加rest.port项。在浏览器中访问对应链接就可以看到web ui了。//checkpoint配置。//获取Flink的运行环境。原创 2023-03-15 15:51:21 · 899 阅读 · 0 评论 -
Grails SpringBoot国际化不生效
defaultLocal 的优先级是高于request.getLocale()的也就是配置的默认locale比从访问请求中解析到的locale优先级高, 这就是为什么Accept-Language不起作用的原因。但无论浏览器了配置什么语言甚至配置了Tomcat启动参数 -Duser.language=xxx -Duser.region=xxx页面显示依旧是英文。java.util.Locale有很多常用的静态Locale,直接用就可以了,省得写错了,出现很神奇的错误。原创 2022-11-24 21:52:33 · 701 阅读 · 0 评论 -
Flink使用Rocksdb状态后端任务运行一段时间后挂掉
问题描述:由于需要存储大量状态信息,在使用Flink Sql开发实时计算作业时配置RocksDB做为状态后端,任务起初运行良好,运行一段时间后有任务偶发性出现失败,(使用yarn logs -applicaitonId)查看作业日志发现以下异常信息:org.apache.flink.runtime.io.network.netty.exception.RemoteTransportException: Connection unexpectedly closed by remote task m原创 2022-04-11 20:09:13 · 3016 阅读 · 0 评论 -
Flink任务报Cannot have more than one execute() or executeAsync() call in a single environment
问题描述:使用Flink 1.12开发的任务在本地IDEA中可以正常运行,发布到集群上报如下错误:java.util.concurrent.CompletionException: org.apache.flink.client.deployment.application.ApplicationExecutionException: Could not execute applicationat java.util.concurrent.CompletableFuture.encodeThr原创 2022-02-23 11:54:16 · 5059 阅读 · 0 评论 -
访问开启Kerberos Kafka集群报Identifier doesn‘t match expected value (906)
问题描述:使用Kafka客户端通过21007端口访问开启Kerberos的集群报以下错误: javax.security.sasl.SaslException: An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mech原创 2022-02-15 09:37:15 · 7781 阅读 · 2 评论 -
Flink读取Hudi表报ArrayIndexOutOfBoundsException
问题描述:使用Flink读取Hudi表一周前还是可以正常读的,现在运行报:java.lang.ArrayIndexOutOfBoundsExceptionat org.apache.hudi.table.format.cow.ParquetSplitReaderUtil.lambda$genPartColumnarRowReader$0(ParquetSplitReaderUtil.java:97)at java.util.stream.IntPipeline$4$1.accept(IntP原创 2022-01-18 15:27:57 · 2716 阅读 · 0 评论 -
Flink学习笔记
在使用Flink过程中往往遇到一个问题调半天,后来发现只是一两个参数设置的不合适。看来还是要“读书”。这里做些摘录,以备需要时查阅。摘录多是别人的经验分享,自己并没有实际验证过,也有可能大家使用的Flink版本差异,有不适用的也在所难免,仅供参考!选择合适的Join实现方式传统批处理使用的3种join实现:1.Nested-loop Join:嵌套循环的join实现方式,简单粗暴的把需要进行join的两个数据集都加载到内存中,然后使用循环遍历的方式根据join条件进行遍历。这种实现方式空间和原创 2022-01-11 18:11:51 · 732 阅读 · 0 评论 -
Flink运行报 I/O error constructing remote block reader
问题描述:IDEA中运行Flink实时计算程序,一直报:WARN org.apache.hadoop.hdfs.client.impl.BlockReaderFactory - I/O error constructing remote block reader.java.nio.channels.CloseByInterruptExceptionat java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterr原创 2021-12-31 19:22:40 · 3219 阅读 · 0 评论 -
Flink本地开发设置jobmanager.memory.heap.size不生效
问题描述:数据开发人员本地IDEA运行Flink应用JobManager内存只有8G,需要设置成16G,通过设置jobmanager.memory.heap.size为16G后,在FlinkUI上看到 jobmanager的配置大型为16G,但可用内存还是8G解决方法:在IDEA运行配置中设置JVM参数 -Xmx16G -Xms16G 解决本地IDEA运行Flink和提交运行方式是不一样的,本地运行内存限制于IDEA启动任务时的JVM参数,官方文档中也有提到:...原创 2021-12-27 10:39:45 · 1793 阅读 · 4 评论 -
Debezium同步MySql数据锁表
问题描述:开启Debezium同步MySql数据任务后,发现查询某个表特别慢,结果迟迟不能返回.通过select * from information_schema.`PROCESSLIST` t where t.user = 'username'查看发现,有大量查询处于 Waiting for table flush 状态解决方法:设置snapshot.locking.mode = none解决.但有丢数据风险,具体详情可以参考这个issue...原创 2021-12-24 15:25:24 · 2983 阅读 · 0 评论 -
Debezium同步PostgreSQL数据报:permission denied for database databaseName
解决Debezium同步PostgreSQL数据报:permission denied for database databaseName原创 2021-12-20 10:14:41 · 5493 阅读 · 0 评论 -
Spark查询Hive表报failed to save roles to cache file
问题描述:使用Spark Sql以yarn client模式读取hive表时报错:failed to save roles to cache file '/opt/bigdata/xxx/xxx/xxx/sparkSql_Hive_roles.json'org.apache.ranger.plugin.util.RangerRolesProvider.saveToCache(RangerRolesProvider.java:312)java.io.FileNotFoundException原创 2021-11-30 17:19:46 · 1565 阅读 · 0 评论 -
Chrome关闭非安全站点证书检查
问题描述:在测试使用Https的网站时由于用的是自己生成的证书,使用Chrome访问时总是提示非安全站点,您的链接不是私密链接,总之需要手动多点几次才能看到要访问的页面.解决方法:测试时启动Chrome添加参数:--ignore-certificate-errors如:C:\Program Files\Google\Chrome\Application\chrome.exe --ignore-certificate-errors在使用自动化测试Selenium、jvppet.原创 2021-11-30 08:48:29 · 8893 阅读 · 0 评论 -
Spark Jdbc报NullPointerException
问题描述:运行使用Spark Jdbc读取postgresql程序报错:Exception in thread "main" java.lang.NullPointerExceptionat java.util.Hashtable.put(Hashtable.java:460)at java.util.Properties.setProperty(Properties.java:166)at org.apache.spark.sql.execution.datasources.jdbc原创 2021-11-24 14:22:59 · 2331 阅读 · 0 评论 -
多个Spark任务同时写Hudi表
在实际应用中难免会遇到多个流或批处理程序需要同时操作同一张Hudi表的场景,默认情况下多个程序往同一张Hudi表中写数据时会发生多写冲突造成程序运行失败,要解决并发写问题可以借助Zookeeper实现基于乐观锁的并发写。使用Spark 3.1.1 Hudi 0.9.0 开启乐观锁并发写功能配置参考:writer........//作为分布式锁的zookeeper节点目录.option(HoodieLockConfig.ZK_BASE_PATH.key(), "/hudi/write_l原创 2021-11-05 17:52:22 · 2610 阅读 · 0 评论 -
Hive读取成功用Spark Sql读报SchemaColumnConvertNotSupportedException
问题描述:Hive上有张表在Hue上使用hive引擎查询可以读取到数据,换成Spark Sql引擎查询就报错了:org.apache.spark.sql.execution.datasources.SchemaColumnConvertNotSupportedException atorg.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader.constructConvertNotSupportedExcep.原创 2021-10-27 16:45:07 · 1400 阅读 · 0 评论 -
Spark Structured Streaming union数据丢失问题解决
问题描述: 使用Spark Structured Streaming把多个流union all一起处理,发现处理后的结果远远小于4个流数据的总和.解决方法:通过查看Spark UI发现运行时只有一个流并没有多个流Union。排查代码发现是将4个流注册为临时表,然后获取4个流的公共字段的dataset对象后再调用dataset.union方法将4个dataset union到一起,改成将4个流注册为临时表后使用sql union而不是用dataset,问题解决....原创 2021-09-26 16:37:45 · 690 阅读 · 0 评论 -
Spark show多条不截断
问题描述:同事在使用Spark dataset.show查看sql执行结果时,发现显示的条数比预期的少并且有些比较长的字段被自动截断了。解决方法:可以使用dataset.show(最大显示条数)显示更多的数据。可以使用dataset.show(false)指定显示数据时不截断比较长的字段(列)。也可以一起使用dataset.show(最大显示条数,false).如:dataset.show(100,false);//最多显示数据集中的100行并且不对字段做截断处理spar原创 2021-09-26 10:10:58 · 2577 阅读 · 0 评论 -
在foreachBatch中注册的临时表报找不到
问题描述: 使用Spark Structed Streaming时需要把一个流的数据分开写入到不同表中,选择在foreachBatch中对dataset进行过滤并分别写入相应表中。过滤时先将dataset注册为了临时表然后在像往常一样使用spark.sql执行查询sql.虽然写法跟以前一样但却报了错:org.apache.spark.sql.AnalysisException: Table or view not found: xxxxxx;奇了那个怪了.解决方法:...原创 2021-09-03 20:17:11 · 403 阅读 · 1 评论 -
Spark写Hudi同步hive报Socket is closed by peer.
问题描述: 使用Spark3写数据到Hudi可以正常写入,但开启元数据同步到Hive就报错:org.apache.thrift.transport.TTransportException: Socket is closed by peer.org.apache.hadoop.hive.ql.metadata.HiveException:atorg.apache.hadoop.hive.ql.session.SessionState.setAuthorizerV2Conf...原创 2021-09-03 19:53:44 · 2346 阅读 · 2 评论 -
IDEA中运行Spark验证出差
问题描述: 本地开发环境设置好了Hadoop也设置好了Java/Scala/HADOOP_CONF_DIR等环境变量,在IDEA中运行Spark访问服务器Hadoop报:Exception in threa "main" org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]解决方法: ...原创 2021-08-20 20:01:13 · 429 阅读 · 0 评论 -
resultType还是resultMap
背景:运行MyBatis项目报错:Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.xxx.XxMapper.map at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:346) at org....原创 2021-05-20 12:01:15 · 155 阅读 · 0 评论 -
数据链接池Druid和Clickhouse:expect ANY, actual ANY pos 2978
背景:项目中需要使用A表left join B表,并且B表中有重复的key时只显示一条。在MySql中可以这样实现:select * from a t1left join b t2 on t1.key= t2.keyand t2.id =(select min(id) from b where key =t2.key)也就是在join操作后还需要使用一个子查询限制B表相同key的数据只使用一条。在Clickhouse中可以使用any left join实现相同的功能:select原创 2021-05-18 22:26:24 · 531 阅读 · 0 评论 -
Spring Json字符串中description变成deion
前端提交过来一个Json字符串:包含属性description,后端转换为JSON对象后却获取不到description属性值,经排查是后端接收到的字符串中将description替换为了deion,具体原因不详.原创 2021-02-04 17:56:52 · 637 阅读 · 2 评论 -
gradle配置阿里Maven仓库
参照Gradle官方文档配置阿里Maven仓库原创 2021-02-02 10:56:12 · 1321 阅读 · 0 评论 -
执行docker-compose -V报错及升级后报/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found问题解决记录
在试用一个开源项目时需要用到docker-compose,执行项目提供的脚本:> ./docker/up.shBuilds, (re)creates, starts, and attaches to containers for a service.Unless they are already running, this command also starts any linked services.The `docker-compose up` command aggregates原创 2021-01-22 11:11:57 · 6364 阅读 · 0 评论 -
gradle编译项目时报Could not target platform: ‘Java SE 11‘ using tool chain: ‘JDK 8 (1.8)‘即gradle配置jdk
使用gradle编译一个开源项目时报了下面的错误:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':compileJava'.> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'咱平时都是使用的Maven,不过好在以前做自由职业时接过使用gradle开发的项目,从错误信原创 2021-01-21 18:04:48 · 4433 阅读 · 0 评论 -
局域网内不能访问tomcat服务问题解决记录
局域网内不能访问windows 10上的tomcat8,在本机可以访问,并且在局域网内其它机器上访问其它端口的应用正常,可以排除网络问题,那是什么原因呢?考虑是否是防火墙,查看防火墙状态是打开的,尝试新建入站规则放开tomcat端口8091,配置成功后,可以正常访问:windows下配置防火墙的方法可以参考这里,也可以先关闭防火墙试下是否是防火墙的原因....原创 2021-01-20 11:58:12 · 2108 阅读 · 0 评论 -
导入文件失败因Tomcat内存配置问题记录
客户反馈某些Excel导入失败,在测试环境却可以正常导入,以此判断应该跟Tomcat内存设置有关.查看客户环境Tomcat日志,发现报错信息:java.lang.OutOfMemoryError: Java heap space at org.apache.xmlbeans.impl.store.Cur.createElementXobj(Cur.java:260) at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.startEle.原创 2020-12-31 15:53:48 · 611 阅读 · 0 评论 -
vscode配置java test不能正常使用记录
按照VS Code官方文档添加了Java Test Runner插件,却一直看不到在Test方法上生成Run/Debug按钮,尝试重启,添加jar包仍不能解决问题,最后使用mvn运行test时才发现找不到测试用例,才发现没有配置testSourceDirectory.在pom.xml文件中添加配置:<build><testSourceDirectory>src/test</testSourceDirectory>...........原创 2020-12-28 18:24:43 · 4536 阅读 · 3 评论 -
就是这么诡异记Clickhouse toDecimal引起的一个问题
今天遇到一个bug特别诡异,怎么个诡异呢,且往下看:在网页上有个按金额大小查询数据的这么一个搜索框,一直工作的很正常,但是当客户使用金额`161.73` 查询时,就出问题了.明明看到有这样一条数据,就是查不出来。你说奇怪不奇怪?从前端到后端一层层排查下来,最后确定后台在Clickhouse中执行Sql语句时使用toDecimal32函数将参数转换为Decimal类型.ClickHouse client version 20.9.3.45 (official build).Connecti原创 2020-12-22 10:27:51 · 6346 阅读 · 3 评论 -
[Elasticsearch]怎么使用Elasticsearch SQL
Elasticsearch SQL并不是对Elasticsearch和它查询功能的二次封装抽象,相反Elasticsearch也是很热情的去支持使用SQL以同样声明性、简洁的方式进行近实时的全文检索.翻译 2020-07-15 08:59:39 · 441 阅读 · 0 评论 -
Java14不得不知的5个新功能
Java14不得不知的5个新功能虽然我们现在还用的JDK8文本块以前在Java里写个长点的字符串是这个样子地:String sql = "select * from t_tianlangstudio_student" + " where age > 23 and age < 30" + " and sex = 1";如果字符串中再包含有双引号还需要转义,虽然有IDE帮忙,但还是时常羡慕Scala、Rust里的文本块(多行字符串)的写法,那个酸爽,Java14里终于也原创 2020-07-12 19:55:20 · 175 阅读 · 0 评论 -
[Elasticsearch]4.可伸缩性解密:集群、节点和分片
可伸缩性解密:集群、节点和分片更新连载中…请关注Scalability and resilience: clusters,nodes, and shardElasticsearch支持根据需要进行扩缩容.这得益于Elasticsearch是原生支持分布式的.可以通过往机器中添加服务器(节点)的方式扩大集群容量从而存储更多数据.Elasticsearch会自动的均一些数据和计算任务给新加入的数据.甚至不需要应用程序参与,Elasticsearch完全知道该怎么把数据均衡到多个节点并且提供良好的可伸缩翻译 2020-07-12 08:33:20 · 459 阅读 · 0 评论 -
[Elasticsearch]2.数据存储:文档和索引
数据存储:文档和索引Data in: Documents and indicesElasticsearch是分布式文档存储系统.数据不是以列和行的形式存储的,而是被序列化为JSON文档存储的.如果在Elasticsearch集群中有多个存储节点,这些文档是分散在多个节点上的,并且在任何一个节点上都可以访问这些文档.就问你,神奇不神奇?Elasticsearch is a distributed document store. Instead of storing information as r原创 2020-07-09 11:29:09 · 2356 阅读 · 0 评论 -
5天7万不是招公关
我是怎么用5天帮人挣7万的** 2020年5月17日 星期日 **晚上8点30分,一个先前有过项目合作的朋友来找我约在肯德基见面,说是客户要做个网站要的比较急,下周五前必须上线。什么样的网站?能发帖有问答功能类似知乎那是要个论坛?客户给了个参考网站,你看下!是个论坛,这个功能还挺多,时间太紧做不了啊应该晚个俩天也可以,接了吧。我先看下,最迟明天中午给你答复,如果客户关系可以,可以尝试做下。客户关系没问题,就这么定吧。行,功能多时间紧,如果客户关系hold住,我们就尝试原创 2020-06-17 15:05:45 · 118 阅读 · 0 评论 -
Spring JPA使用findAll方法查出的数据跟数据库里存储的不一样
今天遇到个有意思的问题:findAll查出的数据竟然很数据库里存储的数据不一样本来数据库里有全国所有省份的数据但是查出来只有河南和浙江的数据条数一样,数据大量重复经过分析是Entity的ID字段在数据库中并不是唯一的,而且重复的很多,后来改成联合主键就正常了。选ID的时候一定要确认是否是唯一的,因为JPA底层会根据这个ID判断俩个Entity是不是一样的。以下是配置联合主键的代码:...原创 2020-05-07 16:38:05 · 4307 阅读 · 0 评论 -
使用SpringData连接ElasticSearch一直报因为ID字段BeanCreationException
使用SpringData连接ElasticSearch一直报因为ID字段BeanCreationExceptionCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'emailDao': Invocation of init method faile...原创 2020-05-02 15:36:18 · 448 阅读 · 0 评论