- 博客(597)
- 资源 (40)
- 收藏
- 关注
原创 Flink——Side Output侧输出流
主要内容:结合应用场景,介绍Flink侧输出流的使用流程和原理在处理数据的时候,有时候想对不同情况的数据进行不同的处理,那么就需要把数据流进行分流。可以在主数据流上产生出任意数量额外的侧输出流。1 场景某公司使用埋点组件收集到了埋点数据,并实时写入了Kafka。其中,埋点数据共分为三类:Web端埋点数据、移动端埋点数据和CS端埋点数据。现在需要从Kafka读取埋点数据,并分别对三端数据做不同的处理逻辑:2 Side Output当然使用 filter 对主数据流进行过滤,也能满足上述场
2021-02-21 20:41:02
2083
原创 谈谈Java的类加载过程
前言一个Java文件从编码完成到最终执行,一般主要包括两个过程编译 运行编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译生成的.class文件交给Java虚拟机(JVM)执行。而我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。举个通俗点的例子来说,JVM在执行某段代码时,遇到了class A, 然而此时内存中并没有class A的相关信息,于是JV
2020-08-10 07:52:51
462
原创 count distinct 引发的倾斜
Hive底层使用MapReduce作为实际计算框架,SQL的交互方式隐藏了大部分MapReduce的细节。这种细节的隐藏在带来便利性的同时,也对计算作业的调优带来了一定的难度。未经优化的SQL语句转化后的MapReduce作业,它的运行效率可能大大低于用户的预期。本文我们就来分析一个简单语句的优化过程。日常统计场景中,我们经常会对一段时期内的字段进行消重并统计数量,SQL语句类似于 ...
2019-12-23 09:53:17
2406
原创 nc 的安装与使用
netcat被誉为网络安全界的‘瑞士军刀’,相信没有什么人不认识它吧......一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能(详情请看下面的使用方法)。在中国,它的WINDOWS版有两...
2019-11-18 22:13:29
1535
原创 深入理解 Spark Sql
最近想来,大数据相关技术与传统型数据库技术很多都是相互融合、互相借鉴的。传统型数据库强势在于其久经考验的sql优化器经验,弱势在于分布式领域的高可用性、容错性、扩展性等,假以时日,让其经过一定的改造,比如引入Paxos、raft等,强化自己在分布式领域的能力,相信一定会在大数据系统中占有一席之地。相反,大数据相关技术优势在于其天生的扩展性、可用性、容错性等,但其sql优化器经验却基本全部来自于传统...
2019-11-08 14:48:39
347
原创 hive 和 mysql 求解分组 top n
MySQL分组排序求Top N表结构按照grp分组,按照num排序,每组取Top 3,输出结果如下:SELECT * FROM score AS t3 WHERE ( SELECT COUNT(*) FROM score AS t1 LEFT JOIN score AS t2 ON t1.grp = t2.grp AND t1.num &...
2019-10-30 10:22:40
342
原创 RDD、DataFrame和Dataset 怎么选择才好?
最令开发者们高兴的事莫过于有一组API,可以大大提高开发者们的工作效率,容易使用、非常直观并且富有表现力。Apache Spark广受开发者们欢迎的一个重要原因也在于它那些非常容易使用的API,可以方便地通过多种语言,如Scala、Java、Python和R等来操作大数据集。在本文中,我将深入讲讲Apache Spark 2.2以及以上版本提供的三种API——RDD、DataFrame和Dat...
2019-10-29 16:21:37
582
原创 使用CMS垃圾收集器产生的问题和解决方案
原始数据https://juejin.im/post/5d8c5a5de51d4578323d51bd参考链接https://my.oschina.net/hosee/blog/674181方案小结1.晋升数据并不大,但是碎片化老年代无法满足空间分配,可以通过设置固定次数的 gc ,添加一次空间整理,此外还可以调大年轻代 from、to 的空间,保证朝生夕灭的数据在年轻代...
2019-10-28 22:26:59
740
原创 jvm 内存溢出 - 方法区及运行时常量池溢出
Java 永久代是非堆内存的组成部分,用来存放类名、访问修饰符、常量池、字段描述、方法描述等,因运行时常量池是方法区的一部分,所以这里也包含运行时常量池。我们可以通过 jvm 参数-XX:PermSize=10M -XX:MaxPermSize=10M来指定该区域的内存大小,-XX:PermSize默认为物理内存的 1/64 ,-XX:MaxPermSize默认为物理内存的 1/4 。St...
2019-10-28 20:54:25
536
1
原创 JVM常量池浅析
需要说明的一点是,这篇文章是以《深入理解Java虚拟机》第二版这本书为基础的,这里假设大家已经了解了JVM的运行时区域,以及class文件结构,类加载流程等基础内容。当然,文中我们也会提一提相关的内容作为复习总结一.JVM有几种常量池 主要分为:Class文件常量池、运行时常量池,当然还有全局字符串常量池,以及基本类型包装类对象常量池1.Class文件常量池 阅读过《深入理解J...
2019-10-27 16:49:45
824
原创 java中的字符串到底是在方法区的常量池里还是new出来的对象里
String实质是字符数组,两个特点:1、该类不可被继承;2、不可变性(immutable)例如Strings1 =new String("myString");和String s1 = "myString";第一种方式通过关键字new定义过程:在程序编译期,编译程序先去字符串常量池检查,是否存在“myString”,如果不存在,则在常量池中开辟一个内存空间存放“mySt...
2019-10-27 16:06:11
921
原创 什么是 gc root
GC Roots原理GC Roots基本思路就是通过一系列的称为“GC Roots”的对象作为起始点, 从这些节点开始向下搜索, 搜索所走过的路径称为引用链( Reference Chain),当一个对象到 GC Roots 没有任何引用链相连( 用图论的话来 说,就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。GC Roots对象常说的GC(Garbage Colle...
2019-10-27 11:32:40
3273
原创 详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String n...
2019-10-27 10:38:40
196
原创 如果hashMap的key是一个自定义的类,怎么办?
hashcode()和equals()都继承于object,在Object类中的定义为:equals()方法在Object类中的定义:publicbooleanequals(Objectobj){return(this==obj);}equals()的定义为:publicnativeinthashCode();是一个本地方法,返回的对象的地址值。...
2019-10-21 14:14:18
1008
原创 MySQL Binlog解析
概述MySQL的安装可以参考:Linux(CentOS)中常用软件安装,使用及异常——MySQL, VmToolsMySQL关于Binlog的官方文档:The Binary Log基于Binlog的主备复制:MySQL主备复制原理、实现及异常处理什么是 BinlogMySQL Server 有四种类型的日志——Error Log、General Query Log、Binary L...
2019-10-16 11:24:59
380
原创 缓存穿透,缓存击穿,缓存雪崩解决方案分析
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种...
2019-10-16 10:40:47
232
原创 Redis 之布隆过滤器(BloomFilter)
1. 认识BloomFilter1.1 原理布隆过滤器,英文叫BloomFilter,可以说是一个二进制向量和一系列随机映射函数实现。 可以用于检索一个元素是否在一个集合中。下面来看看布隆过滤器是如何判断元素在一个集合中,如下图:有三个hash函数和一个位数组,oracle经过三个hash函数,得到第1、4、5位为1,database同理得到2、5、10位1,...
2019-10-14 10:31:36
8902
2
转载 Zookeeper的Leader选举
一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举在学习选举前先对两个概念加以解释myid: 这个就是在zk配置时候手动配置在/data/myid文件中的数字,看了下面的解释也能总结出来,在zk刚开始启动时候,这个数值最大的就是leader,但是也要看...
2019-10-12 11:36:33
240
原创 Spring Boot单元测试编译报错 No runnable methods
遇到这种情况表示单元测试中没有可以运行的方法,有可能是以下的原因:1.第一种情况,有的测试类为空,只定义了一个类名,也就是类里面没有能运行的方法,这个是非法的。2.第二种情况,测试类方法有错,或者没有添加@Test注解。...
2019-10-08 17:49:53
1557
原创 python3+requests:post请求四种传送正文方式(详解)
我们要知道post请求四种传送正文方式首先需要先了解一下常见的四种编码方式: HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下:♦1、application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,...
2019-10-03 10:53:34
597
原创 win10专业版 hyper-v 找不到
HYPER-V 在 64 位版本的 Windows 10 专业版、 企业版和教育版上可用。 不适用于家庭版1)打开任务管理器2)点击性能tab3)点击CPU,查看CPU虚拟化:已禁用4)下面就是Hyper-V支持:是5)先找下进入bios的快捷键,重新启动电脑,进入bios。6)选择Virtualization,或者Intel Virtual Technology为e...
2019-10-01 17:11:27
3399
原创 Minor GC、Major GC和Full GC之间的区别
Minor GC从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。但是,当发生Minor GC事件的时候,有一些有趣的地方需要注意到:当 JVM 无法为一个新的对象分配空间时会触发 Minor GC,比如当 Eden 区满了。所以分配率越高,越频繁执行 Minor GC。内存池被填满的时候,其中的内容全部会被复制,指针...
2019-09-17 23:18:50
178
原创 ft 总结
1.如何防止网络抖动产生的重复建单?答:原因:你这种情况应该是客户端请求发过去了,服务器写到数据库了,返回完成状态的时候网断了,这时客户端没有收到反馈以为订单没有生成,再点击下单,这时网络好了,结果生成了两个。解决办法:(1).待支付订单如果正在支付,就把这边订单锁定,变更为一个中间状态,这样就不会重复去支付这笔订单了(前端将提交按钮第一次点击提交时变成disable状态,直到后台返回状态...
2019-09-17 20:04:04
780
原创 Scala DateTime 月份 日期 返回两位数的方法
val date = DateTime.now().minusDays(1).toString(DateTimeFormat.forPattern("yyyyMMdd"))val year = DateTime.now().minusDays(1).year().get()val month = date.substring(4,6)val day = date.substring(6,8...
2019-09-05 15:53:41
1155
原创 maven 打包错误解决 : 编码GBK的不可映射字符
解决这个问题的思路: 在maven的编译插件中声明正确<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.1&l...
2019-09-05 15:52:51
3088
原创 mongodb dbobject、document和java bean 对象相互转换
import com.alibaba.fastjson.JSON;import com.mongodb.BasicDBObject;import org.bson.Document;import org.bson.json.JsonWriterSettings;public class util{public <T> T toBean(BasicDBObj...
2019-09-03 16:30:08
10766
1
原创 synchronized(从偏向锁到重量级锁)
接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个:通过对一个对象进行加锁来实现同步,如下面代码。synchronized(lockObject){ //代码}对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。如下面代码public synchorniz...
2019-09-01 23:14:39
175
原创 最大连续子串
问题描述:给定一个由数字组成的数组,求出和最大的子数组求解方法:1.暴力法选取所有连续和的可能性,O(n^2)2.分析法当遍历到第i个元素时,判断在它前面的连续子序列和是否大于0,如果大于0,则以位置i结尾的最大连续子序列和为元素i和前门的连续子序列和相加;否则,则以位置i结尾的最大连续子序列和为元素i。3.动态规划记s[i]是以a[i]结尾的最大子数组和s[i...
2019-09-01 11:24:18
942
原创 线程分配不足会导致什么问题
啥也不说,直接上代码package offer_0831;import java.util.concurrent.*;public class ThreadOverFlow { public static void main(String[] args) { ExecutorService es = new ThreadPoolExecutor(2, 2, ...
2019-09-01 09:16:33
770
原创 InnoDB一棵B+树可以存放多少行数据?
一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他...
2019-08-28 21:31:04
236
原创 json 字符串转 JSONObject 和 JSONArray 以及取值
importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;publicclassJsonTest{publicstaticvoidmain(String[]args){StringjoStr="{name:\"张三\",age:\"20\"}";...
2019-08-28 15:14:24
454
原创 Jsckson 实现 java 对象与 JSONObject 和 JSONArray 互转
在项目开发过程中,当客户端与服务器响应时,数据交互是必不可少的。然而通过Json实现数据交互成为我们开发中的一部分,进而Jackson为我们的Json转化提供了很好的机制。下面我将利用实例总结如何使用jackson。一.准备 如果你需要使用jackson,你必须得导入相应的架包,有如下三个包jackson-annotations;jackson-core;jackson-da...
2019-08-28 14:57:37
914
原创 二叉查找树转双向链表JAVA实现
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { private ...
2019-08-27 20:39:04
224
原创 分析java应用cpu使用率飙升
疑惑一个 while 死循环,会不会引起 CPU 使用率飚升? 频繁 Young GC 会不会引起 CPU 使用率飚升? 线程数很高的应用,CPU 使用率一定高么? CPU 使用率高的应用,线程数一定高么? BLOCKED 状态的线程会不会引起 CPU 使用率飚升? 分时操作系统 CPU 是耗费 us ? 还是耗费 sy ?思考1、CPU 使用率怎么计算?CPU% = 1 ...
2019-08-20 21:23:10
564
原创 使用@Order注解调整配置类加载顺序
1 、@Order1、Spring 4.2 利用@Order控制配置类的加载顺序,2、Spring在加载Bean的时候,有用到order注解。3、通过@Order指定执行顺序,值越小,越先执行4、@Order注解常用于定义的AOP先于事物执行2 、新建Springboot项目来测试(1)、引入依赖 <parent>...
2019-08-20 15:36:29
6255
原创 集群 mongo 数据的导入导出的操作流程
1.编辑好 flow、project 和 脚本文件放到文件夹中;2.在 linux 环境下 mongo 安装包中找到 mongoimport、mongoexport 执行文件,放到文件夹里(获取执行文件的命令 :locate mongoimport);3.在执行 mongo 导入导出的脚本中,将 mongoimport 和 mongoexport 命令对应变更为 ./mongoimport...
2019-03-01 15:36:09
1104
原创 一键式从 MongoDB 的 ObjectId 中获取时间信息
1.打开浏览器2.F12调出调试 Console3.输入如下字符串new Date(Number(parseInt('5c74fe417dd023d837425d84'.substr(10, 8), 16).toString() + '000'))即可获得时间信息
2019-02-27 10:54:09
4655
原创 MongoCollection 实现 JAVA API 模糊匹配 查询
MongoCollection<Document> collection = mongoBase.getCollection(colName);List<Object> ObjList = new LinkedList<>();Bson f = Filters.and(Filters.eq("domain", "test"), Filters.eq("p...
2019-02-01 15:57:52
2064
hibernate 5.0.9.Final
2016-06-02
log4j.properties
2016-06-01
mysql-connector-java-5.0.7.rar
2016-06-01
struts-2.5-all
2016-06-01
TortoiseSVN-1.9.3.27038-x64-svn-1.9.3
2016-06-01
mybatis-3-mybatis-3.4.0
2016-05-27
CSS权威指南
2016-05-26
精通CSS高级Web标准解决方案
2016-05-26
架构之美(清晰中文完整版)
2016-05-17
apache-tomcat-8.5.0-windows-x64.zip
2016-05-17
apache-ant-1.10.1-src
2018-01-24
新浪微博-redis实践
2017-12-07
Maven最佳实践
2017-12-06
paoding-rose
2017-12-06
MVC设计模式 - 发展进程
2017-04-09
WebServiceSample
2017-03-13
mybatis传智播客课堂笔记
2016-07-28
Spring-mvc-配置--图文教程
2016-06-22
MyBatis 基本配置文件
2016-06-01
Maven实战_.7z
2016-05-30
struts-2.3.16.1
2016-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人