编程上的疑难杂症
无主题知识点
尘世壹俗人
希望我的内容能够帮助更多人,一般我发出来的都是经过自己验证或者自身在用的内容,能躺的坑已经躺完了,也欢迎大家私聊我探讨问题,加班太多回复可能不太及时
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何生成SSL要用的自签证书
摘要:本文介绍了三种自签证书方法,重点讲解了Java专用JKS格式的生成和使用。JKS密钥库用于服务端TLS加密和身份认证,包含密钥对和公钥部分。文章详细说明了keytool命令生成JKS密钥库、导出公钥、创建受信库的步骤。同时介绍了如何将JKS转换为p12格式,以及使用OpenSSL创建自签名CA根证书并签发节点证书的过程。特别强调了CN字段的重要性,它用于标识证书主体名称,在服务认证中起关键作用。文中还提到了不同应用对证书验证方式的差异,如Kafka等仅验证公钥正确性,而Hadoop等需要完整的CA签名原创 2026-08-20 11:48:10 · 276 阅读 · 0 评论 -
centos7编译安装git
在源码主路径下生成配置文件 (Makefile)原创 2026-04-18 15:09:46 · 66 阅读 · 0 评论 -
idea提交git版本由于中文文件名卡死不动
Git提交中文文档卡顿的解决方案:当Git将中文转为Unicode编码时可能因进制问题导致卡死。解决方法包括:1)确保所有文件字符集设为UTF-8;2)通过命令禁止Git转义非ASCII字符(core.quotepath false)并设置全局UTF-8编码;3)在IDEA中清除缓存重启(Invalidate Caches)。这些设置能有效解决中文路径和提交信息导致的卡顿问题。原创 2026-04-08 22:37:23 · 99 阅读 · 0 评论 -
git忽略某些文件的推送
摘要:通过.gitignore文件配置Git忽略规则,每行指定一个路径模式(如/target/*.jar)。若文件已被追踪,需执行git rm --cached <文件>或git rm -r --cached <目录>移除索引但保留本地文件,使忽略规则生效。(99字)原创 2025-09-23 11:31:42 · 284 阅读 · 0 评论 -
mirrors和profiles中repositories的区别
Maven中mirrors与profiles/repositories的主要区别在于:mirrors是镜像仓库,优先级最高,用于重定向匹配的仓库请求(如国内镜像加速),必须完全托管原始仓库内容;而profiles中的repositories是仓库声明,优先级较低但更灵活,可选择性启用特定仓库。mirrors通过<mirrorOf>控制重定向范围,而profiles可以按需配置不同环境下的仓库,支持更精细的发布/快照版本控制。原创 2025-08-15 12:53:00 · 396 阅读 · 0 评论 -
跨系统开发代码换行符如何解决
跨系统时的换行符,只会影响非编译类源码文件,比如脚本、配置文件读取等。对于已经在不同系统生成的文件,想要更改文件系统的所属属性只能找工具,如果要更改的结果是linux,可以使用。当然还有一个一劳永逸的办法,Idea支持远程开发,通常是把代码放在Linux系统上,办公电脑用远程开发就行。对于日常开发来说,需要开发工具做如下配置,即可保证后续新增的文件不会出现跨系统换行符问题。首先 git 运行如下命令,全局支持换行符的统一识别。随后,Idea中设置代码格式。原创 2025-07-12 18:39:15 · 259 阅读 · 0 评论 -
git reset报错Filename too long
不要改Windows系统配置没用,也不要全局配置,git bash以管理员运行会有问题。在当前git仓库下运行。原创 2025-06-21 22:28:13 · 219 阅读 · 0 评论 -
hadoop.proxyuser.代理用户.授信域 用来干什么的
要注意的是这个代理用户对于hadoop本身来讲,并不是一定要存在于linux用户体系中,通俗的将,它只是一个向hadoop表明有权去代表其他用户的身份牌,至于这个代理用户的身份牌上对应的人是否真的存在,或者这个身份牌被谁拿到,hadoop并不关心。拥有授信域下用户的权限,这里的主动是指非授信域发起操作时直接被操作某些东西,也不用担心授信域内任何一个用户都有其他用户的权限,因为是代理用户获得了授信域内用户的身份,去操作对于的操作,而非授信域用户直接以代理角色去执行操作。原创 2025-05-17 19:56:50 · 978 阅读 · 0 评论 -
github登录用的TOTP和恢复码都丢失了怎么办
从22年左右开始github的登录就需要用TOTP的一个6位秘钥做二次认证登录,如果在用的TOTP软件失效了,可以用github开启二次认证时下载的恢复码重置认证,但是如果你和我一样这两个东西都没了就只能用邮箱重置了,过程给大家分享一下。点击绿色按钮之后,会给你的邮箱发一个六位密码,按照提示输入之后,经历一番复杂的验证,最后还要经过三个工作日才可以恢复登录。所以还是提前下载并保存好恢复码,在认证软件失效时,以备不时之需,下载的位置在,账号设置中。最后,呼吁保存好你的恢复码,别和我一样,真的也是无语了!原创 2025-01-19 00:15:01 · 1855 阅读 · 0 评论 -
ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM
看见这个报错不要慌张,这个是你开启了动态伸缩容器,且当这个容器触发了空闲关闭的阈值,默认是60秒,这时候该容器会被删除掉,yarn上就会出现这个错误,你查看driver的标准错误输出会发现类型如下的容器移除信息。如果你的spark on yarn任务正常运行,能得到结果,但是日志中出现了如下的报错。原创 2024-11-27 10:52:28 · 591 阅读 · 0 评论 -
常用的maven镜像仓库
给大家分享几个国内maven仓库,有的时候拉不下来包就切换这试一试,一般阿里云用的多。原创 2024-10-31 10:18:16 · 923 阅读 · 0 评论 -
CentOS 8配置阿里云yum源
最近正好搞一套3.x体系的大数据技术集群,用CentOS8的系统,发现默认自带的所有yum源貌似无法使用,这里记录一下配置阿里的yum源。第一步:移动走所有自带的repo文件,不然会影响。第二步:生成新的repo文件。第三步:更新yum缓存。原创 2024-10-14 17:46:30 · 2274 阅读 · 0 评论 -
linux中怎么一次提交多条命令
2、并行执行:如果你希望多条命令同时执行,互不干扰,可以使用&符号将第一条命令放在后台执行,然后立即执行第二条命令。但请注意,这实际上并不是将多个命令“拼接”在一起执行,而是让第一个命令在后台运行,同时立即开始执行第二个命令。在Linux上,如果你想要多条命令一起运行,有几种方式可以实现,但具体使用哪种方式取决于你希望这两条命令如何并行或顺序执行。1、顺序执行:如果你希望第一条命令执行完毕后,再执行第二条命令,你可以简单地将它们写在同一行,用分号(;3、使用&&和||进行条件执行。原创 2024-09-23 23:39:33 · 995 阅读 · 0 评论 -
shell中需要嵌套多段字符串时如何保证字符能正常解析
在shell字符串的嵌套需求出现在,我们要获取一个变量,或者这个字符串中需要存在一个路径等复杂情况下。一般情况下shell脚本的字符串可以使用"123"(双引号)或者是'123'(单引号)的形式来表达,同时按照规标准的范写法要求是单引号或双引号之间可以嵌套,但是必须可以被区分,就是说你不能单引号里直接再写一个单引号。而在实际的使用中,多数情况下,要拼接的语句比较复杂,这时导致标准写法反而成了限制,因此除了之外,常见的书写方法有下面几种。原创 2024-09-23 23:19:59 · 776 阅读 · 0 评论 -
hive中CASCADE关键字用来干什么的
CASCADE关键字,通常在更改表结构的语句之后出现,它的作用就是让hive去刷新历史数据,比如你在新增一个表字段的时候,你不加CASCADE关键字,就会造成表中已有数据的对应该字段为NULL,甚至有的时候旧的数据不认这个字段,因此在更改表结构的时候要带上这个关键字。原创 2024-09-11 18:29:19 · 516 阅读 · 0 评论 -
spark任务报错 Could not find CoarseGrainedScheduler
最后在排查问题的时候发现,在提交任务的命令上,服务的用户提交命令中对于标准的配置格式不对,导致客户端这边没有对任务正常的识别关闭,从而在yarn释放了资源之后,才发现任务已经关闭了。记录一个spark的异常问题,提交spark任务之后,从运行结果和yarn上的日志来看,任务是成功的,但是在client中末尾出现了如下报错。这个报错在社区上有相关案例——》原创 2024-09-18 15:35:46 · 988 阅读 · 0 评论 -
Idea开发Scala常见问题
这个错误通常出现在新建项目里面,这是个开发工具问题,点击Interllij IDEA中 File->Project structure, 选择 Module, 在Sources的页签里,右侧的, +Add Content Root面板中移除不存在的资源目录就行。这个问题一般出现在22版以后得idea上,原因是你在pom中导入的scala版本和你本地的SDK版本不一致,但是开发工具不提供兼容的能力,所以就报错了,解决方法就是把pom里面的scala版本号该成和本地一样的就行。原创 2024-08-25 10:26:31 · 655 阅读 · 0 评论 -
云和集群有什么区别?
而云,它其实就相当于是在集群和用户之间设立了一道墙,这个墙的目的是为了整合各种集群资源,并对外提供服务,我们日常所接触到的云,通常都以saas服务存在,或者可以把云本身看作是一个应用服务,归根结底是协助用户方把原本只能运行在相对于云而言固定的集群上的开发需求分摊开,至于分摊到哪种程度,就看这个云的大小了,至于它内部是怎么集成,这个云下的各种集群相互之间又是怎么调用,这就是这个云,也就是应用程序底层的逻辑控制了,用户侧只需要关心的是在saas页面上提交当前云能够处理的任务需求即可。原创 2024-08-14 00:36:55 · 754 阅读 · 0 评论 -
Windows安装JavaJDK的时候为什么两个jre
总的来说,JDK主程序安装时自带的jre时JDK自身必备的一部份它负责Java虚拟机等Java工具的运行,不可单独存在,不可被分离,而且不存在于Windows的注册表中,随着JDK的使用而使用,就相当于人的手臂一样,一个人活动的时候是整个人在动,而不是不需要大脑等其他组织就单独的手臂自己在动。很多初学者甚至参加已经参加工作的程序员,都有过一个疑惑在你自己的Windows电脑上安装JavaJDK的时候主进程自带一个jre之外,还会让你单独选择安装一个jre,在你安装完成后会发现拥有的文件都差不多。原创 2023-10-30 11:52:19 · 859 阅读 · 0 评论 -
解决git上传远程仓库时的大文件提交
可以看到配置项的最下面多出了一行我们刚刚配置的内容. (52428000=500×1024×1024,即500M)git默认限制最大的单文件100M,当某个文件到达50M时会给你提示。首先,打开终端,进入项目所在的文件夹;原创 2023-08-23 00:34:59 · 2636 阅读 · 2 评论 -
maven的打包插件如何使用
默认的情况maven项目不打第三方包的,想要打一个完整的包就需要,把下面的插件依赖导入pom。打完包后,除了原本的最小jar外,会有一个包名包含jar-with的jar。原创 2025-01-27 17:27:37 · 2411 阅读 · 0 评论 -
编程中数字类型能够容纳的数据范围,是怎么换算的?
当你知道上面说的两个东西,那么你就可以理解整形的数据范围,也就是当你规定数据长度为4,既长度为4字节时,整型数据所能容纳的数据范围是在 8 * 4 = 32 位之内,当你存储有符号数据时,由于最左侧的最大位数属于符号位所能容纳的数据也就只有31位了,就是说此时数据范围为-2∧(32-1) 到2∧(32-1)-1,即-2,147,483,648到2,147,483,647。,这种表示法有利于计算机更快速的计算数据,少沉余的编码,具体指的是,数字的最大位用来表示符号,0为正号,1为负号,其他位表示数字本身。原创 2023-08-11 02:39:40 · 382 阅读 · 0 评论 -
前端页面开发如何达到自适应不同设备宽高的效果
方法一,不使用固定的元素大小值,而是使用百分比,但是除非你开发的页面所需要的渲染相当直白,否则不推荐用。比如说在一个测试页面中只写一个div,它的宽和高设置为百分比,从效果中会发现,如果不做出其他的渲染配合,这个div的高度是塌陷的,也就是说,在页面上看不到这个div。不需要管不同的地方叫什么,只需要知道,这种适应不同设备展示效果可控的技术核心,是CSS提供的媒体能力,比如你可以写多个CSS样式,并在外链时检测浏览器可视宽度,只有符合宽高要求时才会生效。想要达到这样的效果,有两种方法。原创 2023-06-24 03:17:34 · 1467 阅读 · 0 评论 -
element对话框的遮蔽层z-index失灵出现在对话框的上层
正常半透明黑色的遮蔽层应该是在对话框的下面,使用控制查看发现对话框和遮蔽层的z-index每次都不同,而且遮蔽层始终在上面。很无语,用git在不同版本之间排查,虽然找到了这个问题触发的文件,但是具体在哪里一行行的代码删着排查都没找到,中途改了个自定义css的文件名短暂的恢复了,过了几个版本又出现了,所以具体发生的实际原因没定位出来。不过还好最后找到了解决方法,就是指定对话框和遮蔽层都插到body里,就好了。记录一次很无语的事情。写Demo的时候整个前端模块所有主页上用的对话框它们的遮蔽层。原创 2023-05-24 13:47:11 · 696 阅读 · 0 评论 -
正则表达式中的小括号有什么用
最后就是当小括号起分组作用的时候,被分组匹配到的多个数据会被另存组成一个数组,在某些框架中,可以单独拿出来使用。比如我们在使用nginx配置时就会遇到。,这个正则中(\d{1,3}.){3}表示匹配三位数字加上一个英文句号,将此看作是一个整体重复3次,最后再加上一个一到三位的数字。第二个作用是做中括号的平替,在实际使用中,我们常常使用中括号表示匹配多种选项中的任意一个,但其实你把中括号换成小括号也是可以的。所以被小括号包裹的正则你可以看作是一个通过已有的正则符号组成的新的自定义正则符号。原创 2023-03-29 02:15:29 · 1962 阅读 · 0 评论 -
nginx中try_files和proxy_pass
两者可以共存,比如可以在try_files中先尝试返回本地的静态文件,如果找不到再转到反向代理。但是需要注意,try_files只能在server或location中使用,而proxy_pass只能在location中使用。proxy_pass是用来将请求转发到指定的后端服务器,然后将后端服务器返回的内容返回给客户端。try_files是用来在本地找到并返回指定的文件,如果找不到则转到下一个指令。可以用来实现静态文件的访问。try_files和proxy_pass都是nginx中的指令,但是用途不同。原创 2023-03-28 12:23:32 · 1665 阅读 · 0 评论 -
springboot跨域解决方式
允许跨域的请求头信息,默认为“*”表示允许所有的请求头,CORS默认支持的请求头为:Cache-Control、Content-Language、Expires、Last-Modified、Pragma,如果你需要携带其他的请求头需要设置该属性。:支持的源,origins和value都是相同的配置,互为别名,默认配置是“*”,表示服务器支持所有源的跨域请求,安全信息较低,最好根据实际情况设置对应的信息(协议 + 域名 + 端口)。原创 2022-11-22 22:20:57 · 663 阅读 · 0 评论 -
java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES/CBC/PKCS5Padding
问题的触发场景:写一个文档处理功能时,使用的类库在解析文件内容时,在开发工具里运行一切正常,但是打包后cmd下java -jar运行的时候会报一个安全框架异常,信息如下。最后发现直接运行的时候加载不到jdk下的。单独拿出来,放到你的类路径下。给大家分享一个特奇葩的问题。包,解决方法就是把jdk下。指定jar包路径解决的。原创 2023-02-23 15:33:14 · 2557 阅读 · 2 评论 -
idea中scala报错compiler-interface
这个错误一般是在使用2022版idea之后会发生的,自带的scala-jdk和自己本地的java-jdk版本冲突导致的。,在此界面检查你的scala-jdk是否为本地,如果不是则更改。点开设置后检查javajdk是否是自己本地的。原创 2023-02-14 20:43:49 · 1774 阅读 · 5 评论 -
SSM和SpringBoot添加web环境
Springboot和SSM添加Web依赖的本质区别就是由于springboot在创建的时候内部可以添加Web依赖,从而不同于SSM需要从最基本的Web环境配起,springboot只需要确保创建项目存时勾选了Web依赖就可以,就算后期需要另外的自定义web路径也只是添加一个就行。在弹出的页面中,你要注意你的web虚拟路径的物理路径映射,以及webapp的文件夹在哪里创建,一般改成项目主路径下,比如我的是。点击最下面的OK保存退出tomcat的配置界面,后面使用的时候点击右上角的启动就行。原创 2023-02-05 13:13:10 · 2082 阅读 · 0 评论 -
NAS和磁盘阵列有什么区别?
磁盘阵列的核心是通过raid卡,或者配合expander卡组成的大容量存储器,就相当于一个超大容量的硬盘。甚至磁盘阵列需要很大的时候,可以考虑磁盘阵列柜。但无论是哪种,它本质上都只是一个存储器而已。而NAS本质上是一个用磁盘阵列来当做存储硬件的服务端,也叫网络存储池,特点通过网络发现与使用,本身属于一种软raid。如果有机会见一次被做成nas的服务器,你就会发现它从外观上,和我们常识中的服务器或者个人PC端差别不大,都是CPU内存主板等硬件组成。区别在于有专门的系统,使得运行模式不同而已。原创 2023-01-26 17:22:40 · 4197 阅读 · 0 评论 -
RAID不同模式之间的区别
而且两份校验数据使用的是不同的算法。,这是一种软raid,是群晖提供的一款产品,它就是常说的那种,可以自动判断适合使用哪种模式的raid。,是在raid2的基础上改善过来的,区别有两点,一是简化了算法的复杂度,二是将校验数据放入了一块单独的盘中,但读写操作时都会访问校验盘,导致其高负荷运转,相当容易损坏,整个数据整列就全完了,非效验盘允许损坏一块。,将所有的盘视为一块,拥有全部的写入容量,没有任何校验编号算法,数据以多片的形式写入不同盘,所以读写是最快的,但安全性是最低的,只要坏一块硬盘,所有数据都完蛋.原创 2023-01-25 18:34:03 · 5721 阅读 · 0 评论 -
github上的远程库如何多人一起开发
一般情况下,公开的项目时是可以让所有人发Pull请求的,但是有的项目并不能公开,作为私有的仓库可以让项目原持有者,在github上在如下入口向合作者发送项目邀请,按照名字即可搜索到对方,随后就需要被邀请者同意,并clone一下项目。原创 2022-12-27 18:09:31 · 985 阅读 · 0 评论 -
推送github一直超时以及输入密码提示2021年8月以后密码不能用解决
至于密码的问题,是github截至2021年8月以后认证账户用的密码不再是你的个人密码,而是需要token。最后你在推送的时候提示的密码输入就用这个token,或者你可以在添加远程库的时候就指定好。最近推送github常常出现443端口超时,查询了很多办法最后用了如下方法解决。随后会给你一个token,在绿色div里,一定要保存下来,后面就查不到了。权限选择repo和delete_repo,其他的有需要自己选择。your_token:换成你自己得到的token。这需要你在github上点击设置。原创 2022-12-17 16:38:04 · 959 阅读 · 0 评论 -
idea配置tomcat日志中文乱码,且修改后idea正常,但cmd窗口任然中文乱码解决方法
可以不勾选,它的作用是用选定的字符集把项目的所有内容变成Unicode编码,结果就是在开发工具中显示正常,但是一旦复制出去单独打开,除了英文全是Unicode编码。idea日志乱码问题的原因是tomcat的日志配置文件有两行有问题需要删掉,cmd乱码是Windows系统cmd窗口默认不是utf-8。不方便的地方就在于,你不能鼠标直接运行相关程序了,只能在该cmd窗口中命令行的方式运行程序。随后解决cmd乱码的问题,这个很好解决,你只需要在运行你的java进程前运行。当然,你其实可以写一个bat的脚本,把。原创 2022-12-17 00:19:03 · 1168 阅读 · 0 评论 -
Java线程池中的线程数设置多少个合适,什么情况下会导致OOM
这个问题的核心点在于,我们使用线程池无论设置多少个线程数,它都是在主进程下的若干个线程,所共享的都是主进程的内存资源,而在不同的系统上,能够允许一个进程所占用的最大内存数是不一样的,在Windows体系中,32位的系统只允许一个进程最大占4g内存资源,而且其中2g还要给系统,也就是说一个进程能够实际使用到的最大内存也就2g,linux系统中是3g,而且这个值无法往大调,这是32位系统无法摆脱的限制,大家可以网上搜一篇文献。它是指当一个进程所需要的实际内存,超过了它所能占用的最大内存时,爆发的一个错误。原创 2022-12-13 02:20:58 · 3054 阅读 · 0 评论 -
CIDR格式网络策略值设置方式
理论上来讲,网络ID值的大小决定了网络策略所处的网段类型,A类网络每个网段所能容纳的IP最多,最大为16581375个IP,所以它所能配置的网络也就越灵活,B类每个网段最大65025个IP,同理C类最次每个网段只能容纳255个IP,所以一般公司里面使用的都是A类地址。到这里我想,大部分人可能已经蒙了,因为按照上面说的,A类网络的子网掩码应该是从255开始到255点255.0结束,其他的也是同样的道理,但是为什么这里所有的网络ID中都可以适用于A类。同时大家要知道一个铁律!这样的C类子网掩码呢?原创 2022-12-13 01:07:47 · 2500 阅读 · 0 评论 -
idea中maven项目开发scala代码
第一步:下载Scala插件,下图已经下载好了,没有下载时最右侧的详情中会有下载安装按钮,你也可以在项目中的settings-plugins中下载,一样的。前置条件你的电脑需要安装有JAVA-JDK、Maven、Scala-JDK、idea。第三步:src下创建一个scala资源路径,并设置为代码路径。第二步:正常创建Maven工程。OK后就可正常开发Scala了。第四步:添加scala的支持。原创 2022-11-03 16:35:51 · 703 阅读 · 0 评论 -
什么叫高内聚、低耦合?
耦合这个词,在开发人员里常常提到,但是很少有人解释耦合到底是什么?导致很多新手听见高内聚、低耦合这两个名词,就很奇怪,不知道到底说的是什么?耦合,在开发中说的是所写的业务代码跨了几个动作,动作跨的越多耦合度就越高,比如当你开发一个商城系统时,将用户下单、系统接收订单、系统处理订单、订单结果返回,这五个动作开发在一个业务流里面,这就是一个很高耦合的开发,其中任何一个动作发生意外都可能导致整个系统瘫痪。常用的解耦和方法就是使用MQ技术,比如kafka,将业务系统的流程模块化分离,而每个模块专心干自己的事就叫原创 2022-10-23 22:04:08 · 652 阅读 · 0 评论 -
Flink开发语言使用Java还是scala合适?
可问题就是先它一步的spark,已经早在2010年对外开源发布得到了很多的代码贡献,更是在2012年的时候就发布了0.6的第一个正式版,我们都知道一个道理,一步快步步快,所以spark在第一个正式版本发出以后,进入了更快的发展,2013年的时候成为了Apache基金会下的项目,并在同年研发出了机器学习、流处理,以及spark sql的前身shark,再到2014年的时候,正式发布了1.0版本,不只有了图计算,而且还开发出了spark sql,更是成为了Apache顶级项目。Scala还是Java?原创 2022-10-15 16:11:43 · 12056 阅读 · 5 评论
分享