自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GHD

  • 博客(29)
  • 收藏
  • 关注

原创 【Caused by】Maven编译错误:找不到符号(Cannot find symbol)

文章目录前言原因前言mvn install或mvn package之后报“Cannot find symbol”错误,这个问题一般有几种原因:类的包名有误maven-complier-plugin版本不兼容:如果是jdk1.8的代码,compiler也应该是对应的版本本地maven仓库旧jar包未清除:mvn clean installIDE缓存未刷新:如IDEA,File->...

2019-11-17 13:23:36 16956

原创 【算法】LeetCode 4 - Median of Two Sorted Arrays

2019.10.20文章目录思路原理代码思路首先,扩展到一般情况有助于求解此题,假设我们要求解的是两个有序序列的第k个元素。然后,对于log(m+n)时间复杂度的要求,不难想到,采用二分法的思想,可以达到O(logn)级复杂度。具体推导此处略。A[0, 1, ..., i, ..., m) B[0, 1, ..., j, ..., n)C[0, 1, ..., k-1, ...,...

2019-10-20 22:44:08 161

原创 【开发工具】Intellij的Transparent native-to-ascii conversion,及\uXXXX乱码问题

2019.04.17文章目录前言原因前言项目.properties配置文件git push之后,在IntelliJ里显示正常,但在网页版的GitLab上查看却显示乱码\uXXXX。原因根据廖雪峰关于字符编码的介绍1,Unicode编码一般用两个字节2B表示一个字符,而在Unicode的基础上发展出“可变长编码”的UTF-8(ascii码用一个字节1B,汉字用三个字节3B等)。例如,字...

2019-04-17 23:26:48 687

原创 【框架】利用JPA的JOIN FETCH读取FetchType.LAZY成员

2019.04.07文章目录前言原理方案事务@TransactionalJOIN FETCH场景一:@Query或Native SQL场景二:JPA Criteria API或Spring Specification API@NamedEntityGraph@FetchProfile前言Spring+Hibernate的项目,里面大量用到FetchType.LAZY,懒加载实体成员。新需...

2019-04-07 21:08:15 5768 1

原创 【算法】B树的Java源码实现及Princeton版本源码理解

2019.02.24文章目录前言Princeton版本源码理解基于Princeton的修改版本前言想在业余时间做个小工具,设计是不使用数据库,而是用文件系统来存储数据。为了减少文件打开次数,提高索引效率,用B树构建内存索引。B的原理就不介绍了,提供如下链接供扩展阅读:Princeton算法课程slide:https://www.cs.princeton.edu/~rs/AlgsDS0...

2019-02-26 23:02:38 345

原创 【开发工具】Eclipse常用插件

2019.02.17文章目录中文支持黑色主题Git支持Maven支持Bug查找Java代码热部署“工欲善其事,必先利其器”,作为Java工程师,好的开发工具是必不可少的,但怎么让工具更适合自己呢?Eclipse IDE提供了各种各样的插件,任君选择。我根据自己的习惯安装了如下插件,整理成此文推荐给大家。中文支持Babel语言包1支持丰富的语言,官方推荐的安装方式如下:‘Help’ ...

2019-02-17 15:34:30 3464

原创 【语言】Java 8新特性总结

2018.12.02文章目录前言Lambda表达式语法引用变量方法引用语法函数式接口默认方法前言Java 8对Java而言具有重要意义,得益于它所带来的新特性,使得Java重新焕发生机。本文翻译整理自一博客1。Java 8包含如下新特性:Lambda表达式方法引用默认方法新的Stream APIOptional新的Date/Time APINarshorn,新的JS引擎...

2019-01-17 17:17:33 202

原创 【读后感】《关键对话》

2019.01.12文章目录前言“上帝”视角一切的救赎都是自省和控制前言这本书的作者有四位(Kerry Patterson等),通读下来会感觉它是一个研究项目的研究成果——有丰富的社会调查、对话的方法和技巧,研究问题的视角全面,书末还提供许多案例分析。全书内容都紧紧围绕着“关键对话”,从它的定义和掌握“关键对话”的心经,讲到参与对话的不同人的视角,再讲到掌握“关键对话”的具体方法;而第十...

2019-01-12 17:05:07 2425

原创 【大数据】Hive: 获取字段数据类型

2018.12.01文章目录前言方法前言某项目涉及将Hive中的textFile表转换成parquet表,由于parquet表不支持date类型,需要判断字段是否是date,并cast成timestamp。方法采用DESCRIBE语句1既可:DESCRIBE [FORMATTED] [db_name.]table_name[.complex_col_name ...]DE...

2018-12-01 23:48:04 14167

原创 【Caused by】Vertica error - too complex to analyze

2018.11.30文章目录前言追根溯源恍然大悟前言某工程进行Vertica表间数据拼接,大致SQL语句如下:insert into tableForInsert as select * from tableA union all select * from tableB ...union all1的表非常多,导致SQL语句过长,报错如下:java.sql.SQLNonTrans...

2018-11-30 20:40:44 876

原创 【大数据】Hive: 创建分区表(partition表)及分区表导入csv文本文件数据

2018.11.21文章目录前言方法前言某项目生产环境中的Hive是按月份分区,而测试环境的没有分区,导致部分功能无法验证。方法基本思路:分别创建两个表,一张是分区表,另一张是非分区表,表结构相同;再通过insert语句将非分区表的数据插入到分区表1。要注意是,分区表的插入分两种:静态插入和动态插入。在一般情况下,Hive不建议直接使用动态插入2,所以有个默认情况下是不允许使用动态...

2018-11-21 22:07:27 4396

翻译 【框架】Spring Boot: Actuator Endpoint

2018.11.14文章目录前言介绍技术透明( technology-agnostic)的端点端点使用端点开启端点公开方式加固HTTP端点访问自定义端点前言Spring Boot Actuator Endpoint1介绍Spring Boot的Actuator执行器endpoints端点,可以用于应用程序的监控和交互。Spring Boot内建了许多端点,用户也可以自定义端点。比如h...

2018-11-18 23:02:06 2241

翻译 【框架】Spring Boot: 实现优雅退出

2018.11.18文章目录前言方法方法一:Actuator的Endpoint机制[^1]方法二:使用`ApplicationContext#close()`方法方法三:`@PreDestroy` + `kill `前言要求某个基于Spring Boot的调度器,能实现优雅退出,使得退出时正在运行时的作业能进行必要的回滚操作。为此,翻译某技术博客的总结1。方法每个Spring应用都会...

2018-11-18 22:47:07 8559

原创 【SQL】Case-When实现复杂排序

2018.11.18文章目录前言方法前言某个模块读取SQL server时,需要按一定的优先级读取,比如满足T.a = 'A’的先读,T.b='B’的次之,T.c='C’的优先级最低。最简单的方案,就是分三条SQL读取,依次判断是否为空,再决定是否读下一条。但我想尝试一下,只用一条SQL能否实现。方法使用Case-When1select * from T twhere ...

2018-11-18 21:38:31 1215

原创 【Caused by】java.io.FileNotFoundException: __app__.jar或WARN internal.EntityManagerFactoryRegistry

2018.11.18文章目录前言方法错误的尝试正确的解法前言项目背景:有一个基于Spring Boot的调度器,负责调度并向Yarn提交Spark作业。在测试时发现,有个Spark作业一直报__app__.jar找不到的错误。ERROR yarn.ApplicationMaster: User class threw exception: org.springframework.bea...

2018-11-18 17:37:16 945

原创 【语言】Java: 获取jar包中某个类的serialVersionUID(序列版本id)

2018.11.02文章目录前言方法前言在《序列化及Java Serializable序列化接口》一文,我介绍了一个case:一个已上线的版本中包含了未定义serialVersionUID序列版本id的类。本文就会讲述这类问题上笔者的解决方法,仅供参考。方法这个问题的关键是,如何保证下一个上线版本能正确地将已存储的类实例正确反序列化出来。首先JVM是不支持对serialVersion...

2018-11-02 22:05:48 1885

原创 【语言】序列化及Java Serializable序列化接口

2018.11.02文章目录前言Hello,序列化`Serializable`:不能忽视的你前言某项目新版本上线,新版本中添加了A类,而A类最终会通过ObjectOutputStream#writeObject方法1序列化到HDFS中。而在上线完成之后才发现实现了Serializable序列化接口的A类并没有定义serialVersionUID,换言之,如果下次上线的版本A类发生了修改,...

2018-11-02 21:41:36 421

原创 【软件工程】Maven: 创建Java/Scala混编项目

2018.11.02文章目录前言方法前言项目需求改变,需要开发Spark应用,而原项目是基于Java开发的,所以就需要原项目能支持Java/Scala混编。原项目采用的是Maven项目管理工具,编辑器是IDEA。方法本方法基于已存在的Maven项目,未创建Maven项目的可使用mvn archetype:generate创建一个新项目:在pom.xml中添加scala-maven...

2018-11-02 16:56:59 346 1

翻译 【Web】Tomcat: 开启远程调试Remote Debugging模式

2018.11.01文章目录前言方法方法一:`JPDA_OPTS`方法二:Old-fashioned方法前言Tomcat的远程调试模式是个常用且好用的功能,一旦项目部署到远程服务器上时(比如sit环境),就可以通过远程调试模式打断点进行debug。本文翻译自一技术博客1。方法设置JVM启动命令参数就可以为Tomcat开启远程调试模式,可以通过JPDA_OPTS、CATALINA_OP...

2018-11-01 16:43:13 2715

原创 【操作系统】Windows: CMD设置环境变量

2018.11.01文章目录前言方法前言在Windows下安装JDK或者部署Tomcat,安装环境变量的过程总让我觉得很蛋疼,每次点击都让人觉得麻烦。所以找到了在CMD上命令行设置环境变量的方法。方法例如配置JAVA_HOME(目录为:C:\path\to\jdk):# 设置用户环境变量setx JAVA_HOME "C:\path\to\jdk"# 设置系统环境变量(建议)...

2018-11-01 14:25:35 2593

原创 【Caused by】declares multiple JSON fields

Caused by: declares multiple JSON fields2018.10.31前言某项目已上线的版本中,将ChildA类的实例通过ObjectOutputStream#writeObject12进行序列化并写入HDFS中;而后某个版本中,由于未采用继承的方法,该模块的开发者将功能等价的ChildB类和ChildA作为属性封装到TempParent类中。为了兼容两个版...

2018-10-31 20:26:11 367

原创 【语言】Java线程池简介

Java线程池简介2018.10.29前言并发问题是项目开发中的常见问题,Java的java.util.concurrent包提供了许多可靠、实用的工具给开发者。粗略地看了文档和代码,决定写下这篇简介,但是出于时间成本的考虑,本文未涵盖代码案例及测试分析等内容。万恶之源的Executor接口下图是Executor接口及其相关接口、类的UML图1。Executor作为最顶层的接口,顾名...

2018-10-29 18:57:52 138

翻译 【Caused by】No FileSystem for scheme: file

Caused by: No FileSystem for scheme: file2018.10.26前言某项目使用HDFS Java API操作HDFS,常用操作如put、getMerge等,但一旦涉及到本地文件系统和HDFS间的上传下载,就会报错,在StackOverflow上找到了解决方法1。方法这是一个典型的maven-assembly-plugin所导致的问题。不同的Jar...

2018-10-26 19:29:28 240

原创 【大数据】HDFS Java API配置用户(远程用户)

HDFS Java API配置用户(远程用户)2018.010.26前言某项目使用HDFS Java API操作HDFS,但在本地机器运行单元测试时发现会出现permission denied的问题,原因是该单元测试是直接操作HDFS集群,而本地运行单测时默认会使用本地机器的登录用户去操作HDFS。为了保证单测在不同机器上运行结果一致,就需要在配置HDFS时设置集群环境中的远程用户。方...

2018-10-26 19:09:11 2464

原创 【SQL】删除表的约束条件

SQL:删除表的约束条件2018.10.25前言某项目采用Hibernate,并配置hibernate.hbm2ddl.auto为update1,而实体类A中a成员变量声明为:@Column(length = 45, unique=true)private String a;而后需求改动,该成员不再要求全局唯一。此时,数据库表中已为该表添加了UNIQUE NAME的约束2。方法...

2018-10-25 16:00:45 3814

原创 【Caused by】Zip64 archives are not supported

Caused by: Zip64 archives are not supported2018.10.23前言A ---> BSpring Boot项目中A模块依赖于B模块,但对A打包完运行后,报错显示不支持Zip64。官方Github对该问题进行了解释1:受限于Spring Boot加载器,无法读取zip64格式文件。同时也给出了疑问:为何单个包会如此地大。方法在这个ca...

2018-10-23 20:28:23 3039

原创 【Caused by】signer information does not match

Caused by: signer information does not match2018.10.23前言A ---> B ---> C|_____________↑某个项目里,A模块依赖于B模块和C模块,B模块也依赖于C模块。它们各自都会依赖某些相同第三方库,如hadoop-common,但版本不完全一致。方法一般是因为依赖冲突。在这个case里,通过分析d...

2018-10-23 20:08:25 234

翻译 【大数据】HDFS Java API按行读取

HDFS Java API按行读取前言翻译自stackoverflow一回答1方法public void test() throws Exception { Path path = new Path("hdfs://pathToFile"); FileSystem fs = FileSystem.get(context.getConfiguration); BufferedReade...

2018-10-23 16:45:47 2385

原创 【框架】Spring及Spring Boot注入依赖的Bean

Spring及Spring Boot注入第三方jar包的Bean2018-10-23 某模型平台需要注入子模块的Bean前言模块化划分的Spring或Spring Boot工程,如果遇到某个模块是工具模块等情况,其它模块可能就需要直接注入所依赖模块的Bean。Spring引用第三方jar包的Bean假设第三jar包中采用的是XML配置文件(third-party-appContext...

2018-10-23 11:31:59 8048

空空如也

空空如也

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

TA关注的人

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