自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

A coder of life

记录bug人生

  • 博客(132)
  • 资源 (18)
  • 收藏
  • 关注

原创 CLA not signed yet

参加github上的开源项目,需要github账号,这是必须的。同时公司内部搭建了个git服务器,每个人都有一个git账号往公司的git服务器push 或者 pull代码。参加开源项目提交代码时,不慎使用了公司的git账号提交导致CLA验证的时候过不去(验证提交代码的user_name),这个时候需要修改本地单独开源项目的user_name和user.email。进入本地仓库目录,查看:git config user.namegit config user.email或者git config

2021-09-27 12:57:08 2583

原创 Azkaban2.0配置运行Java Job传参,指定JVM内存

nodes: - name: java_xhs_keyword_comment type: javaprocess config: java.class: com.jxz.dw.entry.SyncEntry classpath: /home/ops/dw_sync-1.0.jar main.args: xhs_keyword_comment 2021-09-07 jvm.args: -Xms4096M -Xmx4096Mflow中的主要配置如上。.

2021-09-07 18:02:04 621

原创 Java语言实现LRU(最少最近使用)缓存淘汰算法

LRU(least recently use)最少最近使用算法,是缓存淘汰中常用的算法,实际使用要求是:1.把最常使用的放前面,不常使用的放后面,至于这里的前面和后面会在后面说到。2.要求存取的时间复杂度是O(1)。3.存数据的时候,如果容量已满,则去除最后不常使用的数据,再把新数据插入,插入的数据位于前面。如果有该数据则移动到前面。4.取数据的时候,没有则返回-1,有则返回该数据,并将该数据放在前面。这里借助hash表和双链表来实现,因为要求时间复杂度是常数级,所以使用hash表存取.

2021-05-27 17:20:32 498

原创 数据仓库-数仓是如何反三范式的?

在回答数据库和数据仓库的区别时,最常见的回答是数据仓库反三范式,数据库遵循三范式。 那么具体的区别时什么?下面进行简单的说明。数据库三范式字段列含义不可分割。数据库默认遵循第一范式,不遵循第一范式无法创建表,下面的"进货"和"销售"列可以再细分,所以不符合第一范式。 2.表有主键,且非主键列依赖主键列。下图中可以将"学号"和"课名"作为联合主键,但是非主键列如"系主任"并没有直接依赖联合主键,所以不符合第二范式。 3.非主键列不互相依赖。非主键列"系...

2020-06-09 11:41:59 2868

原创 数据仓库-元数据浅析

元数据即是数据的数据,是用来描述数据的,即和数据识别,产生,使用这一流向过程相关的直接的间接的所有相关的数据都可以称之为元数据,而不单单是数据表相关信息。比如:以大数据数仓常见的架构为例:源数据通常通过ETL工具如kettle或canal或其他工具将数据抽到大数据平台中,存储在hdfs上,再经过数据分析(经典数仓按照ods->dwd->dws->ads)形成最终要使用的数据,最后通过接口或其他形式提供业务方或其他系统使用。在这一数据流转过程中,每个过程都有元数据并且在数据治理过程中

2020-06-08 11:37:06 694

原创 Linux Shell脚本中常用的操作

1.获取当前脚本路径2.判读字符串变量为空和不为空3.获取日期及相关操作4.脚本输入参数指定与判定5.数组遍历6.shell执行结果判断7.读配置文件8.获取当前机器IP9.程序暂停一段时间10.字符串截取与替换11.发送邮件12.读写数据库13.压缩与解压缩14.判断...

2020-05-20 15:22:03 595

原创 Linux Shell读写Mysql数据库

myql配置文件mysql.properties中存放mysql连接参数:#mysql ipmysql_ip=192.168.76.140#mysql端口mysql_port=3306#mysql登陆用户名mysql_user=root#mysql登陆密码mysql_password=123456注意:配置参数不要用.连接,否则eval读取不到参数值。#!/bi...

2020-02-28 13:45:29 1083

原创 Flink SQL自定义TableSource读取Kudu数据

本文基于Flink1.9,之前文章基于Flink1.6。在Flink的官方文档中提供了很多connector用于连接外部系统数据源。如果提供的connector不能满足需要,还可以通过自定义方式定义读取外部数据源的逻辑。本文的背景就是使用SQL查询批量数据,但是批量数据存储在kudu中,由于没有提供connector所以需要自定义读取数据逻辑。官方文档中给出了自定义批量数据读取的实现方式:...

2019-12-13 11:34:54 6255

原创 mysql基于成本的优化

mysql在实际执行查询语句之前会经查询优化器评估一个成本最低的方式去执行查询,成本是怎么评估的呢?分为两个部分:IO成本:mysql规定读取一个页面的成本是1.0 CPU成本:CPU成本是指对记录进行条件判断的成本,mysql规定判断一条记录的成本为0.2从上可以看出,我们需要两个数据:核算IO成本需要页面数量 核算CPU成本需要记录数总成本=IO成本+CPU成本通常选择最低...

2019-10-30 15:48:58 2864

原创 mysql多表连接

首先要明确的是内连接、外连接(分左外连接和右外连接)的区别:select * from t1,t2:这种写法等价于select * from t1 join t2select * from t1 inner join t2select * from t1 cross join t2查询出来的结果集是笛卡尔积,条数为t1表的条数乘以t2表的条数。内连接:前面的连接中没有进行条件...

2019-10-29 11:45:40 370

原创 mysql表的访问方法

mysql执行查询语句的时候,会有许多方式访问表,总体分为以下两大类:使用索引 全表扫描如果一个查询sql中包含多个索引,一般情况下,会选取使用索引返回的记录少的那一个,其他的过滤条件在返回完整用户记录时再进行过滤匹配。但特殊情况下,多个索引也会都使用(比如索引合并)。具体来说有以下访问表的方法:const:针对主键和唯一索引 ref:普通二级索引等值匹配 ref_or_nul...

2019-10-28 15:22:25 771

原创 mysql的表空间结构

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!表空间分为系统表空间和独立表空间,一般情况下一张表会对应一个独立表空间。为了管理表空间,设计了各种类型的页和链表,表空间的管理是非常复杂的。那么表空间存的是什么东西呢?记录是怎么存在于表空间中的呢?为了管理表空间又引入了哪些概念呢?表空间可以看成是由数据页组成的集合,存储记录时,从表空间中取一个页来存记录,但是我...

2019-10-25 16:55:26 579

原创 mysql数据目录

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!mysql数据目录是放mysql运行中产生数据的地方,也就是数据库、表、视图、触发器等数据。数据库目录在什么位置?可以通过在mysql命令行中输入:show variables like ‘datadir’查看。在数据目录下,一个数据库对应其下面的一个同名子目录,子目录下有一个db.opt专门描述该数据库相关信息...

2019-10-16 16:01:31 211

原创 mysql B+树索引使用要点

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!我们知道引入索引是为了快速查询,但是往往一个系统或者软件引入了新的模块、功能或者组件,虽然丰富了产品特性,但是不可以避免的提升了系统或软件的复杂性和耦合性。因此要正确的使用索引,必须清楚其背后的原理。B+树索引并不是建的越多越好,因为:空间上,B+树的每个节点对应一个数据页,一个页大小为16KB,节点越多,越...

2019-10-15 14:57:02 167

原创 mysql的B+树索引

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!以mysql中的innodb引擎为例,索引是个什么东西?为什么说索引即数据?一个2层B+树索引最多可以存多少条数据?聚簇索引,二级索引,联合索引?在单个页中进行记录查找分为:定位记录所在的槽 遍历槽比对记录真实的场景中,表中的数据会分布在很多的页中。记录的查找也在这些页中进行,如果我们不进行任何查找优化,...

2019-10-14 15:19:35 182

原创 mysql的页结构

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!mysql的记录格式是放在数据页中的,准确的说是user records部分。一个页大小为16KB,数据页是mysql和磁盘交互的基本单位。mysql出于不同的目的设计了不同类型的数据页,但页的结构是相同的,不同的是不同页中的页结构填充的内容是有差异的。页的结构如下所示: File header ...

2019-10-12 15:29:41 1297 1

原创 mysql innodb记录存储格式

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!mysql innodb引擎将数据存储在磁盘中,不同的引擎存储形式不同,有的则不需要存储,比如memory引擎。innodb引擎底层数据的存储格式形式如下:变长字段长度列表 NULL值列表 头信息 列1值 列2值 列n值....... 前面三个单元格是记录的附加信息,为了标识...

2019-10-10 15:43:17 631

原创 mysql字符集

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!字符集界定能够将哪些字符编码成二进制码,比较规则则是一种比较字符大小的规则。我们通常遇到的乱码问题,本质是编解码出现了问题。也即是编码和解码字符集不一致导致的。在mysql中utf8其实是utf8mb3,采用的是1-3个变长字节。而utf8mb4则是采用的1-4个变长字节,如果存储emoji表情,需要使用ut...

2019-10-09 16:03:24 300

原创 mysql的启动配置参数

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!在启动mysql服务器端程序的时候,可以加入一些启动选项,这些启动选项可以影响后续程序的一些行为。比如常见的默认存储引擎就可以通过指定启动选项来设置,如:bin/mysqld --default-storage-engine=myisam后面还可以加入其它的启动选项,不过这种通过命令行的方式来指定启动参数不够...

2019-09-30 14:37:08 4817

原创 初步认知mysql

这篇文章是自己学习mysql随手写的杂记,编辑混乱且不够严谨,请勿参考,谢谢!mysql采用客户端/服务器端架构,每运行一个mysql服务器端程序,操作系统随机产生一个进程号,进程名为mysqld。客户端启动产生的进程名为mysql。一般mysql安装包都会包括服务器端程序和客户端程序,所以mysql安装好了,启动好服务端后,可以直接启动客户端连接上服务器程序。客户端和服务器端进程通信有多...

2019-09-29 16:38:41 224

原创 Spring Boot整合Flink

使用spring boot整合flink可以快速的构建起整个应用,将关注点重点放在业务逻辑的实现上。在整合的过程中遇到许多问题,最大的问题是flink流无法访问spring容器中的类,从而导致空指针异常,解决思路是在流中进行spring bean的初始化以获得ApplicationContext,进而使用其getBean方法获取类实例。软件版本:Spring Boot 2.1.6+Flink1...

2019-07-04 22:46:43 41537 20

转载 kafka如何彻底删除topic及数据

前言:删除kafka topic及其数据,严格来说并不是很难的操作。但是,往往给kafka 使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法。step1:如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费...

2019-05-28 14:19:46 751

原创 spring boot2.x启动源码浅析

spring boot程序启动入口是:@SpringBootApplicationpublic class ApplicationServer { public static void main(String[] args) { SpringApplication.run(ApplicationServer.class, args); }}看下Sp...

2019-05-27 17:11:23 339

原创 第一个spring boot接口项目开发总结

第一次使用spring boot开发接口项目,对接口使用的技术做了个大概的梳理,细节没有展开,详细可参看官网文档。1.项目监控:使用spring boot admin server,可以详细的查看应用运行的内存使用情况,GC情况,磁盘,日志等等。2.权限控制:使用spring boot security,控制哪些ip可以访问接口服务,可以访问哪些资源。 <...

2019-05-21 14:30:26 523

原创 IDEA常用设置总结

以下总结为自己工作中的IDEA设置,不分顺序。1.代码跳转设置https://blog.csdn.net/u010814849/article/details/76682701/2.自己安装的插件Alibaba Cloud Toolkit 开发,部署,详细可参看:Alibaba Cloud ToolKit使用JRebel for IntelliJ 热部署JsonFormat...

2019-04-18 11:15:04 354

原创 linux系统缺包安装-持续更新

1.输入man proc,报错:No manual entry for proc切换到root用户下,执行:yum install -y man-pages2.输入netstat -anlp|grep 21050,报错:-bash: netstat: command not found切换到root用户下,执行:yum install -y net-tools3.sar命令找不到...

2019-04-18 10:23:49 420

原创 spring boot admin导致swagger-ui.html无法访问的解决办法

spring boot admin版本:2.1.3swagger2版本:2.7.0spring boot security版本:2.1.3问题现象是:spring boot admin可以正常监控了,但是swagger-ui.html却无法打开:尝试1:重写public void configure(WebSecurity web) @Override publ...

2019-04-17 18:38:23 3859 2

原创 linux性能速查-中断

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。中断是一种处理硬件设备请求的机制,它会打断正常的进程调度和执行,通过调用中断处理程序来响应硬件请求。它还是一种异步处理机制,可以提高系统的并发处理能力。中断的处理分为两个部分:上半部。处理速度快,通用用于处理和时间或硬件紧密相关的任务,会打断进程,即硬中断。 下半部。延迟处理上半部未完成的...

2019-04-08 10:29:02 3055

原创 linux性能速查-进程状态

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。进程状态分为:D-不可中断睡眠状态,此时进程在等待硬件的响应,为了保证进程和硬件数据的一致性,不能被其他进程或中断打断。R-可运行态,正在使用CPU或等待CPU。S-可中断睡眠,调用sleep。Z-僵尸态。I-空闲,内核持有,和D的区别是不消耗资源。T-暂停或追踪。X-停...

2019-04-03 10:26:03 149

原创 linux性能速查-CPU使用率

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。我们最常用的衡量CPU性能的指标就是CPU使用率,在linux系统中,使用节拍率维护CPU时间,比如如果节拍率为100,也就是每秒触发100次时间中断,在/proc/stat中可以看到CPU自开机以来的节拍数,如:cpu 27191238 724 17538650 6555468157 13...

2019-04-01 10:46:27 551

原创 linux性能速查-CPU上下文切换(二)

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。既然我们知道频繁CPU上下文切换会导致平均负载升高,那么如何排除问题呢?使用性能监控工具vmstat可以查看上下文切换次数,中断数,就绪队列长度,不可中断数等指标。如上图所示,重点关注:cs-每秒上下文切换次数in-每秒中断数r-就绪队列长度(正在运行或正在等待CPU的进程数...

2019-03-28 10:49:40 5728 1

原创 linux性能速查-CPU上下文切换(一)

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。在导致平均负载升高的因素中,任务等待CPU就是其中一个。本质原因是:上下文切换当然更准确的说是:过多的上下文切换是导致平均负载升高的凶手。正常的上下文切换是系统调度任务的必要手段。1.什么是上下文?任务中的CPU寄存器,程序计数器都是上下文,可以理解为任务执行的依赖环境。寄存器:访问...

2019-03-27 11:00:39 801

原创 linux性能速查-平均负载

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。1.什么时候需要查看平均负载? 系统或应用运行缓慢的时候。2.平均负载的意义和误区? 平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数,也就是平均活跃进程数。可运行状态:正在使用CPU或正在等待CPU,ps -aux 中stat为R的。不可中断状态:...

2019-03-26 11:03:09 431

原创 使用策略模式优化过多的if else语句

此处的过多是指if else超过三层,如下面的代码:public class MainStart { public static void main(String[] args) { String message = "select"; if(message.equals("select")){ System.out.prin...

2019-03-18 19:54:23 7528 8

原创 Flink状态后端的使用

Flink提供了以下三种开箱即用的状态后端(用于存储状态数据),可以为所有flink作业配置相同的状态后端(flink-conf.yaml ),也可以为每个flink作业配置指定的状态后端。MemoryStateBackend FsStateBackend RocksDBStateBackend至于在实际应用中应该选择何种状态后端,需要结合业务场景及三种状态后端的特点以做出最佳选择,本文...

2019-02-13 14:14:16 4157

原创 Flink实现状态数据互相访问(即依赖数据访问,类似表之间的Join)

在流处理应用中,对单个event的处理如果不涉及与其他event交互或访问是比较简单的。但是如果对单个event的处理依赖其他topic过来的event或者后续处理的event依赖当前处理的event,这种情景类似于多表之间join,A和B join取A表的某几个字段。使用flink的state就可以实现。一个场景如下:     课程信息(table,class_id,class_name...

2019-02-11 16:00:45 4796

原创 Alibaba Cloud ToolKit使用

Alibaba Cloud ToolKit可以帮助开发者在IDE中将本地应用程序一键部署到阿里云服务器或自有服务器上,可以在IDE中打开服务器的命令行终端,可以直接上传文件到服务器上,使用该toolkit做开发调试非常的方便,官网给出该toolkit包含三大功能:1.应用部署2.内置终端Terminal3.文件上传----------------------------------...

2019-01-11 19:14:49 16711

原创 Flink状态计算实例与状态数据恢复(checkpoint)

状态计算,简单的理解是本次计算依赖于之前的计算结果,比如,根据key计算求和值,如:key  value1001,3000-------------(1001,3000)1002,500--------------(1002,500)1001,400--------------(1001,3400)其中计算第三条数据1001,400时需要累加到之前已经计算好的1001,300...

2019-01-10 11:37:54 9589

原创 maven jar冲突依赖总结(持续更新......)

1.logback和slf4j-log4j12冲突使用logback作为日志框架,要排除掉slf4j-log4j12包(可能没有引入该包,但是引入的其他包的依赖中包含),两者有冲突,比如hive-jdbc中就包含该包,需要排除。 <dependency> <groupId>org.apache.hive</groupId>...

2018-12-04 10:40:49 386

原创 impala JDBC报错:[Simba][ImpalaJDBCDriver](500323) Error processing query translation statement.

impala JDBC连接impala表(impala和kudu关联表)进行upsert,delete操作,upsert操作没有任何问题,但是delete操作报错,完整错误如下:[Simba][ImpalaJDBCDriver](500323) Error processing query translation statement.java.sql.SQLException: [Simb...

2018-11-29 11:35:35 11309

Hive权限设置说明

CDH平台,通过hue访问hive,控制库级别,表级别,及列级别的访问权限

2018-07-17

大数据开发工具包-项目构建工具-maven3.5.4

Apache maven3.5.4的版本,项目构建必备工具之一,功能强大。

2018-07-04

大数据开发工具包-版本控制工具-Windows版64位git

版本控制工具git,不同于传统的SVN,git的使用越来越广泛。

2018-07-04

大数据开发工具包-插件工具-IDEA2017.3.5的scala插件

此scala插件对应idea的版本是2017.3.5版本,安装简单。

2018-07-04

大数据开发工具包-文本编辑工具-notepad++

notepad++编辑器可编辑各类文本,包括shell,SQL,txt等等....

2018-07-04

大数据开发工具包-服务器连接工具-XShell

方便好用的连接服务器的工具,必备的大数据服务器连接工具之一。

2018-07-04

nginx_upstream_check_module

nginx后端节点健康检查模块插件,非常好用,淘宝开发。

2016-11-12

pcre-8.39.tar.gz

安装nginx所依赖的包,如果安装了,不用再安装。

2016-11-12

nginx-1.11.5.tar.gz

一款非常流行的负载均衡工具,配置简单易用,功能强大,搭配keepalived做高可用。

2016-11-12

protoc-2.5.0-win32.zip

protobuf 谷歌的轻量级数据交换格式,该工具可以方便的产生java,c等类。

2016-08-30

yarn-utils.py

根据集群计算内存分配,使用前确定已安装pyhon,使用方法(linux环境): python yarn-utils.py -c 32 -m 128 -d 7 -k False -c:核数 -m:内存大小 -d:磁盘数 -k:hbase是否安装。False-没有安装 True-安装

2016-02-25

hbase shell常用命令汇总

总结常用的hbase shell操作命令。

2016-02-15

Python-3.5.1.exe

可执行文件,在windows环境下双击直接执行.

2016-01-12

json相关6个jar包

json解析所需要的几个jar包,总共六个。需要的下载。

2016-01-05

反编译工具jd-gui.exe

很好用的反编译工具,直接用这个工具打开jar包就可以查看源代码了。

2016-01-02

sqldbx数据库连接工具

数据库连接工具,很好用。写sql有提示,速度也挺快。

2016-01-02

mysql-connector-java-5.1.6-bin.jar

Java连接mysql数据的jar包,亲测可用。

2016-01-02

impala快速入门手册

指导新手快速使用impala做数据分析工作。包括常用的命令行和性能优化方法。

2016-01-02

空空如也

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

TA关注的人

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