java
小手追梦
技术致富
展开
-
谷粒商城实战笔记-开发小技巧汇总
windows上nacos的本地启动比较麻烦,每次要打开cmd,切换到对应目录,执行一个不容易记住命令,效率很低。要解决这个问题也很简单,写一个bat脚本,配置到环境变量中,以后只要输入一个简单的命令就可以启动nacos了。之后,只要在cmd输入下面的命令就可以启动nacos了。将这个脚本所在的目录配置到环境变量。原创 2024-07-23 10:46:23 · 357 阅读 · 0 评论 -
妙招-windows一键启动nacos
windows上nacos的本地启动比较麻烦,每次要打开cmd,切换到对应目录,执行一个不容易记住命令,效率很低。要解决这个问题也很简单,写一个bat脚本,配置到环境变量中,以后只要输入一个简单的命令就可以启动nacos了。之后,只要在cmd输入下面的命令就可以启动nacos了。将这个脚本所在的目录配置到环境变量。原创 2024-07-23 09:11:12 · 693 阅读 · 0 评论 -
java错误记录
检查Application配置扫描包是否正确:启动类添加:三,下划线转驼峰启动类添加:4, mybatis : Error setting non null for parameter #25下面不要加引号原因是devops不能及时的拉取代码,不明原因,一般等几分钟后尝试。sql太长,不容易找错误,原因如下,画蛇添足的给子查询加了一个别名,其实t就已经是别名了,又在里面加了一个别名,下面图示是准确的,错误已经被修正使用基础服务的包动态获取数据库连接信息,但连不上,报密码错误。原因是从数据原创 2024-07-22 19:38:11 · 1272 阅读 · 0 评论 -
MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法
rewriteBatchedStatements原创 2023-02-09 15:06:37 · 370 阅读 · 1 评论 -
ElasticSearch开启xpack后登录失败
用浏览器通过9200端口连接elasticsearch,一直失败:我还一直以为是证书的问题,也忽略了后台的报错信息的真实意义。放了一天再来看,才发现是密码问题。联想到早上删除了data目录,连密码也删掉了。于是重新设置密码。elasticsearch-setup-passwords auto...原创 2022-04-28 19:36:03 · 1661 阅读 · 0 评论 -
elasticsearch-ingest-pipeline总结
一,ingest节点的作用ingest节点在稳定写入前对文档进行指定的预处理,类似大数据的ETL二,ingest的使用默认集群每个节点都具有ingest的作用,通常建议配置具有单一职责的ingest节点。确定ingest节点后,要定义pipeline,pipeline中指定具体的逻辑。三,ingest的使用总结1,定义pipelinePUT _ingest/pipeline/indexed_at{ "processors": [ { "script": {原创 2022-04-24 07:36:50 · 1907 阅读 · 0 评论 -
elastisearch启动报错:org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAIL
使用命令启动一个ES进程:bin/elasticsearch -E node.name=warmnode -E cluster.name=geektime -E path.data=warm_data -E node.attr.my_node_type=warm报错:[2022-04-12T07:40:22,156][WARN ][r.suppressed ] [warmnode] path: /.reporting-*/_search, params: {index=.转载 2022-04-12 07:48:08 · 1503 阅读 · 0 评论 -
linux下source之后环境变量重复
在linux中修改了jdk的环境变量,使用java -version验证,没有生效,使用echo $PATH打印环境变量,发现环境变量重复,老的jdk的环境变量并没有删除,新旧jdk环境变量都存在,旧的在后面覆盖了新的环境变量。这是为什么呢?在配置文件中已经注释掉了老的环境变量啊。原因类似于缓存,PATH的值在当前窗口下保存在内存中,但配置文件中使用PATH拼接新的配置时,PATH中保存的老的环境变量没有被覆盖,而是直接拼接上新的配置。解决办法:打开新的窗口,执行source命令。...原创 2022-04-06 08:24:53 · 2305 阅读 · 0 评论 -
Spark jar包加载顺序及冲突解决
一,spark jar包加载顺序1,SystemClasspath – Spark安装时候提供的依赖包,通常是spark home目录下的jars文件夹 【SystemClassPath】2,Spark-submit --jars 提交的依赖包 【UserClassPath】3,Spark-submit app.jar或者shadowJar打的jar 【UserClassPath】二,jar包冲突解原创 2022-03-23 15:51:50 · 5957 阅读 · 1 评论 -
Intellij compile failures: “is already defined as“
idea调试spark程序报错:Intellij compile failures: "is already defined as"不知是何原因,解决方案:右键scala文件夹,如下图所示,unmark as Sources Root,之后正常原创 2022-03-23 14:52:51 · 1581 阅读 · 0 评论 -
dbeaver 切换结果显示位置
水平显示效果:原创 2022-03-21 17:47:44 · 7857 阅读 · 1 评论 -
Can not initialize cryptographic mechanism
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanismat javax.crypto.JceSecurity.(JceSecurity.java:93)... 33 moreCaused by: java.lang.SecurityException: Cannot locate policy or framework files!at javax.crypto.JceSecurity.se原创 2022-03-01 11:14:44 · 2325 阅读 · 3 评论 -
记一次Spark打包错误:object java.lang.Object in compiler mirror
使用maven compile和package,一直报错scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found.error: error while loading <root>, error in opening zip file[ERROR] error: error while loading <root>, error in open原创 2022-02-11 18:29:41 · 1581 阅读 · 0 评论 -
IDEA编译报错:java: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出
IDEA编译Flink源码时报错:java: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出原因是环境变量配置的是JDK8,Flink部分代码是基于JDK11编写的,将JDK升级为JDK11,重新编译即成功原创 2021-12-30 21:53:53 · 3184 阅读 · 0 评论 -
windows10 修改java环境变量不生效
一、问题以前安装过安装版的jdk后,配置过环境变量,然后现在更换jdk版本且修改环境变量并不能生效,如原本安装了1.8,现更换为1.7,且配置了环境变量,但是java -version仍显示1.8。二、原因当使用安装版本的JDK程序时(一般是1.7版本以上),在安装结束后安装程序会自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到C:\Windows\System32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,故此直接更原创 2021-12-29 16:28:56 · 5916 阅读 · 5 评论 -
Spark性能调优案例
在实际工作中,性能调优是必不可少的,虽然业务千种百样,实际落地的解决方案可能也不尽相同,但归根结底,调优的最终目的是使得内存、CPU、IO均衡没有瓶颈。基本上,思路都是结合实际业务、数据量从硬件出发,考虑如何充分利用CPU、内存、IO。除了对业务的理解之外,对于Spark本身的机制也要深入理解,这样才能通过各种调整,充分发挥Spark的优势,达成调优的目的。下面以一个案例尝试总结常用的Spark调优思路和实践。案例数据来源极客时间Spark 性能调优实战,数据地址百度网盘,提取码 ajs6 。数原创 2021-12-21 20:03:55 · 2823 阅读 · 0 评论 -
虚拟机-扩充硬盘
扩充硬盘https://www.cnblogs.com/wy20110919/p/9150914.htmlhttps://cloud.tencent.com/developer/article/1563508?from=14588原创 2021-12-09 16:06:44 · 507 阅读 · 0 评论 -
Mysql开启binlog后启动失败
一,开启mysql日志在/etc/my.cnf文件中添加配置:log-bin=mysql-binbinlog_format=rowbinlog-do-db=mydb二,开启后重启失败报错信息:Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.原创 2021-12-09 07:09:42 · 4415 阅读 · 0 评论 -
嘴说手画Spark的Shuffle
Shuffle是所有分布式计算引擎都必须涉及的话题,一方面这是计算过程中无可避免的过程;另一方面由于Shuffle过程通常都伴随着网络IO和磁盘IO,是计算过程中的性能杀手,对shuffle的优化通常都会取得不错的效果。先来看看Shuffle的原理,下面是Shuffle的过程示意图:从图上可以看出,shuffle分为两个过程:Shuffle WirteShuffle Read一,Shuffle Writespark的Task分为两类,一是ShuffleMapTask,一是ResultTas原创 2021-12-08 09:23:21 · 348 阅读 · 0 评论 -
Java与Scala的转换
一,java Map 转为 scala.collection.immutable.Mappublic static <K, V> scala.collection.immutable.Map<K, V> toScalaImmutableMap(java.util.Map<K, V> jmap) { List<Tuple2<K, V>> tuples = jmap.entrySet() .stream原创 2021-11-28 10:54:01 · 2254 阅读 · 0 评论 -
Doris编译
使用Doris,官方不提供编译好的jar包,需要自己编译,最方便的方式是通过Docker编译,避免了安装各种环境的繁琐。编译过程中错误一:thrift failed error: /bin/sh: thrift: command not found要安装thrift:安装Thrift安装Thrift的过程中,要安装yum...原创 2021-11-26 16:05:58 · 1134 阅读 · 0 评论 -
Flume实战-解决零点漂移-时间戳拦截器
对于日志,flume sink写入HDFS时,如果指定按照时间生成文件,在没有明确指定时间的情况下,会读取服务器时间作为创建文件的已经,这会导致日志的实际生成日期与文件不符。这种情况下,可以通过拦截器在flume事件头指定timestamp作为文件的创建依据。所谓零点漂移,就是上述问题的具体表现。即在按天生成日志文件的情况下,一条23:59:59左右生成的日志发送到服务器后可能已经是第二天了,如果没有指定时间,会被写入第二天对应的文件中,这就是所谓的零点漂移。import com.alibaba.fa原创 2021-11-25 22:58:20 · 5135 阅读 · 0 评论 -
线程池之阻塞主线程,等子线程全部跑完之后,执行主线程
final AtomicInteger messagesReceived = new AtomicInteger(0);// ThreadedListenerAdapter is the class that I'm testing // It's not germane to the question other than as a target for a thread pool.final ThreadedListenerAdapter<Integer> adapter =原创 2021-11-13 09:18:27 · 2235 阅读 · 0 评论 -
docker安装wordpress
参考文章步骤:1,安装docker2,下载wordpress镜像3,下载mysql镜像4,启动mysql容器5,启动wordpress容器遇到的问题:1,进入wordpress报数据库错误,猜测是连不上数据库,在宿主机尝试连接MySQLmysql -h172.17.0.3 -uroot -p123456结果正常,说明mysql容器正常工作。2,进入wordpress容器尝试测试是否能够连接,发现没有telnet,于是安装telnet安装各种工具telnet 172.17.0.3原创 2021-11-13 06:41:21 · 2319 阅读 · 1 评论 -
DBeaver改变字体
dbeaver的sql编辑区字体小,费眼,想改变字体,在设置中没有改变字体的设置,折腾好半天,发现另一种曲线救国的方式:原创 2021-10-20 15:04:58 · 1608 阅读 · 0 评论 -
带T的时间字符串:2021-09-30T06:20:43+02:00
参见:http://www.w3.org/TR/NOTE-datetime原话:Note that the “T” appears literally in the string, to indicate the beginning of the time element, as specified in ISO 8601.T即Time, 就是表示其后的数据为time, 其之前的数据为 Date。...原创 2021-10-20 14:35:11 · 1110 阅读 · 0 评论 -
我读zookeeper源码系列1
一,准备工作1,zookeeper版本01、zookeeper-3.4.x 企业最常用,大数据技术组件最常用,基本维持在 3.4.5 3.4.6 3.4.7 这几个版本 02、zookeeper-3.5.x 03、zookeeper-3.6.x 04、zookeeper-3.7.x源码项目注意:zookeeper-3.4.14.tar.gz,安装包就是源码包,ZooKeeper-3.5 以上,源码 和 安装包就分开了。整体的原则:不新不旧的稳定版本 + 考虑企业使用版本最终结论:原创 2021-10-15 07:45:38 · 155 阅读 · 0 评论 -
JAVA虚拟机灵魂之问:Xmx和Xms不一致对虚拟机性能有何影响
使用jvisualVM查看idea进程,发现其关于堆大小的参数设置如下:并发现随着idea加载项目,其实际使用的内存会自动增大:加载项目前和加载项目后,堆大小是不一样的,有一个大幅提升的阶段,随着所需要的内存的增多,虚拟机会多次向操作系统申请更多的内存,且会伴随着频繁的垃圾回收。当然,其申请的内存会介于最小128m最大2g的范围内,超出2g就会报oom。为什么不一开始就申请2g的内存呢?显然是考虑到资源的按需使用,如果一开始就申请2g的内存,而运行过程中就会有大量的内存长时间被浪费。不过很多业原创 2021-10-10 08:08:15 · 1196 阅读 · 0 评论 -
ClickHouse代码片段
一,根据DataFrame的schema自动建表public static void autoCreateTable(StructType schema, String table) { String sql = "CREATE TABLE IF NOT EXISTS %s.%s_local ON cluster default_cluster" + "(" + " %s " + " ck_insert原创 2021-09-21 11:33:44 · 281 阅读 · 0 评论 -
com.fasterxml.jackson.core.exc.InputCoercionException
<dependency> <groupId>com.liferay</groupId> <artifactId>com.fasterxml.jackson.databind</artifactId> <version>2.10.0.LIFERAY-PATCHED-1</version> </dependency>原创 2021-09-09 11:34:26 · 1181 阅读 · 1 评论 -
手撸算法-买卖股票的最好时机
题目:买卖股票的最好时机牛客原题import java.util.*;public class Solution { /** * * @param prices int整型一维数组 * @return int整型 */ public int maxProfit (int[] prices) { // write code here // 第二种方法 int[]profits = new in原创 2021-09-05 16:31:14 · 85 阅读 · 0 评论 -
手撸算法-二叉树根节点到叶子节点和为某值
import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution { /** * * @param root TreeNode类 * @param sum int整型 * @return int整型ArrayLi原创 2021-09-04 17:40:03 · 88 阅读 · 0 评论 -
手撸算法-计算表达式
牛客原题描述请写一个整数计算器,支持加减乘三种运算和括号。示例1输入:“1+2”返回值:3示例2输入:“(2*(3-4))*5”返回值:-10示例3输入:“3+234-1”返回值:26package leetcode2;import java.util.ArrayDeque;import java.util.Deque;import java.util.HashMap;import java.util.Map;public class Exp原创 2021-09-03 17:21:40 · 124 阅读 · 0 评论 -
手撸算法-两个子节点的父节点
牛客原题描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同。示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1返回值:3解法一1,使用层序遍历,直到找到两个结点为止2,层序遍历过程中,将子节点与父节点组成的键值对保存在Map中3,遍历Map,将o1的所有父节点保存到集合中List中4,遍历Map,逐个判断o2的父节点是否存在于o1的父原创 2021-09-02 08:50:45 · 214 阅读 · 0 评论 -
手撸代码-LRU
NC93 设计LRU缓存结构-牛客原题描述设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值提示:1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。2.当缓存的大小超过K时,移除最不经常使用的记录。3.输入一个二维数组与K,二维数组每一维有2个或者3个数字,第1个数字为opt,第原创 2021-09-01 08:59:21 · 207 阅读 · 0 评论 -
手撸代码-最长回文字符串
求最长回文字符串思路一:动态规划回文字符串的最大长度是n,最小长度是1对于1~n的每个长度k,从左到右遍历字符串,判断每个长度为k的子字符串是否是回文字符串长度为k的字符串(左右边界是i,i+k)是否为回文字符串依赖于字符串(i+1,i+k-1)是否是回文字符串长度为1的字符串肯定是回文字符串public int getLongestPalindrome(String A, int n) { // write code here boolean[][] isP原创 2021-08-31 21:59:47 · 88 阅读 · 0 评论 -
手撸代码-二叉树的层序遍历
二叉树的层序遍历:1,递归,向遍历父节点,然后遍历子节点 public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) { // write code here ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(ro原创 2021-08-30 14:35:16 · 103 阅读 · 0 评论 -
手撸代码-删除链表的倒数第n个节点
描述给定一个链表,删除链表的倒数第 nn 个节点并返回链表的头指针例如,给出的链表为: 1→2→3→4→5, n= 2n=2.删除了链表的倒数第 n 个节点之后,链表变为1→2→3→5.备注:题目保证 nn 一定是有效的请给出时间复杂度为 O(n) 的算法解法一:将链表存入Map中,通过索引快速找到要删除的结点,要注意头尾结点的删除的特殊性public ListNode removeNthFromEnd (ListNode head, int n) { // wr原创 2021-08-29 08:01:25 · 92 阅读 · 0 评论 -
手撸代码-括号序列
思路:1,利用栈的后进先出的特点,遇到左括号入栈,遇到右括号则将栈顶元素与右括号判断是否相等,不相等则不是合法的括号序列2,循环结束后,栈为空,说明不是合法的括号序列 public boolean isValid (String s) { Vector<Character> stack = new Vector<>(); for(int i = 0; i < s.length(); i++) { c原创 2021-08-28 15:40:25 · 103 阅读 · 0 评论 -
手撸代码-找到环入口
题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。思路:1,使用两个指针,快指针与慢指针,慢指针一次走一步,快指针一次走两步。2,两个指针都从A点出发,假设B点是环的入口,如果有环的话,两个指针一定会重合,重合点记为C点。3,从A点到B点的长度记为X,从B点到C点的长度记为Y,当两个指针相遇时,慢指针走过的长度是X+Y,并由此推测快指针走出的长度是2X+2Y,这是因为慢指针走一步,快指针走两步。4,由上图看出,慢指针走过的路线是:AB+BC;而快指针走过的路线是原创 2021-08-26 21:15:20 · 195 阅读 · 1 评论