自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三劫散仙

有问题关注微信公众号:我是攻城师(woshigcs)

  • 博客(913)
  • 资源 (17)
  • 收藏
  • 关注

原创 spark-3.0.1和hive-1.1.0集成的问题

主jar里面包含了jetty或者spring boot相关的web依赖信息,可能会导致和 hive-1.1.0 自带的jetty冲突。链接: https://pan.baidu.com/s/1ThAjKRznK2CUDaiXYPzKXg 提取码: b0b0。解决办法:单独下载 geronimo-jaspi-2.0.0.jar 包,放入 spark 根目录的 jars 目录里面。

2023-04-27 15:47:57 22 1

原创 naive ui和tailwind-css冲突解决方法

/ 禁用预加载,修复tailwind样式 与 naive-ui button等样式等冲突问题。大数据平台修改tailwind.config.js文件,禁用预加载。

2023-04-03 11:26:55 209

原创 理解时区与时间处理

时区,是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)。1863年,首次使用时区的概念,通过设立一个区域的标准时间部分地解决了这个问题。然而,世界各国位于地球不同位置上,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有所偏差。这些偏差就是所谓的时差。

2023-03-24 14:32:27 230

原创 pyspark 3.0增加python woker进程崩毁时的日志记录

之所以能够捕捉segmentation fault进程崩溃异常,是利用了python 3.3版本之后的新功能 faulthandler 库,当故障、超时或收到用户信号时,利用本模块内的函数可转储 Python 跟踪信息。这样排查问题就很方便了,可以清晰的看到是那个依赖库导致的。

2023-03-02 10:32:23 162

原创 spark sql使用常量列值创建虚拟表

在代码中,其实很容易实现,我们看下在sql里面怎么实现,关键知识点:spark inline表 + create view。

2023-03-01 11:45:38 40

原创 mac m1上esc键失灵不能退出vi解决方法

这种情况下,一般是由于打开了siri,导致热键冲突所致。1,打开系统偏好设置。

2022-12-28 16:28:30 1522 2

原创 vue3+axios刷新浏览器interceptors无效问题

vue前端应用在用户登录之后,服务端会返回一个认证token,前端会将此token存在cookie中,之后前端每次发起的向服务端的请求时,会通过axios的interceptors.request方法,来自动将cookie中的token取出来放在请求头中

2022-12-08 19:17:31 590

原创 一次jenkins-kubernetes服务报错排查记录 (Request Header Fields Too Large)

云原生时代,很多应用跑在Kubernetes里面很方便,但相应的请求访问链路也变多了,这样就会导致排查问题起来相对比较困难,因为不仅仅涉及应用程序

2022-11-14 20:00:31 1126

原创 Spark与hdfs delegation token过期的排查思路总结

hadoop delegation token的问题相对比较混乱和复杂,简单说下这东西的出现背景,最早的hadoop的因没有的完善的安全机制(安全机制主要包括:认证 + 鉴权,hadoop这里主要是身份认证机制没有),所以导致操作风险比较大,你可以理解只要获取了一台装有hadoop client的机器,就可以任意操作HDFS系统了,深究原因是因为hadoop身份认证机制太薄弱

2022-11-09 23:34:25 963

原创 优化jenkins on kubernetes构建性能慢问题

现在大多数公司,都开始使用kubernetes开启云原生时代了,传统的jenkins在物理机构建场景已经越来越少见了,取而代之的是用jekins在kubernetes pod中动态构建我们的任务

2022-09-16 17:48:02 789

原创 解决JDK访问https域名证书校验失败问题

背景在Java代码里面访问https域名的url进行通信时,经常会遇到下面的一个异常:Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certifica

2022-04-01 18:30:01 2984

原创 记一次log4j不打印日志的踩坑记

起因前几天一个跑有java应用的生产集群(200多台物理机)升级了一个版本,重启后发现约有50台机器日志不能正常输出,但其程序确能正常的运行,在生产环境中,日志是非常重要的一个监控手段,如果没有日志输出,无疑是非常危险的。排查 & 解决发现这一情况后,立即开始从jdk环境和版本,cpu负载,内存gc,线程stack,死锁,磁盘容量等多方面排查,但均没有发现异常情况,唯一的一点信...

2019-09-22 02:00:25 2527

原创 最近学车的一点经验

https://mp.weixin.qq.com/s?__biz=MzAxMzE4MDI0NQ==&mid=2650336733&idx=1&sn=7f89fd6d1f81741f77f4b65576c06812&chksm=83aac1e7b4dd48f1da097a30a822875e6df5094e9397c640b848fa33f2a62f773396acd...

2019-08-28 22:59:20 1779 2

原创 在Java里面如何解决进退两难的jar包冲突问题?

如上图所示:es api组件依赖guava18.0,spark项目由于业务需要写入es所以需要依赖es ,但spark项目的环境又需要依赖guava14.0,如果换成高版本可能会报错,这个决定了你不能都使用统一的低版本或者高版本来规避此问题,因此必须面对现实。导致异常的原因简单说下:spark环境首先启动,导致jvm里面已经加载了guava14.0,这个时候jvm不会加载es依赖的...

2019-07-23 19:14:47 3259 1

原创 什么是操作系统的虚拟内存?

https://mp.weixin.qq.com/s?__biz=MzAxMzE4MDI0NQ==&mid=2650336679&idx=1&sn=1b727d7ddc6c069627d7b8fbb444aaf4&chksm=83aac19db4dd488b5186ed9d7f1ff14b89234ac8479708b89b107de39f173adef227921...

2019-07-17 10:07:53 4577

原创 复盘一个Elasticsearch排序问题的剖析

最近线上的es查询的某个微服务接口,报了一个异常,如下:nested: SearchParseException[No mapping found for [count] in order to sort on];Caused by: SearchParseException[failed to parse search source 直接从异常上看,可以得到是因为mapping里面...

2019-07-15 21:13:58 2378

原创 如何轻松理解二叉树的深度遍历策略

我们知道普通的线性数据结构如链表,数组等,遍历方式单一,都是从头到尾遍历就行,但树这种数据结构却不一样,我们从一个节点出发,下一个节点却有可能遇到多个分支路径,所以为了遍历树的全部节点,我们需要借助一个临时容器,通常是栈这种数据结构,来存储当遇到多个分叉路径时的,存暂时没走的其他路径,等走过的路径遍历完之后,再继续返回到原来没走的路径进行遍历,这一点不论在递归中的遍历还是迭代中的遍历中其实都是...

2019-07-03 23:40:24 2613

原创 深入理解什么是LSM-Tree

前言十多年前,谷歌发布了大名鼎鼎的"三驾马车"的论文,分别是GFS(2003年),MapReduce(2004年),BigTable(2006年),为开源界在大数据领域带来了无数的灵感,其中在 “BigTable” 的论文中很多很酷的方面之一就是它所使用的文件组织方式,这个方法更一般的名字叫 Log Structured-Merge Tree。在面对亿级别之上的海量数据的存储和检索的场景下,我...

2019-05-21 20:03:23 41348 6

原创 18个高效使用Google搜索的技巧

前言如果把浩瀚的互联网资源比喻成是一个图书馆,那么google搜索引擎毫无疑问是这个图书馆的导航中心,通过google可以轻而易举得检索到绝大多数你需要的资料,然而大多数人可能并没有充分发挥谷歌搜索的潜力。如何才能更加高效,快速的利用好谷歌这个搜索引擎呢?这里有18个技巧用来提升你的检索效率。1.使用Tab面板使用谷歌使用结果完成后,在搜索栏的下面会出现多个Tab面板,默认分别...

2019-03-22 19:58:23 4975

原创 Apache Flink在阿里的使用(译)

Flink是未来大数据实时数据处理领域的首选框架,本文原文是阿里巴巴的搜索团队总监Xiaowei Jiang在Flink Forward 2016大会上分享的内容,后来被记录并移到Flink公司官网的Blog上(注意这个不是社区的官网,原名叫data Artisans,被阿里收购后改为ververica)。文章内容很不错,我这里也是抱着学习和了解的心态翻译了一下这篇文章,英语好的同学建议直接去...

2019-02-21 21:21:21 3242

原创 为什么单线程Redis性能也很出色

高性能的服务器,不一定是多线程实现的,也就是说多线程不一定比单线程效率高,这得分具体的情况。以redis为例,核心处理请求的线程只有一个,所以我们常常理解其仅仅只有一个线程,但准确来说其实并不是单线程的,比如日志的备份需要单独的fork一个进程或者线程去做备份等,那么redis何来单线程还能达到如此10万+的qps呢?其实这取决于具体的实现,redis采用了基于高性能Reactor的IO多路复用...

2019-01-21 18:00:47 655

原创 如何扩展python的logging组件支持json日志输出

这两天在优化公司一个python的项目,顺便研究了一下如何将python日志转成json格式,原来在Java的项目中搞过类似的事情,知道日志转成json之后有很多便利的之处,最常见的就是可以直接对接各种日志分析系统,如开源的ELK,将数据导入之后就能快速的进行查询和分析,方便做各种统计,监控或报警等。python里面的logging组件,其实已经是组件化了,有Logger组件,Handler组...

2019-01-10 21:54:58 4772 2

原创 为什么Java里面String类是不可变的

在Java里面String类型是不可变对象,这一点毫无疑问,那么为什么Java语言的设计者要把String类型设计成不可变对象呢?这是一个值得思考的问题Java语言的创建者James Gosling,曾经在一次采访中被人问到:什么时候应该使用不可变对象(immutable object),他回答:任何可以使用的时候都会使用。在这之前,我们先来简单了解一下,什么是不可变对象?不可变对象指...

2019-01-06 18:39:28 2821 2

原创 关于Java里面volatile关键字的重排序

Java里面volatile关键字主要有两个作用:(1)可见性(2)禁止指令重排序第一条可见性比较容易理解,就是使用volatile修饰的共享变量,如果有一个线程修改了值,其他的线程里面是立即可见的。原理是对volatile变量的读写,都会强制线程操作从主内存。第二条禁止指令重排序,能够保证局部的代码执行的顺序。假设我们现在有如下的一段代码: int a=2; ...

2019-01-04 18:44:57 1814

原创 操作系统之CPU知识扫盲

(上图是一个拥有两个物理cpu的主板电路,图片来源于网络)前言CPU的英文全称是(Central Processing Unit),中文意思翻译中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。关于冯·诺依曼结构冯·诺依曼结构(Von Neumann architecture)是一种将程序指令存储...

2018-12-22 13:58:42 2002

原创 关于Linux进程的基础知识

前言在计算机里面,一个进程通常指的是一个运行程序的实例,它包含程序代码和其活动。依赖于具体的操作系统,一个进程启动后通常由若干个线程组成,多个线程可以同时并发的执行程序的指令,进程里面第一个启动的线程,通常称为主线程。进程的类型前台进程通常也指交互进程,这些进程一般都是通过linux终端会话创建的,换句话说必须有用户连接到系统上,然后开启一个进程,这种进程不会被系统函数或者创建。...

2018-12-17 16:04:18 1409

原创 多个线程如何轮流打印ABC特定的次数?

之前的一篇文章,我给出了关于多线程应用的几个例子:都是基于Java里面Lock锁实现的,分别是:(1)两个线程轮流打印奇数和偶数(2)多个线程模拟买票(3)模拟生产者消费者今天再抛砖引玉,思考一下如何在多个线程中,轮流打印特定顺序的信息多少次。这类问题其实并不难,只要掌握了Java里面线程协作和锁的知识,就可以轻而易举的搞定:根据这些,我们来假设一个场景,使用三个线程轮...

2018-12-11 20:43:50 2400

原创 再谈方法调用与堆栈

再谈方法调用与堆和栈在JVM里面,最重要的两个运行时数据区,无非就是堆和栈了。关于堆堆内存是被多个线程共享的,而栈内存是线程私有的。堆主要用来存储运行时所有的对象数据和各种数组,简单点说通过new创建的实例,都会在堆上分配空间。堆在虚拟机启动时创建,并且堆具有自动垃圾回收的功能,在Java的世界里,程序员是没办法直接销毁你所创建的对象的,一切必须由GC垃圾回收器来完成,也就是你用完后的...

2018-11-17 14:20:15 1011

原创 聊聊Java里面的引用传递

聊聊Java里面的"引用传递"长久以来,在Java语言里面一直有一个争论,就是Java语言到底是值传递(pass-by-value)还是引用传递(pass-by-reference),有的人说是值传递,有的人说是引用传递,两边各执一词,从而误导了很多开发者,更有甚者告诉开发者说不必纠结Java到底是值传递还是引用传递,只要能用就行了,但事实真的是这样吗? 答案是否定的。为了弄清这两个概念,...

2018-11-16 21:33:46 214

理解计数排序算法的原理和实现

计数排序(Counting sort)是一种稳定的线性时间排序算法,其平均时间复杂度和空间复杂度为O(n+k),其中n为数组元素的个数,k为待排序数组里面的最大值。同样具有线性时间排序的算法还有桶排序和基数排序,这一点不要搞混。计数排序不是基于比较的排序,所以它的排序效率是线性的,在特定的场景下(已知数组的最大最小值,切数组元素整体量不是很大的情况下)排序效率极高,而基于比较排序的...

2018-10-11 10:03:34 2208

原创 理解计数排序算法的原理和实现

计数排序(Counting sort)是一种稳定的线性时间排序算法,其平均时间复杂度和空间复杂度为O(n+k),其中n为数组元素的个数,k为待排序数组里面的最大值。同样具有线性时间排序的算法还有桶排序和基数排序,这一点不要搞混。计数排序不是基于比较的排序,所以它的排序效率是线性的,在特定的场景下(已知数组的最大最小值,切数组元素整体量不是很大的情况下)排序效率极高,而基于比较排序的算法,其时间...

2018-10-11 09:57:47 571

原创 深入理解Java类加载器机制

前言Java里面的类加载机制,可以说是Java虚拟机核心组件之一,掌握和理解JVM虚拟机的架构,将有助于我们站在底层原理的角度上来理解Java语言,这也是为什么我们学习一个新的知识时,如果不理解原理全靠死记硬背,我相信过不了几天便会忘记的一干二净。Java是一门跨平台的语言,而JVM虚拟机则在这中间扮演了非常重要的角色,对于我们编写的.java文件,在编译期间会被转换成二进制的class文...

2018-09-25 10:06:24 2262

原创 理解Java并发工具包线程池的设计

为什么需要线程池?答:主要原因是因为创建一个线程开销太大,尤其是对大量的小任务需要执行这种场景。在Java里面创建一个线程,需要包含的东西:(1)它为一个线程堆栈分配内存,该堆栈为每个线程方法调用保存一个帧(2)每个帧由局部变量数组,返回值,操作数栈,常量池组成(3)某些JVM会为本地方法分配一个本地栈(4)每个线程有一个程序计数器,用来告诉进程当前的指令执行到什么地方...

2018-09-12 21:25:58 1515

理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略

### 前言理解HashMap和ConcurrentHashMap的重点在于:(1)理解HashMap的数据结构的设计和实现思路(2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法,这里分别对JDK7和JDK8版本的HashMap+ConcurrentHash...

2018-09-06 11:31:21 1227

原创 理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略

前言理解HashMap和ConcurrentHashMap的重点在于:(1)理解HashMap的数据结构的设计和实现思路(2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法, 这里分别对JDK7和JDK8版本的HashMap+ConcurrentHashMap来分析:JDK7...

2018-09-06 11:25:56 16399 4

原创 关于Java里面多线程同步的一些知识

# 关于Java里面多线程同步的一些知识对于任何Java开发者来说多线程和同步是一个非常重要的话题。比较好的掌握同步和线程安全相关的知识将使得我们则更加有优势,同时这些知识并不是非常容易就能熟练掌握的,实际上写出正确的并发代码是一件比较困难的事情。在Java的自带的库里面,已经包含了非常多实用的并发工具类,今天这篇文章,我们主要来学习Java里面synchronized关键字的相关知识。...

2018-07-18 10:20:26 245

关于Java里面多线程同步的一些知识

# 关于Java里面多线程同步的一些知识对于任何Java开发者来说多线程和同步是一个非常重要的话题。比较好的掌握同步和线程安全相关的知识将使得我们则更加有优势,同时这些知识并不是非常容易就能熟练掌握的,实际上写出正确的并发代码是一件比较困难的事情。在Java的自带的库里面,已经包含了非常多实用的并发工具类,今天这篇文章,我们主要来学习Java里面synchronized关键字的相关知识。...

2018-07-18 09:45:00 748

Java单例模式之双检锁深入思考

# Java单例模式之双检锁剖析### 前言单例模式在Java开发中是非常经典和实用的一种设计模式,在JDK的内部包的好多api都采用了单例模式,如我们熟悉的Runtime类,单例模式总的来说有两种创建方式,一种是延迟加载的模式,一种是非延迟加载的模式,今天我们来学习一下基于双检锁延迟加载的单例模式。### 什么是单例模式顾名思义,单例模式指的是在整个程序运行期间,...

2018-07-08 12:25:43 303

关于Java里面多线程同步的一些知识

# 关于Java里面多线程同步的一些知识对于任何Java开发者来说多线程和同步是一个非常重要的话题。比较好的掌握同步和线程安全相关的知识将使得我们则更加有优势,同时这些知识并不是非常容易就能熟练掌握的,实际上写出正确的并发代码是一件比较困难的事情。在Java的自带的库里面,已经包含了非常多实用的并发工具类,今天这篇文章,我们主要来学习Java里面synchronized关键字的相关知识。...

2018-07-08 12:23:08 145

重新认识同步与异步,阻塞和非阻塞的概念

# 重新认识同步与异步,阻塞和非阻塞的概念### 前言在实际的开发中,我们经常会听到同步,异步,阻塞,非阻塞这些编程概念,每次遇到的时候都会蒙圈,然后就各种查网上似是而非的资料,结果越查越迷糊,大部分文章都千篇一律,没有说到本质上的区别,所以下次再碰到这些概念,印象还是比较模糊,尤其是在一些场景下同步与阻塞,异步与非阻塞感觉没啥区别,但其实这四个术语描述的事物还真不是一回事。...

2018-07-06 14:30:41 159

Core Java SE 9 for the Impatient, 2nd Edition

非常不错的学习java 9的基础相关的知识,建议大家都学习一下

2018-05-28

protobuf-2.5.0.tar.gz

Hadoop2.x安装必须的通信包,google的protobuf协议,google官网已经下载不了了,特地传到此处,供大家使用! 在编译hadoop的时候,是必须要安装这个的,否则编译会失败的

2015-06-24

hadoop插件

基于Hadoop2.2的稳定版本的,eclipse插件,大家以后可以更方便的调试Hadoop程序了。

2013-12-17

luke4.6工具

luke4.6查看索引工具,最新版lucene的查看工具,本人测试过,可以正常使用!

2013-12-05

eclipse插件

hadoop1.2.0的eclipse插件,笔者经过测试可以完美运行,对于刚学习hadoop1。x的同学们,是一份不可多得的好资料。

2013-11-10

luke4.5的jar包

luke4.5的索引查看工具,最新版lucene的索引查看工具,用4.x版本的lucene的朋友们,可以使用luke4.5方便的查看,修改,更新索引了,支持4.5之前的所有lucene索引,有需要的朋友们,下载吧,LZ测试过,可以正常使用。

2013-10-29

Access驱动

jdbc Access驱动,兼容处理03,07+的Access,的增删改查。值得下载

2013-09-23

lucene4.3工具类

lucene4.3增删改查的的一个工具类,对新手来说是一份不可多得的入门资料。

2013-08-15

luke4.4索引查看工具

关于全文检索的最新版Lucene4.4,solr4.4的索引查看工具,新项目的开发的朋友们,可以下载下来,方便查询索引结构。

2013-08-15

网络爬虫heritrix

Heritrix是一个由纯java开发的,开源的Web网络爬虫,其性能优势完全可以和Nutch相媲美,二者各有优缺点!

2013-08-08

向LUCENE搜索引擎中加人中文同义词查询

介绍lucene同义词库的使用,想使用lucene同义词的朋友们,如果不知道原理的可以看下。

2013-08-08

lucene的索引工具

lucene的最新版本的索引查看工具,支持4.x以上的索引查看,分析,非常方便调试,官网只能支持到4.0,本工具支持最新的lucene及solr的4.3版本。

2013-07-18

solr各个热点功能详解

详细介绍了solr中,各个功能的UI页面的使用,以及使用solrj操作solr的代码,比较全面的总结了solr的各个功能点。是不可多得的好资料!

2013-07-11

JAVA EE必知的知识点

能够给JAVA使用者,打好一个坚实的基础,只要把里面的一些东西,掌握了,相信你的内容会更深厚的!!!

2013-07-11

开源搜索引擎solr的介绍及使用

对于solr,lucene,是当前比较火的开源搜索引擎,本文档提供了详细的描述信息

2013-07-11

solr4.3的IK分词器

最新版solr4.3的IK分词器,中文分词效果良好!对付一般的大众分词没有问题

2013-06-25

solrcold与zk集群

关于solr4.3solrcloud与zk+tomcat6.x集群,详细描述。

2013-06-17

空空如也

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

TA关注的人

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