自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Levin的技术工厂

现在难过的事,总有一天会笑着讲出来。

  • 博客(94)
  • 资源 (7)
  • 收藏
  • 关注

原创 Maven Surefire Exclude 无效问题排查日志

昨天有个需求,要在单元测试的时候单线程执行,并且只执行单元测试类特殊结尾的,那么根据以往经验,直接在maven里面配置exclude并且指定include即可。原来surefire的配置是获取的根目录中的pom.xml,修改对应的pom.xml后生效了。可是配置了以后,exclude未生效还是会执行带有Test的测试,之后又进行了如下猜测。经过debug发现获取到的include和exclude和我配置的不一样。看来只能debug surefire看看到底为什么了,记录一下步骤。

2023-10-13 17:18:12 729

原创 K8s为什么要放弃Docker

Docker 于 2013 年发布,解决了开发人员在端到端运行容器时遇到的许多问题。下面是他包含的所有东西:● 容器镜像格式● 一种构建容器镜像的方法(Dockerfile/docker build);● 一种管理容器镜像(docker image、docker rm等);● 一种管理容器实例的方法(docker ps, docker rm 等);● 一种共享容器镜像的方法(docker push/pull);● 一种运行容器的方式(docker run);

2023-04-14 09:53:18 8021

原创 K8s Pod中域名解析失效问题排查记录

并且备注一下,当存在个别Service通过NodePort无法访问,可以排查一下对应service的endpoints,类似下面这种,可以将service删除重新创建。昨天突然发现gocd中部署的pipeline都执行失败了,查看日志中有host not found,很奇怪一直好好的。下面记录一下排查记录。后续有进展会继续更新。

2023-03-23 17:30:14 863

原创 K8s新Node加入节点NotReady(不要删除network-plugin=cni配置)

新节点当遇到NotReady的状态,修改Node节点的/var/lib/kubelet/kubeadm-flags.env 配置,将–network-plugin=cni去掉即可。

2023-03-20 20:03:33 364

原创 通过Kubeadm 升级k8s集群

之前维护的集群由于是1.17的,那么现在由于要部署一个服务需要的特性不支持,那么需要升级到1.19.4版本,现将过程记录下来由于kubeadm不能跨大版本升级,那么需要一个版本版本的升级,需要1.17->1.18->1.19,下面记录一下如何从1.17升级到1.18。

2023-02-10 11:55:34 190

原创 Maven 高版本 (3.8.1+) Blocked mirror for repositories

在maven高版本中如果配置了http的mirror地址如下那么maven是会抛出Blocked mirror错误,具体原因见这个链接https://maven.apache.org/docs/3.8.1/release-notes.html#cve-2021-26291不过也是有解决方法的,可以配置一个规则将对应的域名映射到实际的ip。

2022-09-21 19:37:15 1636

原创 高性能字符串判空

高性能字符串处理

2022-07-21 16:23:55 159

原创 K8s重置Master与Node

不管在生产环境还是测试环境都会遇到需要将Master或者Node进行版本升级或者重新搭建,下面记录一下必要的命令Master清理脚本(一定要确认是否有必要重置,数据都将清除)ps -ef | grep docker | awk '{print $2}' | xargs kill -9kubeadm reset --forceyum makecache fastyum list installed | grep kube | awk '{print $1}' | xargs yum autoremo

2022-05-30 14:28:35 557

原创 Linux定位流量异常指南

记录一下如何查看某个网卡流量最多进程,用到几个命令dstatdstat 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。dstat 默认没有安装,安装命令为:yum install -y dstat。dstat -tnf 1 10 输出接下来10秒内每秒的网络数据:iftopiftop 是一款实时流量监控工具,可以查看每个连接的实时速率。iftop 来自EPEL软件库,安装命令是:yum inst

2022-05-27 16:29:49 1077

原创 记一次因为一个3导致的Double.parseDouble失败

最近在跑的一个spark任务总是因为parseDouble中报NumberFormatException,但是我的逻辑中都是基于fastsql中的类型断定去存放到一个Double集合中,当使用的时候会去进行进行Decimal的断定,在类型转换的时候就直接进行了转换,代码如下private boolean isMatch(String value) { int integerLocation = numericPrecision - numericScale; long min = (long)(0

2022-03-08 11:57:00 1542

原创 Maven Proguard插件进行代码混淆

最近想把代码进行混淆,研究了一下proguard,把配置保留一下有两个类TestOne.javapackage com.alibaba.proguard;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import com.levin.proguard.pojo.Person;import lombok.extern.slf4j.Slf4j;/** * @progr

2022-02-18 11:33:52 1860

原创 k8s-flannel网络Node上限突破255

在之前的文章中描述了高可用的k8s集群如何搭建,并且是基于flannel的,flannel如果采用默认配置那么集群的Node上线只有255个,在多的话port就不够了,只所以这样取决于podPort数的权衡,默认的情况Node上的pod数是可以存在很多的,但是在某些情况下,Node中的Port数并不需要很多,需要的是一个Node很多的k8s集群,那么我们就需要调整flannel的配置,如果调整的话那么Node的状态会一直处于NotReady并且查看Flannel的日志为 Error registering

2021-10-12 16:41:53 1163

原创 K8s持久化卷 (PersistentVolume)应用

吐槽应用k8s也有段时间了,不得不说在无状态服务上k8s确实很好用,但是有状态服务用k8s还是难免有些心虚(了解的还是够深入吧…),担心数据丢失,所以推荐在大家将有状态服务部署到k8s集群中时,还是要定时备份的。今天写一下k8s中pv和pvc如何运用,可以极大的方便我们抽象存储,不必理会存储实在那些node上。第一步将local-pv-provisinoer部署到集群中,他是一个daemonSet类型的服务,因为daemonSet是应用于Node上的,所以它可以配置一个路径用于目录挂载,如果Node中

2021-10-12 11:45:13 258

原创 Jar包冲突发现的几种方法

一般jar包冲突了都会得到类似的异常java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet()总结了几种方式一、 mvn dependency:treemaven项目可以通过打印依赖树,定位具体的jar包二、 maven helper 插件intellij idea可以安装maven helper来查找本地工程的冲突三、通过this.getClass().getResource("/com/

2021-09-08 19:33:45 441

原创 Mysql on K8s - 基于NFS

目的今天写的这篇,主要是为了解决在k8s中搭建mysql,并且基于NFS-PV的方式,基于这种方式搭建有状态存储相对可靠,并且易于维护。什么是NFS网上类似的文章很多,可以简单的理解为一种网络存储,分为server和client两部分,server提供真实的存储,client将这部分网络存储挂载到本地,作为共享使用。搭建NFS-Sever教程全部基于Centos7.4其他版本请自行尝试#关闭防火墙systemctl stop firewalldsystemctl disable firewa

2020-11-08 15:26:52 322

原创 ElasticSearch on K8s 日志收集

在搭建好K8s集群后,会在集群上部署一系列自己需要的应用,那么这些应用如何收集利用是个最大的问题,今天就来说一下如何搭建Es on k8s 并且将pod中产生的日志写到es并用kibana查询的方法。下面见干活注意日志收集采用的是k8s+es+kibana+fluentd实现docker的Log Driver一定要是json-file模式,可以用 docker info | grep ”Logging Driver"命令查看如果在生产环境下部署es到k8s一定要考虑好磁盘容量的问题,提前进行磁盘的

2020-11-01 22:09:47 804

原创 Kubernetes集群搭建(单Master)

最近在负责团队的K8s集群的搭建和组件维护工作,也顺便把这过程记录下来,避免后面的同学采坑。下面直接上干货注意在开始搭建之先声明一下,这个教程的所有操作系统都为centos7.4,一共需要3台机器来搭建集群。1个master和2个node节点,如果采用虚拟机搭建的同学只需要保证机器之前网络是通畅的并且可以访问互联网即可。如果机器之前非纯净系统在执行脚本时请谨慎操作,脚本中有很多覆盖配置的操作。本教程都以root用户执行在执行前已经将host配置完毕准备工作先划分好三台机器的角色和host

2020-11-01 18:37:08 191 1

原创 Lex Sample Program

用来使用lex来机型词法分析的一个小程序备注一下这个程序的目标是,读取下面格式的配置文件并且打印出key,valueconf.inidb_type : mysqldb_name :testdatadb_table_prefix : levindb_port : 3306scanner.h#define TYPE 1#define NAME 2#define TABLE_PREFIX 3#define PORT 4#define COLON 5#define IDENTIFIER

2020-08-05 14:02:44 143

原创 Shell读取mysql数据

今天有个需求需要写个shell读取mysql记录,操作一些文件,搜索了一下踩了些坑记录一下shell2.0写法注释:注意"done< <(“的写法,第一个”<“要和"done"之间没空格,两个”<“之间有一个空格,”<" 和"("之间没空格COMMAND1="mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME}e.g.while read -a rowdo echo ".

2020-06-11 16:39:44 790

原创 记一次DBCP2连接不回收,程序卡死,分析过程

最近刚换了新公司,想去优化一下之前的代码,提高一下任务执行效率,review了一下之前的代码,可以优化的地方挺多的,公司有一个查询db的sdk,被之前的同事用druid datasource 封装了一下, 看了一下sdk的实现,本身是有pooling的支持的,那么我就大刀阔斧的进行了代码的重构,本着有现成的就不过多的扩展(之前的代码实现的也不是太好,fork了堆无用的类,只为了封装druid)。经过一顿修改之后打包测试,简单的sql可以,但是如果多线程并发下,会出现程序卡死的情况,执行了一下jstack

2020-05-25 20:49:48 812

原创 什么情况下ThreadLocal会导致内存泄漏(附案例)

如果没有看过ThreadLocal源码的,建议先去看看源码在来看这篇帖子,博主这篇帖子主要是先真实的模拟一下,什么情况下会导致内存泄漏。网上关于ThreadLocal的文档很多,就不过多追溯基础原理了。每个Thread本身会维护一个threadLocals,这个对象就是一个ThreadLocal.ThreadLocalMap,而ThreadLocal维护一个ThreadLocalMap,这个Ma...

2019-12-24 18:17:03 939 7

原创 修改logback日志框架默认文件路径(附修改思路)

如果配置过logback的同学肯定都清楚,在resource下创建一个logback.xml文件即可,但是今天遇到了一个需求,需要在生产环境和开发环境进行区分,因为生产环境下的路径是work用户的而我们开发环境是dev用户,默认权限运维也只给到home目录下,如果配置文件只有一套的话,在开发时需要调整地址,而发布代码的时候又要改回去。容易出错也麻烦,那么以这个背景为前提,研究一下如何配置。之前也...

2019-11-14 16:56:57 4809

原创 JDBC别再写Class.forName了

昨天同事不小心把Class.forName删掉了,程序却依然可以运行,问我遇到过这种情况么,我说不能呀,一直脑袋里印象都是必须要写Class.forName("com.mysql.jdbc.Driver")然后会调用类中的静态块注册到DriverManager中啊。本着不知道看源码的原则,跟到com.mysql.jdbc.Driver中下面是Driver类public class Driver...

2019-11-14 10:34:58 343

原创 KMP算法浅析

概念KMP是一种模式匹配算法。模式匹配模式匹配是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配。假设P是给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这个问题成为模式匹配问题。P称为模式,T称为目标。如果T中存在一个或多个模式为P的子串,就给出该子串在T中的位置,称为匹配成功;否则匹配失败。KMP算法概念K...

2019-10-23 09:18:41 242

原创 Sublime Text Sql格式化工具(快捷键变更)

安装SQL Beautifier,默认是ctrl+k,ctrl+f格式化。Preferences-KeyBindings-把下面的命令添到User中{ "keys": ["ctrl+e", "ctrl+e"], "command": "sql_beautifier" }格式化快捷键改成ctrl+e,ctrl+e...

2019-08-14 16:44:54 7305

原创 scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found

Maven 编译scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found.今天做了系统,重新下载了项目,在执行的时候突然项目不能编译了,百度,Google一波,未果,那么自己分析一下mvn clean -U package appassembler:asse...

2019-08-06 20:06:50 9716 2

原创 JDK8 HashMap.put()方法解读

复习一下基础,顺便给HashMap的Put方法加一个详细的注释final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { //这个tab就是成员变量里的table HashMap.Node<K,V>[] tab; ...

2019-07-22 13:51:34 673

原创 记一次 Apache Druid 查询速度优化

最近产品中有一个Druid的查询大概5s左右的响应,需要优化一下,这篇博文主要记录的就是这次优化的思路和具体方案背景表的格式为parquet,数据行数1400w+(由于我们的数据都是离线抽取的,已经做好聚合了),timestamp(所有数据都一样)segmentGranularity.period:P1D分析步骤其实就以我们本身的数据条数,应该不会造成这样的慢查询的,而且其他组的数据量也...

2019-07-18 18:37:42 4640 1

原创 Jdk1.8-HashMap put() 方法tab[i = (n - 1) & hash] 解惑

读过HashMap源码的同学对下面这段应该都不陌生,之前博主也读过,但是只是浅尝即止,这次有时间看了一下,发现put方法有一段不是很清楚,就是if ((p = tab[i = (n - 1) & hash]) == null) tab[i] = newNode(hash, key, value, null);这段代码,其中获取了当前table数组的最大下标与hash(key)进行按位与操...

2019-07-15 22:34:32 7186 11

原创 Windows下执行org.apache.hadoop.util.Shell$ShellCommandExecutor.execute抛NullPointerException

今天打算从hive-0.14.0中剥离出一个miniHS2,但是在剥离的过程中抛出了一个NullPointerException,记一下排查问题的过程下面是报错,几年前在写Mapreduce的时候,喷到过**Could not locate executable null\bin\winutils.exe in the Hadoop binaries.**这个错误,只需要配置一个winutils...

2019-07-12 11:02:34 1127

原创 Java多线程练习(三个线程顺序打印A,B,C)

回顾一下Java多线程,使用wait/notify 控制线程协调,三个线程顺序打印A,B,C 打印三次package com.levin.lang;public class Lock { public static class PrintThread extends Thread { private Object obj; private vola...

2019-07-03 19:21:23 1658

原创 Java实现一个死锁例子

如何避免死锁,有序的上锁,有序的开锁/** * @author Levin * @version 1.0.0 * @Title Threads * @Description TODO * @Date 2019/6/10 19:15 */public class Threads implements Runnable { private Object a, b; p...

2019-06-11 11:11:20 577

原创 Zeppelin0.7.0配置Hive Jdbc interpreter Kerberos 认证方式 登录过期问题解决

前两周在公司的zeppelin上配置了一个interpreter用来解决在zeppelin中直接查询hive,便于测试同学的使用,还有结果的查看。(毕竟在beeline中查起来挺麻烦的)配置过后我只是简单使用一下就没有理会,这两天有同学反馈在使用一段时间会报一个错误java.sql.SQLException: Could not open client transport with JDBC U...

2019-05-16 18:57:52 1255

原创 记一次Druid 提取Hadoop Parquet 多值字段配置({\"element\"问题)

最近公司的技术机构有了一些改变,OLAP层采用了Druid,之前的使用过程中一直没有问题,但是最近有需求,需要使用Multi-value类型的查询,如果在hive中我们是可以使用array_contains(Array<T>, value)函数来处理,但是将数据推送到Druid中后并不知道是否可以多值filter.后来查询Druid文档发现是可以的。Multi-value dimen...

2019-04-01 14:08:07 902

原创 中文分词基础原理

工作这些年总会听到分词、字典、语义这些词,一直对分词这块不甚了解,最近正好公司在推行OKR,那么就给自己定了几个OKR,其中就有“了解业界两款java分词器并落地一份wiki“,目标相对来说比较容易达成,但是也要了解一些基本分词的原理,那么就有了这篇博客的原因。毕竟术业有专攻,平时的精力没有放在分词、NLP这些领域,这篇文章只描述一些基本的分词理论,用于备注。什么是中文分词一句话概括就是通过...

2019-03-31 10:09:41 3357 4

原创 Hive 关闭Local_Mr不生效

今天帮同事搭建Hadoop环境,在讲解Hive的时候演示Hive提交复杂查询时会提交到yarn上执行远程mr,但是写了好几个sql都未生效,并且也尝试用下面的命令SET hive.exec.mode.local.auto=falseSET hive.exec.mode.local.auto.inputbytes.max=1SET hive.exec.mode.local.auto.input...

2019-03-29 19:13:25 682

原创 Ubuntu虚拟机安装手札

在ubuntu中为python2.7安装pipsudo apt_get install python-pipsudo apt-get install ipython--将pycharm放到任务栏sudo ln -s /opt/pycharm-2017.1.3/bin/pycharm.sh /usr/bin/pycharmVirtual Box 安装Ubuntu 环境配置流程1.s...

2018-12-10 17:16:35 221

原创 练习-数组窗口最大值

题目 给定一个数组和窗口长度,返回每个窗口的最大值给定一个数组{1,2,3,2,4,2,4,5},和一个窗口长度3,返回每个窗口的最大值 example window-1 [1,2,3] 返回 3 window-2 [2,3,2] 返回 3 window-3 [3,2,4] 返回 4下面是代码样例import java.util.Ar...

2018-11-21 17:45:51 185

原创 练习-两个栈实现一个队列

目的:两个栈实现一个队列1.实现add(),poll(),peek()方法package com.levin.test.struct;import java.util.Stack;public class Stack2Array { Stack stack_in = new Stack(); Stack stack_out = new Stack(); pub...

2018-11-19 18:13:53 144

原创 Presto UDF原理分析与浅实践

背景这两天在研究Presto的UDF,发现Presto的UDF的方式很特别,后来自己思考了一下实现方式(没有看源码,有可能与Presto实现不同),现在把思路记录一下。思路Presto UDF 最后是将生成的Jar放到到plugin中,并且调用实现com.facebook.presto.spi.Plugin接口的类的getFunctions方法,那么我猜测的步骤应该如下1.加载plugin...

2018-11-12 18:31:52 605

k8s-1.19.4-flannel插件

k8s-1.19.4-flannel插件

2023-05-18

RightMenuMgr1.2.1.zip

管理Windows操作系统下右键选项的,可以去除无用的管理软件,比如用GHO装完系统后右键的Hao123之类

2019-08-07

hadoop-2.6.0-cdh5.12.1-x64-native.zip

Hadoop2.6 Ubuntu 64位 Snappy支持

2018-04-16

channel_v3.json--解决不能使用Install package

解决sublime3,在install package时报There are no packages available for installation问题,将该文件下载后放到本地目录下,然后在Preferences > Package Settings > Package Contr

2017-05-15

titan-hbase-1.0.0

java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.elapsedTime异常解决 将titan重新打包

2017-02-09

html2canvas.js--自定义高度

修改html2canvas.js源码,可以解决截图不全问题.使用方式参考 http://blog.csdn.net/q2365921/article/details/54377479

2017-01-12

scala-intellij-bin-2016.3.5

ideaIC-2016.3.1 版本对应的 Scala plugin

2016-12-29

FTPServer工具

Windows下FTP服务小工具一键搭建

2016-12-16

空空如也

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

TA关注的人

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