- 博客(72)
- 资源 (2)
- 收藏
- 关注
原创 Spark性能优化指南——高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Sp...
2020-03-25 10:48:00 47
原创 红黑树
一、概念R-B Tree,全称是Red-Black Tree又称红黑树,它是一种特殊的二叉查找树,红黑树的每个节点上都有存储位表示节点的颜色,可以是红或黑。二、特性每个节点或者是红色,或者是黑色根节点是黑色的每个叶子节点(NIL)是黑色的。注意:这里的叶子节点,是指为空的叶子节点如果一个节点是红色的,则它的子节点必须是黑色的从任意一个节点到其叶子的所有路径中,所包含的黑节点数量是...
2020-03-06 13:24:00 48
原创 Spring事务Transactional和动态代理(三)-事务失效的场景
系列文章索引:Spring事务Transactional和动态代理(一)-JDK代理实现Spring事务Transactional和动态代理(二)-cglib动态代理Spring事务Transactional和动态代理(三)-事务失效的场景一. Spring事务分类Spring 提供了两种事务管理方式:声明式事务管理和编程式事务管理。1.1编程式事务在 Spring 出现以前,...
2020-03-05 17:56:00 62
原创 Spring事务Transactional和动态代理(二)-cglib动态代理
系列文章索引:Spring事务Transactional和动态代理(一)-JDK代理实现Spring事务Transactional和动态代理(二)-cglib动态代理Spring事务Transactional和动态代理(三)-事务失效的场景什么是cglibCglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。它为没有实现接口的类提供代理,为J...
2020-03-05 08:48:00 52
原创 Spring事务Transactional和动态代理(一)-JDK代理实现
系列文章索引:Spring事务Transactional和动态代理(一)-JDK代理实现Spring事务Transactional和动态代理(二)-cglib动态代理Spring事务Transactional和动态代理(三)-事务失效的场景什么是代理理设计模式提供了对目标对象的间接访问方式,能力模式能够解耦合并且便于扩展目标的功能。在现实生活这,我们消费者如果要去购买一杯牛奶的时...
2020-03-04 19:22:00 35
原创 深入JVM(二)JVM概述
深入JVM(一)JVM指令手册深入JVM(二)JVM概述一.JVM的原理Java虚拟机是Java平台的基石,解决了硬件和操作系统的相互独立性。不同平台(Windows,Linux和MacOS)的JVM都是不同的,但是他们都提供了相同的接口。虚拟机可以分为系统虚拟机和程序虚拟机。系统虚拟机就是VMware和VirtualBox这一类的,完全是对物理资源的隔离。而Java虚拟机是程序虚拟机...
2019-12-31 16:34:00 18
原创 深入JVM(一)JVM指令手册
本文按照如下思维导图组织1. 栈和局部变量操作1.1 将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_...
2019-12-31 16:30:00 20
原创 Spark RDD的弹性到底指什么
RDD(Resiliennt Distributed Datasets)抽象弹性分布式数据集对于Spark来说的弹性计算到底提现在什么地方?自动进行内存和磁盘数据这两种存储方式的切换Spark 可以使用 persist 和 cache 方法将任意 RDD 缓存到内存或者磁盘文件系统中。数据会优先存储到内存中,当内存不足以存放RDD中的数据的时候,就会持久化到磁盘上。这样,就可以最大化的利益...
2019-12-31 09:50:00 24
原创 JDK源码分析-HashMap
一.HashMap的内部属性1.1 成员变量1.1.1 size:HashMap包含的KV键值对的数量,也就是我们通常调用Map.size()方法的返回值 public int size() { return size; }1.1.2 modCountHashMap的结构被修改的次数(包括KV映射数量和内部结构rehash次数),用于判断迭代器梳理中...
2019-12-27 14:12:00 31
原创 Spark性能优化指南——初级篇
原文来我的公众号:Spark性能优化指南——初级篇一. Spark作业原理我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。该进程是向集群管理器(Yarn,K8s)申请运行Spark作业需要使用的资源,这里的资源指的就是Executor进程。YARN集群管理器会根据我们为Spark作业设置的资源参数,在各个工作节点上,启动一定数量的Ex...
2019-12-26 20:38:00 17
原创 Spark原理概述
原文来自我的个人网站:http://www.itrensheng.com/archives/Spark_basic_knowledge一. Spark出现的背景在Spark出现之前,大数据计算引擎主要是MapReduce。HDFS + MapReduce的组合几乎可以实现所有的大数据应用场景。MR框架抽象程度比较高,需要我们编写Map和Reduce两个步骤(MapReduce 框架其实包含...
2019-12-26 13:48:34 199
原创 Apache Kafka系列(六)客制化Serializer和Deserializer
已经迁移,请移步:http://www.itrensheng.com/archives/apache-kafka-repartition
2019-11-13 18:59:00 21
原创 Azkaban时区问题导致调度差1天
迁移到:http://www.itrensheng.com/archives/azkaban_timezone
2019-02-14 10:49:00 29
原创 impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
迁移到:http://www.itrensheng.com//archives/impala_jdbc_nomultiple_sql
2019-01-30 19:29:00 23
原创 sqooq同步mysql tinyint类型到hive的一个诡异问题
迁移到:http://www.itrensheng.com/archives/sqoop_hive_tinyint
2019-01-24 17:27:00 18
原创 golang-gorm框架支持mysql json类型
迁移到:http://www.itrensheng.com//archives/golang_gorm_json_type
2018-12-25 15:10:00 22
原创 Mac版Mysql Workbench不展示Schema
Mac版的Mysql Workbench会不展示Schema,如下图操作如下cd ~/Library/Application\ Support/MySQL/Workbench/rm wb_state.xmlrm wb_options.xml
2018-11-29 10:26:00 33
原创 关于Mysql查询varchar类型错误问题
迁移到:http://www.itrensheng.com//archives/mysql_type_unmatch_error
2018-11-15 15:17:00 67
原创 SpringBoot接口返回去掉空字段
返回的接口中存在值为null或者空的字段过滤掉@Configurationpublic class JacksonConfig{ @Bean @Primary @ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper jacksonObjectMapper(Jackson2Objec...
2018-11-07 19:29:00 43
原创 Java对html标签的过滤和清洗
OWASP HTML Sanitizer 是一个简单快捷的java类库,主要用于放置XSS优点如下: 1.使用简单。不需要繁琐的xml配置,只用在代码中少量的编码 2.由Mike Samuel(谷歌工程师)维护 3.通过了AntiSamy超过95%的UT覆盖 4.高性能,低内存消耗 5.是AntiSamyDOM性能的4倍1.POM中增加 <!-...
2018-10-31 18:02:00 24
原创 Hive分区表创建,增加及删除
1.创建Hive分区表,按字段分区CREATE TABLE test1 ( id bigint , create_time timestamp , user_id string) partitioned by (partition_key int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TE...
2018-07-04 14:12:00 124
原创 Impala 加载Hive的UDF
Impala的UDF有两种: Native Imapal UDF:使用C++开发的,性能极高,官方性能测试比第二种高出将近10倍 Hive的UDF:是Hive中的UDF,直接加载到Impala中,优点是不需要任何改动,完全跟Hive中用法相同第一种方式请参考我转载的文章【转】Impala安装json解析udf插件本文介绍第二种方式,在Impala中直接加载Hive的UDF如在Hiv...
2018-06-28 20:15:00 19
原创 在编译器中调试spark程序处理
在IDEA中调试spark程序会报错18/05/16 07:33:51 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable18/05/16 07:33:51 ERROR SparkContext: ...
2018-05-16 07:41:00 14
原创 转:Kafka 客户端TimeoutException问题之坑
原文出自:http://www.jianshu.com/p/2db7abddb9e6各种TimeoutException问题会抛出org.apache.kafka.common.errors.TimeoutException:message可能为各种:Batch ExpiredFailed to update metadata after 60000 ms.ailed to upd...
2017-10-31 07:51:00 22
原创 Docker学习系列(三)Docker搭建gitlab的两种方式
一.直接下载docker-ce 1.拉取gitlab/gitlab-ceRandy:~ Randy$ docker pull gitlab/gitlab-ceUsing default tag: latest 2.运行gitlab/gitlab-ce,Randy:~ Randy$ docker run -d --publish 8443:443 --publish 800...
2017-08-06 21:50:00 17
原创 Docker学习系列(二)Docker初体验
一.系统要求 Docker的安装,需要在CentOS 7.0+版本,内核至少3.10,64-bit uname--r[randy@randysun ~]$ uname --r3.10.0-514.6.2.el7.x86_64[randy@randysun ~]$ 二.更新YUM yun update三.新建Docker repository ...
2017-07-31 23:37:00 11
原创 Docker学习系列(一)Docker简介
简介Docker是一个在全球范围领先的软件容器平台。开发人员可以使用容器来在协作过程中遇到的解决“不同环境配置”的问题。(例如,在传统的开发环境下,开发人员编写代码,然后交由测试人员测试,但是因为各自配置的环境不同,这样所开发和测试的结果就会不同)。但是,如果使用Docker的话,这个问题就不存在了。Docker可以在相互独立的情况下运行和管理应用程序,这样就可以达到更高的计算密度。企业也可以...
2017-07-31 23:14:00 14
原创 ZooKeeper介绍与环境搭建
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等...
2017-05-25 00:02:00 16
原创 JDK工具系列之jps
一、简介 jps(JVM Process Status Tool)是虚拟机进程状态工具:可以列出正在运行的虚拟机进程,显示虚拟机正在执行的main()函数,及这些进程的ID(LVMID,Local Virsul Machine ID),当显示的是本地虚拟机正常的时候,则该值与ps命令中显示的操作系统进程编号相等。查询进程的时候,不需要输入进程号,故经常用于JVM排查的入口。其原理是ja...
2017-03-31 10:49:00 14
原创 Mycat数据库中间件对Mysql读写分离和分库分表配置
Mycat是一个开源的分布式数据库系统,不同于oracle和mysql,Mycat并没有存储引擎,但是Mycat实现了mysql协议,前段用户可以把它当做一个Proxy。其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端mysql存储引擎里面。最新版本的Mycat不仅支持mysql,还可以支持MS SqlServer,Oracle,DB2等关系型数据库,而且还支持MongoDB这种...
2017-03-20 23:30:00 19
原创 mysqlslap执行基准测试
查看mysqlslap所支持的主要参数配置及说明如下-a, --auto-generate-sql 由系统自动生成SQL脚本进行测试 Generate SQL where not supplied by file or command line. --auto-generate-sql-add-autoincrement 生成的表中增加自增的I...
2017-02-27 15:29:00 12
原创 数据库事物隔离四种级别详解
已经迁移到了个人博客,请移步:http://www.itrensheng.com/archives/1572449419792
2017-02-16 12:07:00 14
原创 sysctl.conf学习和调优
转载于简书:sysctl.conf学习和调优,如有版本问题,请联系我前言记得第一次接触/etc/security/limits.conf和/etc/sysctl.conf时是因为部署Oracle时要按需修改内核参数。limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置...
2017-02-15 14:24:00 15
原创 十一.安装Redis
redis是一个NOSql数据库,在java web中,经常用来存储session等,官网是https://redis.io/当前官网指出的稳定版本为3.2.6,下载地址为http://download.redis.io/releases/redis-3.2.6.tar.gz1.下载redis[root@iZ25ufmpy4sZ local]# wget http://download....
2017-01-18 17:35:00 12
原创 一.Mysql主从复制配置
在我之前的文章四·安装mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz(基于Centos7源码安装和九.mysql数据库多实例安装mysqld_multi [start,stop,report]两篇文章写到了单太服务器多实例的安装,本篇文章是关于主从复制的配置。本次把mysql3306作为主Master,mysql3307和mysql3308作为Slave...
2017-01-17 18:35:00 22
原创 七.部署war包到Tomcat(基于Centos安装)
1.把war包上传至tomcat的webapps目录下面 2.启动Tomcat,在Tomcat的bin目录下面,运行startup.sh 3.访问项目,如下成功打开项目
2017-01-17 16:41:00 19
原创 十.mysqld_multi stop无效问题
今天在尝试运行mysqld_report stop的时候,发现无法停止mysql,日志中的错误如下Stopping MySQL serversmysqladmin: [Warning] Using a password on the command line interface can be insecure.mysqladmin: connect to server at 'loca...
2017-01-17 14:28:00 19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人