自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 如何选择分布式事务形态(TCC,SAGA,2PC,基于消息最终一致性等等)

各种形态的分布式事务 分布式事务有多种主流形态,包括: 基于消息实现的分布式事务 基于补偿实现的分布式事务 基于TCC实现的分布式事务 基于SAGA实现的分布式事务 基于2PC实现的分布式事务 这些形态的原理已经在很多文章中进行了剖析,用“分布式事务”关键字就能搜到对应的文章,本文不再...

2019-01-04 10:18:41 634 0

转载 Kafka Offset Storage

1.概述  目前,Kafka 官网最新版[0.10.1.1],已默认将消费的 offset 迁入到了 Kafka 一个名为 __consumer_offsets 的Topic中。其实,早在 0.8.2.2 版本,已支持存入消费的 offset 到Topic中,只是那时候默认是将消费的 offset...

2018-04-10 19:14:34 494 0

转载 AWK与SHELL之间的变量传递方法

我认为在linux下awk是个好东东啊,处理一些文本文件会非常方便。而在Linux下嘛,经常会和shell打交道,所以awk和shell之间的变量相互传递,有时还是很有必要的,所以简单总结一下吧。 awk中使用shell中的变量一: "'$var'"这种写法...

2018-04-10 17:27:21 4369 1

转载 Spark Streaming 流计算优化记录(1)-背景介绍

1.背景概述业务上有一定的需求, 希望能实时地对从中间件进来的数据已经已有的维度表进行inner join, 以便后续的统计. 维表十分巨大, 有近3千万记录,约3G数据, 而集群的资源也较紧张, 因此希望尽可能压榨Spark Streaming的性能和吞吐量.技术架构大致上如下述: 数据从Kaf...

2018-04-04 17:55:15 409 0

转载 Spark Streaming 流计算优化记录(2)-不同时间片数据流的Join

1. 不同时间片数据流的Join         初体验之后, 看了一下Spark WebUi 的日志, 发现由于Spark Streaming需要每秒跑一次, 以实时计算数据, 所以程序不得不每秒都读一次HDFS去获取数据进行inner join.         本来SparkStreamin...

2018-04-04 17:54:26 543 0

转载 Spark Streaming 流计算优化记录(3)-控制流量与join的地点

4. 流量控制好像之前说过”一下子从Kafka拉取几十万条消息进行处理”的事情, 其实酱紫是不对滴, 饭要一口一口吃, 一下子吃太多, 会导致还没吃成胖子就已经被撑死的. 所以我们要对为了做压力测试而早已在Kafka中囤积多时的几十万条消息分批次进行处理, 毕竟实际跑起的时候每秒拥入我们知道, S...

2018-04-04 17:53:37 1026 0

转载 Spark Streaming 流计算优化记录(4)-时间都去哪儿了,关于调度与空转

6. 时间都去where了,青春不能等,调度也是除了上述优化, 我们还注意到一个奇怪的现象: 怎么回事, 即使接收不到消息都要花掉5秒?!! 虽然Spark Streaming空转依然会产生空task, 这些空task依然会消耗序列化, 压缩, 调度等时间, 但也不至于那么多吧!!!我们拿一个St...

2018-04-04 17:52:50 383 0

转载 Spark Streaming 流计算优化记录(5)-分区与内存的优化

8. 不一定非得每秒处理一次由于Spark Streaming的原理是micro batch, 因此当batch积累到一定数量时再发放到集群中计算, 这样的数据吞吐量会更大些. 这需要在StreamingContext中设置Duration参数. 我们试着把Duration调成两秒, 这样Spar...

2018-04-04 16:45:16 274 0

转载 Spark Streaming 流计算优化记录(6)-GC优化与shuffle service

11. Spark应用的GC调优说到GC, 可能很多人都倾向于使用新潮的G1垃圾收集器, 特别是intel的那几个兄弟在databrick发表了篇用G1调优Spark应用的博文后, 就更多人热衷于尝试G1了.但其实我们再去年就对G1和老牌的CMS+NewPar进行过对比测试, 发现G1根本没有比C...

2018-04-04 16:10:31 1066 0

转载 学习Spark2.0中的Structured Streaming(一)

Spark2.0新增了Structured Streaming,它是基于SparkSQL构建的可扩展和容错的流式数据处理引擎,使得实时流式数据计算可以和离线计算采用相同的处理方式(DataFrame&SQL)。Structured Streaming顾名思义,它将数据源和计算结果都...

2018-03-23 15:04:56 479 0

转载 spark JVM调优之原理概述以及降低cache操作的内存占比

每一次放对象的时候,都是放入eden区域,和其中一个survivor区域;另外一个survivor区域是空闲的。 当eden区域和一个survivor区域放满了以后(spark运行过程中,产生的对象实在太多了),就会触发minor gc,小型垃圾回收。把不再使用的对象,从内存中清空,给后...

2017-11-06 17:57:43 982 0

转载 spark性能调优(三)shuffle的map端内存缓冲reduce端内存占比

性能优化 shuffle spark.shuffle.file.buffer,默认32k spark.shuffle.memoryFraction,0.2 map端内存缓冲,reduce端内存占比;很多资料、网上视频,都会说,这两个参数, 是调节shuffle性能的不二选择...

2017-11-06 15:39:31 1640 0

转载 Spark的性能调优

基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task...

2017-11-06 15:05:33 1052 0

转载 ganglia配置文件详解

本文主要介绍了Ganglia 的gmetad和gmond的配置文件 Gmetad gmetad(Ganglia Meta Daemon)是一种安装在主机上用来收集和汇聚gmond所收集的指标数据的守护进程。gmetad默认使用RRD文件收集和汇聚指标数据,也可以通过配置gmetad将指...

2017-10-30 17:44:46 1276 1

转载 布隆过滤器(Bloom Filter)详解

布隆过滤器[1](Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正...

2017-09-22 14:39:23 1017 0

转载 G1垃圾回收器调优

了解如何针对评估、分析和性能来调整和调优 G1 GC。 2013 年 8 月发布 垃圾优先型垃圾回收器 (G1 GC) 是适用于 Java HotSpot VM 的低暂停、服务器风格的分代式垃圾回收器。G1 GC 使用并发和并行阶段实现其目标暂停时间,并保持良好的吞吐量。当 G1 GC 确定有...

2017-09-15 18:21:31 2653 0

原创 Hbase集群运维及应用性能优化总结(hbase1.20+)

(一). 操作系统              1. 足够大的内存       2. 操作系统64位,jdk64位       3. 设置linux swap空间的swappiness=0               a1. 永久有效设置(需系统重启) sudo vim...

2017-08-18 16:20:53 2968 0

转载 phoenix-4.8.0本地索引实现原理

1. 前言 phoenix有全局索引以及本地索引(可变与不可变等其它的且不谈),全局索引理解应该比较简单,如果让我自己去实现Hbase的索引应该想到的也是全局索引这种方式。本地索引适用于写比较频繁,储存空间受限的情况。 Local indexing targets write he...

2017-08-11 16:58:14 933 0

转载 phoenix-4.8.0整合hbase-1.2.0-cdh5.8.0

1. 前言 phoenix-4.8.0版本已经出了挺长一段时间了,之前一直有用开4.6版本,不过4.6版本的本地索引还不成熟,而且也存在着一些bug,在网上找到一些对旧版本的本地索引的描述 APPROACH 1 is a good start for local indexes, but I...

2017-08-11 16:53:18 1356 0

转载 HBase应用设计性能优化方法总结

本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客。 [转发者注明: 关于使用多线程去读取hbase全表数据,推荐先将rowkey根据线程的个数划分为多段,然后将每段 s...

2017-08-10 18:41:19 929 0

转载 HBase写入性能改造(续)--MemStore、flush、compact参数调优及压缩卡的使用

首先续上篇测试: 经过上一篇文章中对代码及参数的修改,Hbase的写入性能在不开Hlog的情况下从3~4万提高到了11万左右。 本篇主要介绍参数调整的方法,在HDFS上加上压缩卡,最后能达到的写入性能为17W行每秒(全部测试都不开Hlog)。 上篇...

2017-08-09 19:05:25 405 0

转载 HBase写入性能及改造——multi-thread flush and compaction(续:详细测试数据)

接上文啊: 测试机性能 CPU 16* Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz MEMORY 48GB DISK 12*SATA 2TB NET  4*1Gb Ethernet ...

2017-08-09 18:44:05 342 0

转载 HBase写入性能分析及改造—multi-thread flush and compaction(约能提高两到三倍吞吐量,带压缩测试)

首先描述一下现象 最近对HDFS底层做了许多优化,包括硬件压缩卡,内存盘及SSD。 在出测试报告时发现老问题,Hbase写入速度不稳定,这个大家都习以为常了吧,就是压测时,只要row size稍小一点,不管你怎么压,hbase的RegionServer总是不愠不火特淡定。有些人就怀...

2017-08-09 18:42:59 227 0

转载 Hbase配置项粗解

Hbase配置项粗解(1) 重读Hbase文档,把所有的配置项整理一遍。 hbase.tmp.dir:本地文件系统的临时目录,默认是Java.io.tmpdir/hbase−{user.name}; hbase.rootdir:hbase持久化的目录,被所有regionserve...

2017-08-09 15:43:21 274 0

转载 HBase性能调优(讲解透彻)

HBase性能调优  我们经常看到一些文章吹嘘某产品如何如何快,如何如何强,而自己测试时却不如描述的一些数据。其实原因可能在于你还不是真正理解其内部结构,对于其性能调优方法不够了解。本文转自TaoBao的Ken Wu同学的博客,是目前看到比较完整的HBase调优文章。  原文链接:HBase性...

2017-08-09 14:43:58 342 0

转载 hbase权威指南: store file合并(compaction)

Hbase为了防止小文件(被刷到磁盘的menstore)过多,以保证保证查询效率,hbase需要在必要的时候将这些小的store file合并成相对较大的store file,这个过程就称之为compaction。在hbase中,主要存在两种类型的compaction:minor  compa...

2017-08-09 11:34:52 275 0

原创 Spark客户端在centos6.4上安装

客户端安装环境如下: 操作系统: centos6.4 操作系统内核: Linux version 2.6.32-358.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Ha...

2017-07-06 17:22:35 553 0

转载 单个JVM下支撑100w线程数

I、环境要求: 1.64bit Linux 2.64bit JDK 3.Memory够大,512GB 4.cpu:64 processors II、测试工具:【DieLikeADog.java】 java -server -Xmx6G -Xms6G -Xmn60...

2017-07-04 14:26:52 399 0

转载 jstat命令详解

Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于Java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收...

2017-06-21 13:03:17 325 0

转载 mysqlbinlog的使用

二进制日志文件包含了修改数据库内容的信息,这些内容都是二进制的格式,要想按文本的方式显示,需要使用mysqlbinlog工具,可以查看中继日志的内容,他们的格式都是一样的,使用命令的方式如下: shell> mysqlbinlog [options] log_file ...对于基...

2017-06-21 13:01:50 341 0

转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。     现实企业级J...

2017-06-21 12:58:20 234 0

转载 JVM GC调优一则--增大Eden Space提高性能

目录(?)[+] 缘起 线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。 思路 思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优...

2017-06-21 12:56:58 537 0

转载 分布式事务(一)两阶段提交及JTA

分布式事务与本地事务一样,包含原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。两阶段提交是保证分布式事务中原子性的重要方法。本文重点介绍了两阶段提交的原理,PostgreSQL中两阶段提交接口,以及Java中两阶段提交接...

2017-06-06 15:33:57 353 0

转载 Kafka设计解析(一)- Kafka背景及架构介绍

本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比。并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不同消息分发方式,Topic & Partition,最后介绍了Kafka Consumer为何使用pull...

2017-06-06 15:32:50 328 0

转载 Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势

本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等。 原创文章,转载请务必将下面这段话置于文章开头处。 本文转发自技术世界...

2017-06-06 15:31:18 475 0

转载 Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请求的处理会导致整个流程的暂时等待,这些事件无法并发地执行。用户线程发起I/O请求后需要等待或者轮询内核I/O操作完成后才能继续执行。 异步I/O 多个请求可以并发地执行,一个请求或者任务的执行不...

2017-06-06 15:28:51 270 0

转载 Java进阶(四)线程间通信剖析

CountDownLatch CountDownLatch适用场景 Java多线程编程中经常会碰到这样一种场景——某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。比如开发一个并发测试工具时,主线程需要等到所有测试线程均执行完成再开始统计总共耗费的时间,此时可以通过C...

2017-06-06 15:20:48 182 0

转载 Java进阶(三)多线程开发关键技术

本文将介绍Java多线程开发必不可少的锁和同步机制,同时介绍sleep和wait等常用的暂停线程执行的方法,并详述synchronized的几种使用方式,以及Java中的重入锁(ReentrantLock)和读写锁(ReadWriteLock),之后结合实例分析了重入锁条件变量(Condition...

2017-06-06 15:14:56 405 0

转载 Java进阶(二)当我们说线程安全时,到底在说什么

提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后...

2017-06-06 15:08:27 271 0

转载 ConcurrentHashMap

ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,C...

2017-06-05 19:10:31 286 0

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