摘要: 前言 当我们在shell中执行topic删除命令的时候` kafka-topics --delete --topic xxxx --zookeeper xxx`,会显示,xxxx已经被标记为删除。然后过了很久你再查看topic列表,发现那个topic依然被标记删除,显然删除没有真正执行。下面就深入了 阅读全文
posted @ 2019-01-07 13:32 ulysses_you 阅读(8404) 评论(0) 推荐(0) 编辑
摘要: 前言 Spark作为计算引擎每天承载了大量的计算任务,为了监控集群的资源使用情况,对spark的监控也在所难免,Spark的监控有3个入口,1. Rest; 2.另一个是Metrics; 3. Log。 Rest 参考spark的rest接口文档 http://spark.apache.org/do 阅读全文
posted @ 2018-12-27 21:18 ulysses_you 阅读(1727) 评论(0) 推荐(0) 编辑
摘要: 前言 flink作为基于流的大数据计算引擎,可以说在大数据领域的红人,下面对flink-1.7的架构进行逻辑上的分析并和spark做了一些关键点的对比。 架构 如图1,flink架构分为3个部分,client,JobManager(简称jm)和TaskManager(简称tm)。client负责提交 阅读全文
posted @ 2018-12-17 16:53 ulysses_you 阅读(2886) 评论(0) 推荐(0) 编辑
摘要: 前言 区别于java设计模式,下面介绍的是在多线程场景下,如何设计出合理的思路。 不可变对象模式 场景 1. 对象的变化频率不高 每一次变化就是一次深拷贝,会影响cpu以及gc,如果频繁操作会影响性能 2. 作为hashmap的key key如果是可变的,那么会无法从hashmap中找到原来的数据 阅读全文
posted @ 2018-12-07 15:16 ulysses_you 阅读(1323) 评论(0) 推荐(0) 编辑
摘要: 前言 最近被大佬问到一个问题,hbase查询数据在最坏的场景下需要进行几次rpc,当时就懵了..下面主要对client端代码进行分析。阅读文章和看源码更配~ 读数据 流程总览 1. 从zookeeper中获取meta信息,并通过meta信息找到需要查找的table的startkey所在的region 阅读全文
posted @ 2018-12-05 19:34 ulysses_you 阅读(2186) 评论(0) 推荐(0) 编辑
摘要: 前言 一直以来,对java对象大小的概念停留在基础数据类型,比如byte占1字节,int占4字节,long占8字节等,但是一个对象包含的内存空间肯定不只有这些。 假设有类A和B,当new A()或者new B()后,实际占用的java内存是多大呢?下面就对此进行详细分析。 对象大小分析 如图1,ja 阅读全文
posted @ 2018-12-03 19:47 ulysses_you 阅读(19204) 评论(4) 推荐(2) 编辑
摘要: 虚拟cpu 虚拟的cpu代码并发数,如果一个container拥有2个vcpu,那么该container就可以真正的在同一时间运行两个线程,而不是靠切时间片而达到的逻辑并发。所以一般虚拟的cpu需要和物理cpu的个数保持一致 yarn的计算单元称为YCUs,其实就是把1个cpu分为n份,通常情况控制 阅读全文
posted @ 2018-11-28 13:23 ulysses_you 阅读(3873) 评论(0) 推荐(0) 编辑
摘要: 前言 本文通过对flume的架构,数据链路和数据的可靠性来分析flume的原理,并在文末提供了demo(官网搬运)。 架构 flume可以理解为是一个ETL工具,本身是单点的,也就是只有agent,没有server,但是通过强大的source-channel-sink-source…机制,可以通过在 阅读全文
posted @ 2018-11-01 11:52 ulysses_you 阅读(1430) 评论(0) 推荐(0) 编辑
摘要: 前言 IOC的全称是Inversion of Control,可以理解为控制反转,控制的是bean,反转的是bean的生命周期由使用者变为Spring框架。IOC是Spring的核心,使用者无需再手动创建对象,Spring定义出Bean容器的概念,负责管理对象的生命周期,下面结合代码对IOC核心流程 阅读全文
posted @ 2018-10-31 07:28 ulysses_you 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 前言 AOP全称是Aspect-Oriented Programming,对应到编程术语中就是面向切面的编程。简单来说就是执行一段代码之前以及之后分别插入另一段代码,从而实现对这段代码全方位监视。 术语 Jointpoint 连接点,抽象统一了method,constructor,field。比如最 阅读全文
posted @ 2018-10-29 20:38 ulysses_you 阅读(160) 评论(0) 推荐(0) 编辑