自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1202)
  • 资源 (12)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 mysql 不走索引的情况

1 or (待确认)、in(待确认)2 like '%abc' 或者 like‘%abc%’3 where num/2=100 或者 subString(a,1,3)='ab'4 where id !=2 或者 where id <> 25 where name is null6 复合索引a-b-c,a用到,b用不到,c用不到,ab有效,ba有效,a or b无效,...

2019-04-18 21:31:40 6184

原创 js 对象数组添加属性、修改属性

var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}];var reformattedArray = kvArray.map(function(obj,index) { console.log(index) var rO...

2018-10-12 19:24:14 26839 1

原创 线程池ExecutorService空闲线程的个数

keepAliveTime:表示线程没有任务执行时最多保持多久时间会终止。默认情况下,只有当线程池中的线程数大于corePoolSize时,keepAliveTime才会起作用,直到线程池中的线程数不大于corePoolSize,即当线程池中的线程数大于corePoolSize时,如果一个线程空闲的时间达到keepAliveTime,则会终止,直到线程池中的线程数不超过corePoolSize。但...

2018-06-28 20:02:33 16412 1

原创 ConditionalOnProperty的使用

@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE, ElementType.METHOD})@Documented@Conditional({OnPropertyCondition.class})public @interface ConditionalOnProperty { String[] value()...

2018-02-23 15:02:26 38094 6

原创 Mysql decimal(m,d)的说明

看了一些博客,觉得很多都是复制的,不如自己亲测一篇: create table decimal_test(id int auto_increment PRIMARY key,score decimal(5,2) -- 取值范围是 -999.99 到 999.99);-- 整数的位数必须小于等于m-d,不然报错。小数的位数可以大于d位。多...

2018-02-02 14:27:20 18415 10

原创 java二维数组A.length和A[i].length的区别

public static void main(String[] args) { //// write your code here int[][] A=new int[][]{{1,2},{4,5},{7,8,10,11,12},{}}; System.out.println(A.length);//4,表示数组的行数 System.out.p

2017-08-11 21:04:30 19820 1

原创 Mapreduce中Shuffle 与 Spark中Shuffle 的区别 ?

Spark 1.2以后默认用SortShuffleManager不同点: MapreduceShuffle SparkShuffle map端大文件的索引文件 没有 有 map端输出的文件是否有序 有序 如果启用byPass机制则不会排序(),反之会排序 中间文件是否落盘 相同点:1 都是先写到内存,达到阈值时溢出多个小文件2 有多少个map会产生多少个大文件;上游stage...

2021-03-07 16:41:32 4

原创 mapreducce 任务过程 发生几次排序?/数据几次落盘?/数据几次merge?/数据几次读入内存?

发生几次排序?即发生3次排序:1 map spill到磁盘的小文件是有序的(达到阈值时,先对环形缓冲区的数据排序,然后spill到磁盘)2map spill到磁盘的多个小文件会合并成一个有序的大文件3 reduce copy后,把溢出的多个小文件合并成一个有序的大文件1快速排序,2/3是归并排序。数据几次落盘?1map spill到磁盘的小文件2reduce copy后,达到一定阈值时,会溢出多个小文件到磁盘数据几次merge?1 map端把溢出的多个...

2021-03-07 16:19:51 8

原创 Hive case when 符合多个条件 输出哪个?

select CASE when 1= 1 then 1 when 2=2 then 2 else 3 end as c1 ; -- 输出 1 第一个when符合条件时,则不会再往下进行其他when和else。Hive 2.0.0

2021-03-05 19:00:07 10

原创 distcp 复制到同路径下 复制到不同路径下

复制到同路径下:a/b/c1distcp -pt hdfs://a/b/c/2021-02-01hdfs://a/b/c/1900-01-01结果是:hdfs://a/b/c/1900-01-01/2021-02-012distcp -pt hdfs://a/b/c/2021-02-01/* hdfs://a/b/c/1900-01-01或者distcp -pt hdfs://a/b/c/2021-02-01/* hdfs://a/b/c/1900-01...

2021-03-03 22:00:58 14

转载 数据湖的优点 Data Lake VS Data warehouse / 数据湖与数据仓库的区别

数据湖的优点 提供不限数据类型的存储 开发人员和数据科学家可以快速动态建立数据模型、构建应用、查询数据,非常灵活。 因为数据湖没有固定的结构,所以更易于访问 长期存储数据的成本低廉,数据湖可以安装在低成本的硬件在,例如: 在一般的X86机器上部署Hadoop 因为数据湖是非常灵活的,它允许使用多种不同的处理、分析方式来让数据发挥价值,例如:数据分析、实时分析、机器学习以及SQL查询都可以。 Data Lake VS Data warehous..

2021-02-28 19:40:56 36

转载 spark 什么是数据湖? 什么是deltalake?

What is a data lake?A data lake is a centralized data repository that is capable of storing both traditional structured (row and column) data, as well as unstructured, non-tabular raw data in its native format (like videos, images, binary files, and more

2021-02-28 19:21:39 37

原创 Jstack 分析哪一行代码慢 ?jvm 打印出线程栈分析

面试题:后台只有一台服务器,上线后发现,只有1个接口请求很慢,其他接口的请求和反应时间很正常,该怎么分析?怎么找出是哪行代码导致的慢?是在线上,当然不能测试或单步调试。答案:打印出线程栈分析。举例:/** * @Author liuyazhou * @Date 2021/2/25 16:30 * @Version 1.0 * @Desc *//** * 同步线程 */class SyncThread implements Runnable { private

2021-02-27 18:44:30 31

转载 JVM 内存分析MAT使用方法

Shallow Size (对象自身占用的内存大小)Retained Size (被GC后Heap上释放的内存大小)with outgoingreferences(查看对象为什么消耗内存,查看对象引用的其他对象)with incoming references(查看对象被谁引用)https://www.cnblogs.com/hanlinhu/p/10174185.htmlMAT工具介绍工欲善其事必先利其器,学会使用工具也是一种本领。本篇文章就把自己之前工作中用到的一个内存分析工具.

2021-02-27 17:45:11 33

转载 JVM MAT分析器中的shallow heap 和 retained heap详解

shallow heap:对象本身的大小,如果是数组或集合则是各个元素的总大小。retained heap:对象本身的大小 + 引用的其他对象的大小。一个对象的shallow heap的大小指的是该对象在没有引用其他对象的情况下本身占用的内存大小。一个普通对象的shallow heap 的大小(不包括数组类型)依赖于它含的方法,元素的大小。而一个数组类型的shallow heap的大小则依赖于数组的长度和数组里面元素的类型。集合类型的shallow heap的大小则指的是集合所包含的所有对象的大小.

2021-02-27 17:28:12 19

原创 JVM 频繁full gc / oom内存溢出/ 分析工具 jmap/Jconsole 用法

分析解决方法:1 用JVisualVM 或Jconsole 分析 进程(不用jmap dump出镜像,JVisualVM功能比Jconsole强大)2 先用jmap dump出镜像,再导入mat分析-------------------------Java内存分析工具MAT(Memory Analyzer Tool)JVisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。Jconsole是JDK自带的监控工具,在JDK/b.

2021-02-27 12:47:02 62

原创 JVM性能监控于故障处理工具 jps/ jstat/jinfo/jmap/jhat/jstack/HSDIS/jconsole/jvisualvm

1 jps:虚拟机进程状况工具:查看当前运行的java进程id,后面的许多命令都是基于此命令找到pid再进一步排查问题。2 jstat:虚拟机统计信息监视工具,如每隔10s监视jvm的运行状态3 jinfo:用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。特别说明两个命令 -->jinfo -flag [ + | - ]name pid开启或者关闭对应名称的参数。使用 ji.

2021-02-27 12:38:36 21

原创 mac 如何查看 java程序的进程id ?

尝试在终端中使用ps aux | grep APP_NAME。92249 就是这个Java应用的进程id

2021-02-27 12:18:18 22

转载 数据结构 小顶堆建堆过程 构建过程

【一】简介最小堆是一棵完全二叉树,非叶子结点的值不大于左孩子和右孩子的值。本文以图解的方式,说明最小堆的构建、插入、删除的过程。搞懂最小堆的相应知识后,最大堆与此类似。 最小堆示例:【二】最小堆的操作最小堆的构建:初始数组为:9,3,7,6,5,1,10,2按照完全二叉树,将数字依次填入。填入完成后,从最后一个非叶子结点(本示例为数字6的节点)开始调整。根据性质,小的数字往上移动;至此,第1次调整完成。注意,被调整的节点...

2021-02-26 18:53:20 15

转载 Java cas 与 synchronized 的区别

1、对于资源竞争较少的情况:性能cas>synchronized,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操作额外浪费消耗cpu资源;而CAS基于硬件实现,不需要进入内核,不需要切换线程,操作自旋几率较少,因此可以获得更高的性能。2、对于资源竞争严重的情况:性能cas<synchronized,CAS自旋的概率会比较大,从而浪费更多的CPU资源,效率低于synchronized。转自https://www.cnblogs.com/everS..

2021-02-26 16:08:23 29

转载 ClickHouse为何那么快?逻辑数据模型/物理存储模型/核心特性/不足

ClickHouse 架构集群架构ClickHouse 采用典型的分组式的分布式架构,具体集群架构如上图所示: Shard:集群内划分为多个分片或分组(Shard 0 … Shard N),通过 Shard 的线性扩展能力,支持海量数据的分布式存储计算。 Node:每个 Shard 内包含一定数量的节点(Node,即进程),同一 Shard 内的节点互为副本,保障数据可靠。ClickHouse 中副本数可按需建设,且逻辑上不同 Shard 内的副本数可不同。 ZooKe

2021-02-26 15:31:51 39

转载 ClickHouse向量化执行 漫谈SIMD、SSE指令集与 ClickHouse为何那么快?

前言ClickHouse之所以会像闪电一样快("blazing fast"),是多方面优化的结果,包括且不限于:高效且磁盘友好的列式存储,高效的数据压缩,精心设计的各类索引,并行分布式查询,运行时代码生成等。另外,ClickHouse为了最大限度地压榨硬件——尤其是CPU——的性能,实现了向量化查询执行(vectorized query execution)机制。这个名词相对于上面的那些可能没那么平易近人,但它毫无疑问是CK相对于传统OLAP引擎的大杀器。鉴于现有资料中讲解CK向量化执行的内容很少,

2021-02-23 11:08:31 65

原创 Mysql表到多大数据量才开始分库分表?垂直切分/水平切分

分库分表是现在应对大量数据常用的手段,使用分库分表主要考虑:1、数据容量单表是否超过1000W2、单表容量到了1000W以上基本上稍微复杂一点的SQL都需要仔细优化,这时候的SQL耗时主要集中在磁盘IO上,数据命中缓存的概率降低,总之不好搞如果是正常的互联网项目,提前分库分表,在前期能做的先做了,后面会省很多时间处理数据迁移的事情...

2021-02-22 22:04:47 150

原创 Spark 解决倾斜

1 提前过滤异常值2 增大shuffle并行度3 两阶段聚合(局部聚合+全局聚合)4 异常值 join ......on -rand()*100000 随机值5 broadcast joinhttps://programskills.blog.csdn.net/article/details/111667492大key 随机值扩容 重启时 随机值变化 ? 有问题?...

2021-02-22 21:52:20 18

转载 Spark Cache 和 Checkpoint 区别

cache checkpoint rdd.persist(StorageLevel.DISK_ONLY) 使用场景 会被重复使用的(但不能太大) 运算时间很长或运算量太大才能得到的 RDD,computing chain 过长或依赖其他 RDD 很多的 RDD 存储位置 内存 磁盘或HDFS 磁盘或HDFS 是否保存血缘关系 保存血缘关系(内存不可靠,cache丢失时可以重新计算) 不保存血缘关系(HDFS可靠保存) ...

2021-02-22 16:30:39 28

转载 Kafka事务使用和编程示例/实例

一、概述​ Kafka事务特性是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务中,或者说是一个原子操作,生产消息和提交偏移量同时成功或者失败。 注意:kafka事务和DB事务。 在理解消息的事务时,一直处于一个错误理解是,把操作db的业务逻辑跟操作消息当成是一个事务,如下所示: void kakfa_in_tranction(){ // 1.kafa的操作:读取消息或生产消息 kafkaOperation(); // 2.db操作 dbOperation()

2021-02-22 12:28:20 57

转载 Flink两阶段提交协议 + Kakfa事务 保证端到端唯一 /TwoPhaseCommitSinkFunction / Kafka的幂等性和事务

文章目录Flink两阶段提交 1.EXACTLY_ONCE语义 2.Kafka的幂等性和事务 2.1 幂等性 2.2 事务 3.两阶段提交协议 4.TwoPhaseCommitSinkFunction 参考文献 Flink两阶段提交1.EXACTLY_ONCE语义EXACTLY_ONCE语义简称EOS,指的是每条输入消息只会影响最终结果一次,注意这里是影响一次,而非处理一次,Flink一直宣称自己支持EOS,实际上主要是对于Flink应用内部.

2021-02-22 11:28:38 100

转载 Flink. Runtime核心架构

1. Flink Runtime 概述1.1 概述Flink RunTime是介于底层部署与DataSteamApi或DataSetApi之间的一层,以JobGraph形式接收程序,将任务task提交到集群上执行,RunTime层可以适用不同底层部署模式。Flink Runtime总体架构如下如所示:[支持分布式Stream作业的执行、JobGraph到ExecutioGraph的映射转换、任务调度等,P11]主要分为Client ,JobManager, TaskManagerClie

2021-02-21 18:53:49 16

转载 Flink 三种时间机制、窗口机制 与 sparkStreaming storm 区别

窗口的使用方式:DataStream input = ;input.keyBy(new MyKeyselector()).window(TumblingEventTimeWindows.of(Time.seconds(5))) //assigner.evictor(TimeEvictor.of(Time.of(2,TimeUnit.SECONDS))) //evictor.trigger(EventTimeTrigger.create()) //trigger.allowedLate

2021-02-21 18:13:37 36

转载 数据仓库--通用的数据仓库分层方法?为何分层?ODS/ DW/DWD/DWS/APP

0x00 概述数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前网络中大部分可以被检索到相关文章只是简单地提及数据分层的设计,或缺少明确而详细的说明,或缺少可落地实施的方案,或缺少具体的示例说明。因此,本文将指出一种通用的数据仓库分层方法,具体包含如下内容:介绍数据分层的作用提出一种通用的数据分层设计,以及分层设计的原则举出具体的例子说明提出可落地的实践意见0x01 数据分层?“为什么要设计数据分层?”这应该是数据仓库同学在设计

2021-02-20 16:09:04 67

原创 Hive load数据到\t分隔的表,字段映射错误怎么解决?

表结构如下:CREATE EXTERNAL TABLE `tmp.shop_detail_tb`(`id` string COMMENT '',`name` string COMMENT '',`type` string COMMENT '',`amt` string COMMENT '',`month` string COMMENT '')PARTITIONED BY (`dt` string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'

2021-01-31 17:00:28 96

原创 Hive cube / rollup / grouping sets/GROUPING__ID用法

表结构如下:CREATE EXTERNAL TABLE `tmp.shop_detail_tb`(`id` string COMMENT '',`name` string COMMENT '',`type` string COMMENT '',`amt` string COMMENT '',`month` string COMMENT '')PARTITIONED BY (`dt` string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t

2021-01-31 16:36:47 40

原创 Java 为什么数组下标只能为int不能为long?int32位,为何最大值不是2^32 -1 ?

一个小标为int的byte数组全部放满东西需要的内存为(2^31-11)*1b=2Gb=0.25GB一个小标为long的byte数组全部放满东西需要的内存为(2^63+1)*1b 需要的内存太大 !!请问,你的机器有这么大的内存吗?https://bbs.csdn.net/topics/390207278byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte 类...

2021-01-30 13:00:48 53

转载 kafka offset __consumer_offsets_ 原理/Compact 整理

我们在kafka的log文件中发现了还有很多以__consumer_offsets_的文件夹;总共50个;由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsetstopic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息。__consumer_offsets是 kafka 自行创建的,和普通的 topic 相同。它存在的目的之一...

2021-01-29 18:48:28 98

转载 kafka auto.offset.reset / latest / earliest 详解

auto.offset.reset关乎kafka数据的读取,是一个非常重要的设置。常用的二个值是latest和earliest,默认是latest。一,latest和earliest区别1,earliest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费2,latest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据提交过offset,latest和earlie.

2021-01-29 18:41:49 53 1

原创 Java单例模式 双重校验锁 2021

package com.company;/** * @Author you guess * @Date 2021/1/29 09:32 * @Version 1.0 * @Desc 懒汉式 双重校验锁 */public class SingletonTest { //变量私有 private volatile static SingletonTest instance = null;//用volatile static 修饰 //构造方法私有 priva.

2021-01-29 09:46:09 46

转载 Java ConcurrentSkipListMap 跳表

到目前为止,我们在Java世界里看到了两种实现key-value的数据结构:Hash、TreeMap,这两种数据结构各自都有着优缺点。Hash表:插入、查找最快,为O(1);如使用链表实现则可实现无锁;数据有序化需要显式的排序操作。 红黑树:插入、查找为O(logn),但常数项较小;无锁实现的复杂性很高,一般需要加锁;数据天然有序。 然而,这次介绍第三种实现key-value的数据结构:SkipList。SkipList有着不低于红黑树的效率,但是其原理和实现的复杂度要比红黑树简单多了。SkipLi

2021-01-28 22:14:18 36

转载 Mysql 聚簇索引和非聚簇索引的区别

聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致。一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引。在《数据库原理》一书中是这么解释聚簇索引和非聚簇索引的区别的:聚簇索引的叶子节点就是数据节点,而非聚簇索引的叶子节点仍然是索引节点,只不过有指向对应数据块的指针。https://blog.csdn.net/alexdamiao/article/details/51934917聚簇索引:将数据存储与索引放到了一块,索引结.

2021-01-28 21:58:05 36

转载 什么是零拷贝技术(zero-copy)?

零拷贝主要的任务就是避免CPU将数据从一块存储拷贝到另外一块存储,主要就是利用各种零拷贝技术,避免让CPU做大量的数据拷贝任务,减少不必要的拷贝,或者让别的组件来做这一类简单的数据传输任务,让CPU解脱出来专注于别的任务。这样就可以让系统资源的利用更加有效。我们继续回到引文中的例子,我们如何减少数据拷贝的次数呢?一个很明显的着力点就是减少数据在内核空间和用户空间来回拷贝,让数据传输不需要经过user space,这也引入了零拷贝的一个类型:使用mmap#####我们减少拷贝次数的一种方法是.

2021-01-28 20:44:08 45

转载 kafka是如何保证消息不丢失的?生产端/消费端

前提条件任何消息组件不丢数据都是在特定场景下一定条件的,kafka要保证消息不丢,有两个核心条件。第一,必须是已提交的消息,即committed message。kafka对于committed message的定义是,生产者提交消息到broker,并等到多个broker确认并返回给生产者已提交的确认信息。而这多个broker是由我们自己来定义的,可以选择只要有一个broker成功保存该消息就算是已提交,也可以是令所有broker都成功保存该消息才算是已提交。不论哪种情况,kafka只对已提交的消息

2021-01-28 18:47:15 68

split_csv.sh

v6.csv有200多万行,excel的一个sheet最多显示104万行左右,显示不全,那么如何切分呢? 亲测可用

2020-03-21

android通过servlet与服务器验证用户信息

成功返回success,失败返回failed 1注意manifext.xml的权限 2 servlet project的类一定要extends httpservlet 3 servlet project中,com是包名,所以Tomcat是...classes/com/xxx.class 4 192.168.0.107是电脑的IP,需要手机电脑连接的是同一个wifi,电脑的防火墙一定要关闭

2016-03-26

mhd raw metaimage java读取类

亲测可用,mhd raw metaimage java读取类。mhd raw metaimage java读取类。mhd raw metaimage java读取类。

2017-10-18

commons-configuration-1.6.jar

解决..java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration, 亲测可用

2016-07-08

全国省市县区域名称

省市县区域名称,例如: ................. 240: 云南省:昆明市 240864: 云南省 昆明市 东川区 240865: 云南省 昆明市 五华区 240866: 云南省 昆明市 呈贡县 240867: 云南省 昆明市 安宁市 ............

2015-11-17

htmlunit-2.31.jar

htmlunit-2.31,亲测可用!能很好的完成抓取需求,能够模拟输入、点击按钮、解析结果

2018-06-10

Navicate for Mysql

包含注册key,解压后即可使用,不用安装,方便快捷。包含注册key,解压后即可使用,不用安装,方便快捷。包含注册key,解压后即可使用,不用安装,方便快捷。包含注册key,解压后即可使用,不用安装,方便快捷。

2017-10-17

joda-time-2.3.jar

DateTime类型,方便使用

2016-11-17

commons-lang-2.5.jar

解决..java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils问题

2016-07-08

拼图游戏C语言

拼图游戏开发,使用语言为C语言类,游戏开发,

2013-05-24

Struts2登录实例--亲测可用

Struts2登录实例--亲测可用,拦截器,Action,值栈......都用到了

2017-05-17

quartz定时任务

不用集成Spring,代码简洁,亲测可用

2017-05-20

二十六画生的博客的留言板

发表于 2020-01-02 最后回复 2020-01-02

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

TA关注的人 TA的粉丝

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