自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (4)
  • 收藏
  • 关注

原创 Kafka-connector-elasticsearch设计解析

今日抽时间,对Kafka-connector-elasticsearch的源码进行了简单研究,主要梳理其设计思路和关键设计点, 其主要时序图如下:主要设计点总结如下:(1)ElasticsearchSinkConnectorConfig类,容易可扩展配置参数,并可对参数的正确性进行效验。(2)高吞吐线程池设计,conenctor数据输入为kafka, 通过扩kafka partition可以提供吞吐量,可一味地扩patition,吞吐量提高有限,并且对整体topic的维护变得复杂。作...

2021-01-01 16:34:19 624

原创 linux系统监控工具。

1:物理机网络延迟 监控工具: paping , 用法:./paping x.x.x.x -p 22 通过22端口测试物理机的网络 ,续输出到一个文件。然后再搜索一下时延长的情况. /paping 127.0.0.1 --nocolor -p 22 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) }' > d.txt. 如果遇到很多物理机的扫描的情况, 可使用paping.pl脚本 , 将物理机的ip...

2021-04-30 11:25:05 251

原创 apache atlas sqoop hook 搭建问题汇总

1: sqoop 版本必须要大于1.4.7,atlas sqoop hook 才起作用,因为在1.4.7版本中增加了sqoop.job.data.publish.class接口,在1.4.6中执行不会报任务错误,通过修改源码重新添加必须日志来判断,并hook并没有加载进来。2: 按照官网配置好,之后,执行sqoop import --connect,--hive-import --verb...

2019-06-04 17:28:18 2560 3

原创 Apache atlas 在CDH集群下的搭建问题及措施

从apache atlas 下载指定版本的源码,通过查看源码,特别是hive/hbase bridge模块,发现其相关依赖为原生的hbase client客户端,直接编译源码,则无法在hbase同步元数据,并且上述模块存在缺少jar的情况。综合同步CDH5.7.1 hive和hbase经验,总结以下修改步骤: (1) import-hive.sh 和import-hbase.s...

2019-05-31 16:49:46 4187 5

原创 Junit5 以及与Spring boot整合

junit5 较junit4 有较多的特性加入,比如更方便的参数化测试,JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage。本人在测试junit5以及与spring boot整合的过程中总结以下常见问题: (1)项目非springboot 项目。 junit 5 maven 基础依赖如下: <dep...

2019-04-30 15:31:48 6336

原创 hbase 主备集群切换方法

hbase 提供了replication机制,实现在两个集群之间的双向同步功能,其基本原理是根据WAL日志进行同步,具体可参照https://hbase.apache.org/1.2/book.html#_cluster_replication, 在搭建主备同步hbase集群之后,很重要一点要正确的切换访问的hbase集群,而且对于客户端的访问来讲是无感知的,其解决方案如...

2019-04-03 14:42:26 3218

原创 druid compact task 和index task 任务比较

druid中提供了各种的ingest task ,其中包括了compact和index task ,以下对两种task的应用场景以及优缺点进行了比较 (1)compact task 合并指定interval之间的所有segments .语句如下: { "type": "compact", "id": <task_id>, ...

2019-03-19 10:51:41 1287

原创 《快手万亿级实时OLAP平台的建设与实践》总结

最近阅读了《快手万亿级实时OLAP平台的建设与实践》这篇博文,在公司内部也采用了druid作为实时OLAP的查询引擎,快手的在druid中的优化总结如下: (1)集群规模和效果(2)druid内部查询技术点 数据的预聚合、列式存储、bitmap索引,查询结果的中间缓存等。(3)快手使用和查询优化经验 1:资源隔离部署方案. ...

2019-03-18 11:08:01 1911

原创 hbase coprocessor 验证

hbase coprocessor 提供了并行计算能力,有效地减少了客户端的压力,充分利用分析式计算的优势。 测试目标:在插入表中的某个列族时,如果发现列族的中未含有相关列,则自送添加上。 (1)hbase创建表create 'uuidtest', {NAME =&gt; 'refrigerator', VERSIONS =&gt; 1}, {NAME...

2019-03-14 17:17:52 269

原创 phoenix安装在指南

首先需要根据phoenix官网download 下载相关的对应版本的tar包,如果hbase是通过CDH安装则选择4.14.0相关版本,并且经本人测试,4.14.0-cdh5.11.2版本可与CDH5.7.1版本兼容。 (1)解压缩4.14.0-cdh5.11.2.tar (2)配置环境变量 执行vim /etc/profile修改hbase...

2019-03-14 16:58:59 317

原创 hbase metric 监控项

通过jmx可访问hbase master 和 regionserver 的metric ,请求地址如下: hbase master: http://masterip:port/jmx hbase regionserver: http://regionserver:port/jmx梳理重要的metric指标如下:role beanname Item ...

2019-03-06 11:13:31 962

原创 druid emitter 监控模块

在druid的提供了Request Logging的日志记录功能,除此之外druid还提供了emiter模块,可将druid的各个组件(broker,middlemanage,overlord、coordinator、historical)的metric发送http接口或者文件中。 (1)首先enable emitter merics,配置如下: Property ...

2019-03-01 17:32:06 1491 2

原创 kafka-connect-hbase 写入性能调优

     在实践中需要将kafaka中的数据写入到hbase 中,采用了kafka-connect-hbase这个扩展插件,但经过性能测试,写入速度较低,平均在200条/s左右,无法满足线上8000万数据的实时写入,但采用hbase的压测工具测试写入速度可达10000条/s以上,故对kafka-connect-hbase进行了性能测试。思路如下,在kafka-connect-hbase的关键步骤中...

2019-02-18 19:13:16 1384

原创 kafka-connect-hbase 架构分析

       由于项目需将kafka的数据存储至hbase中,有幸了解了confluent 的kafka-connect-hbase 组件,官方提供了基础版本(https://github.com/mravi/kafka-connect-hbase),,而我采用了改进版nishutayal(https://github.com/nishutayal/kafka-connect-hbase),并对改...

2019-01-26 14:57:10 1645 1

原创 linux 系统下open-file文件数限制修改

由于druid的大查询会产生很多临时的中间文件,如/tmp/druid/druid-groupBy-27e88733-d1f1-4589-bf63-ef3a40d4d945_273009ff-02cd-4085-b9f6-e94c7931111c/02135564.tmp (Too many open files)",会造成查询中断,需修改相应的系统的open file限制,其中...

2019-01-15 14:05:30 11184

原创 kafka-connect-fs 二次开发总结

   kafka-connect-fs 项目是一个开源的fluent connecor,它可以从文件系统读取文件,并加载到kafka中。它支持以下特性    Several sort of File Systems (FS) to use. Dynamic and static URIs to ingest data from. Policies to define rules about...

2018-10-25 17:09:34 1021

原创 druid.io 去重计数

   在大数据分析中,对数据进行计数去重是比较常见的需求,而druid.io中提供了多种去重计数的aggregtions函数,对于这些去重的aggregtions也不尽相同。druid中提供的去重aggregation如下:   1、DataSketches aggregtions :    yahoo提供的分析包,此算法也是采用最大估计的算法,在数据摄入阶段(ingestion time...

2018-08-24 10:04:42 8183

原创 druid 实践与问题总结

druid 操作实践【1】druid删除datasource某个interval之间的数据,   (1)druid版本&lt;=0.10.0 版本,例如删除aaaa datasource 中intervals=[1970-01-01T00:00:00.000Z_2018-09-21T00:09:00.000Z]curl -X 'DELETE' "http://druid-a:808...

2018-08-10 15:41:48 2144

原创 druid kafka index service still waiting for hand off segments

    在向overlord提交kafka index service task之后,数据可实时接收,并且在druid segments中的目录下segments已生成落盘,并且coordinator已向metastore中注册segments信息,而在task 日志中,出现以下错误。   此时错误为:still waiting for hand off segments, 此错误会造成mid...

2018-08-07 16:55:51 1693

原创 fluentd Fliter plugin应用

一:   record_transformer Filter Plugin     在实际环境中,需要将fluentd接收到的数据项operation_time(UTC,格式如20180716120000)时间转为为其他时区(如UTC+9)的时间,根据其需求,可采用fluentd中的record_transformer Filter Plugin完成。fluentd conf文件如下:# buil...

2018-07-16 16:06:07 1085

原创 git 操作小记

    本人主要记录工作中常用的git 场景。(1)场景一:需要将开发所用git库代码提交至正式云上,开发git库上已经commit多次,而在云上需要统计代码量,所以在云上需新建最原始的代码,提交后,再将最新代码提交至云上。针对上述场景,需要首先fetch开发库git第一次commitid对应的代码,提交至云上之后,然后在fetch最新commitid代码,然后在提交至云上,这两次提交就可以统计出...

2018-07-04 15:55:31 354

原创 metabase 前端架构解析

   metabase前端采用的是基于react的开发框架,并未用到前端应用开发框架如dva,其主要结合react-router、redux-actions、react-router-redux、reselect等主要组件结合而成,个人感觉写法上还是比较的官方,可读性不是很强,需要对上述的插件具有良好理解才能读懂前端源码,另外metabase前端也未采用组件库如antd,完全自己开发的组件。一:前...

2018-07-04 10:45:17 3683 1

原创 druid supervisor创建和监控

    本人以实时读取kafka数据为例,展示supervisor的创建和监控,关于druid 对flatten json的解析可参照本人文章《Druid Flatten JSON解析》。    (1)提交任务     首先编写supervisor json文件,在json文件目录通过命令行向overlord节点提交任务 任务提交成功会返回supervior的id,表明任务创建成功,如果错误,可到...

2018-06-20 12:47:21 2282

原创 druid Configuration配置和启动

         在druid进行配置时,首先需要搞清楚druid的整体架构、节点等概念,这对于后续各节点配置有更好的作用,druid整体架构如下: (1)broker Nodes:对于Historical Nodes和Real-time Nodes来说作用是查询路由,所有的客户端请求都会发送到Broker Nodes中,该节点知道在zookeeper之上的segments信息,哪些segment...

2018-06-20 10:37:44 4578

原创 Druid Flatten JSON解析

     druid是支持Flatten JSON数据的实时解析的,需要编写flattenSpec的配置,以下Flatten JSON数据为例{"time":1529209115078,"product_type":"unknown","model":"Other","log_type":"timeon.behavior","api_no":&amp

2018-06-19 19:52:15 1780

原创 metabase 开发环境小记

【1】前端开发环境    metabase前端采用react等相关框架,前端开发搭建基于yarn的开发环境,在metabase的根目录下运行:yarn run build-hot即可启动。此命令支持前端代码的热更新,但由于前端的代码较多,热更新的速度较慢,所以对其webpack.config.js配置文件进行部分修改,以优化热更新编译速度:/* eslint-env node *//* esli...

2018-06-06 09:05:05 8807 6

原创 presto小记

【1】presto_cli安装和启动   假如创建/root/presto_client目录,作为presto_client的根目录。下载jdk至此目录。下载 presto-cli-0.100-executable.jar至此目录。相关依赖结构如下:             5.编写命令启动脚本presto_cli,相关截图如下:   6.在shell 脚本下运行: presto_cli  sch...

2018-06-05 17:34:31 1397

原创 legin windows下安装

【1】下载 leiningen-win-installer,从下面链接下载 leiningen-win-installer 1.0,双击安装。[http://leiningen-win-installer.djpowell.net/]【2】下载对应lein jar包 ,下载地址:https://github.com/technomancy/leiningen/releases【3】将下载的 lei...

2018-04-30 10:54:42 414

转载 Redis 学习路线

学习和使用 Redis 一般可以分为以下四个阶段:初学者入门进阶实战理解原理贡献和开发本文接下来将在四个小节里面分别对这四个阶段进行介绍。初学者入门如果你只是对 Redis 感兴趣, 又或者听别人说过一些关于 Redis 的介绍, 但是却并没有实际使用过 Redis , 那么你就处于 Redis 初学者这一阶段。Redis 初学者可以考虑使用《Redis入门指南(第

2016-07-02 10:20:13 2084

转载 The Little Redis Book

关于此书许可证《The Little Redis Book》是经由Attribution-NonCommercial 3.0 Unported license许可的,你不需要为此书付钱。你可以自由地对此书进行复制,分发,修改或者展示等操作。当然,你必须知道且认可这本书的作者是Karl Seguin,译者是赖立维,而且不应该将此书用于商业用途。关于这个许可证的详细描述

2016-06-28 17:23:42 645

转载 Redis作者谈Redis应用场景

毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景。1.取最新N个数据的操作比如典型

2016-06-28 17:19:47 364

原创 分布式调度框架TBSchedule源码解析

基于周大神《详解应对平台高并发的分布式调度框架TBSchedule》的阅读和对源码的解析,整体上对tbschedule设计思路有了更深刻的认识,希望与TBSchedule热爱者一起交流、讨论。要充分理解tbschedule设计思路,需重点理解zookeeper在此调度框架中的作用,zookeeper主要存储调度任务策略、调度任务类型和调度管理器配置信息,各分布式任务调度运行信息统一存储在zoo

2016-06-17 09:53:43 4959

转载 spring integration同步数据库数据

需求为:当客户已有系统的数据被同步到我方数据库后,若再有新数据,只同步新数据到我方数据库。解决:因为客户的业务表是不能变动的,我方在客户数据库中新建一状态表,记录哪些数据被更新过。当客户业务表有新数据插入时,用触发器将新数据id插入到状态表。 为方便实例:业务表pp,状态表status结构为:pp:CREATE TABLE `pp` ( 

2015-03-30 14:44:19 2353

转载 Spring Integration入门

为什么使用Spring IntegrationSpring Integration是Spring框架创建的又一个API,面向企业应用集成(EAI)。说到集成,并不缺“解决办法”:硬编码的Java客户端、其它ESB产品,还有消息队列等更加传统的应用集成技术。Spring Integration对以上各种解决方法都有所改进,改进的方式有时还颇具戏剧效果。Spring Integration非常轻量

2015-03-30 11:19:02 5027

转载 Spring Integration概述

Spring Integration概述1.1     背景Spring框架的一个重要主题是控制反转。从广义上来说,Spring处理其上下文中管理的组件的职责。只要组件减轻了职责,它们同时也被简化了。例如,依赖注入降低了定位和创建组件间依赖的耦合性。同样地,面向方面编程通过模块化可重复利用方面,将业务组件和通用的横切面关注点解耦。在这样的情况下,最终的结果是系统更容易测试,理解,维护和扩展

2015-03-30 10:36:12 718

转载 java StringTokenizer

StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean

2015-03-16 16:23:47 412

转载 static class 静态类(Java)

一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况

2015-03-16 16:04:42 430

翻译 ZooKeeper Quota's Guide

可通过quota设置某个节点的存储限额,在windows下CD到zookeeper根目录。然后运行       java -cp zookeeper-3.4.6.jar;lib/log4j-1.2.16.jar;lib/slf4j-api-1.6.1.jar;lib/slf4j-log4j12-1.6.1.jar;lib/jline-0.9.94.jar;conf org.apache.zoo

2015-03-16 14:16:36 898

原创 ZooKeeper Administrator's Guide

1、清理Zookeeper日志、镜像文件       默认配置下,Zookeeper不会清楚旧的日志、节点镜像文件,存在一种危险,随着日志文件大小的增长,Zookeeper所有节点状态数据镜像将写入文件系统,这个文件系统会取代之前的日志文件。      可采用一个定时任务,执行以下代码,将最近count个镜像文件保存,删除count数以前镜像文件,其中必须大于3. java -cp

2015-03-16 11:52:57 887

转载 ZooKeeper权限配置

最近使用Zookeeper作为配置管理服务,因为配置数据有很高的安全要求,需要有权限控制,也就是需要登录才能看到Zookeeper上面的数据。 Zookeeper对权限的控制是节点级别的,而且不继承,即对父节点设置权限,其子节点不继承父节点的权限。 为了满足某个节点的权限验证,需要用的类为ACL(org.apache.zookeeper.data),Id(org.apache.zook

2015-03-15 21:12:32 849

dojo enhancedGrid pagination 分页实现

利用dojo的enhancedGrid实现分页,利用静态数据加载和json文件方式分别加载,也利用XHR方式获取json文件数据生成grid,另外利用fetch实现分页的过滤、排序等功能。

2013-12-19

JMX与Spring 结合

1.JMX与SPRING 结合实例 2.标准MBean 与非标准MBean 注册 3.基于接口和注解的MBean 注册 4.发布通知,处理通知及配置

2013-11-14

Spring AOP 实现

基于Spring 注解的AOP实现,包括为aop通知传递参数

2013-11-08

DWR整合Spring MVC

DWR整合Spring MVC ,前端jsp文件调用后台java方法,适合DWR学习

2013-11-07

空空如也

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

TA关注的人

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