自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苏苏爱自由

生如夏花之绚烂,死如秋叶之静美。

原创 赫拉(hera)分布式任务调度系统之操作文档

前言 最近发现我总是站在我的角度来使用hera,每个功能都很清楚,但是对于使用者,他们是不清楚的,所以提供一篇hera操作文档。有问题可以在下面回复 操作文档 登录、注册 在hera上登录和注册其实分为两个部分,即用户和用户组(如果使用的是hera2.4版本以下的没这个功能) 用户 用户的登录...

2019-10-31 21:10:05 2372 3

原创 赫拉(hera)分布式任务调度系统之版本发布功能页面

文章目录前言往期目录hera2.2-beta版本任务编辑时支持修改任务类型任务组添加管理员bug修复修复centos7机器组监控不显示的bug对于只有一台work时,降低任务的分发频率,尽量避免crash修复任务重试时hostGroupId为空新增一键开启/关闭上游所有任务的接口修复任务异常退出时...

2019-01-26 15:30:41 1463 4

原创 赫拉(hera)分布式任务调度系统之Q&A(五)

文章目录q:依赖任务的周期怎么填?q:新加的任务什么时候会加入调度q:想立刻加入调度怎么办q:资源文件怎么上传不成功q:开启/关闭/失效按钮的区别q:如何控制任务的并行数量q:任务执行会冲突吗q:什么是漏跑检测重试q:什么是任务信号丢失重试q:为什么任务无法关闭q:为什么任务无法开启q:`mast...

2019-01-08 15:51:29 1893 3

原创 赫拉(hera)分布式任务调度系统之版本(四)

文章目录赫拉文章版本介绍版本的使用加入群聊 赫拉文章 赫拉(hera)分布式任务调度系统之架构,基本功能(一) 赫拉(hera)分布式任务调度系统之项目启动(二) 赫拉(hera)分布式任务调度系统之开发中心(三) 版本介绍 在hera系统中支持历史版本的数据重跑。 每一个任务都会生成版本,版本时...

2019-01-04 15:21:26 1786 0

原创 赫拉(hera)分布式任务调度系统之开发中心(三)

简介 开发中心,顾名思义。我们进行开发的地方(当然我们也可以直接在调度中心加任务,建议任务首先在开发中心测试,通过之后再加到调度中心)。 目录介绍 如图所示,开发中心有两个文件夹。分别是个人文档、共享文档。这两个文件夹不允许删除。 个人文档 提供给账户登录者使用的,私人目录可以在这里创建,...

2018-12-29 11:30:09 2030 0

原创 赫拉(hera)分布式任务调度系统之项目启动(二)

创建表 克隆hera 暂时还未开源 后面补上。当使用git把hera克隆到本地之后,首先在hera/hera-admin/resources目录下找到hera.sql文件,在自己的数据库中新建这些必要的表,并插入初始化的数据。 克隆到本地后,即可使用maven的打包命令进行打包 mvn clea...

2018-12-22 11:25:00 3764 0

原创 赫拉(hera)分布式任务调度系统之架构,基本功能(一)

前言 在大数据平台,随着业务发展,每天承载着成千上万的ETL任务调度,这些任务集中在hive,shell脚本调度。怎么样让大量的ETL任务准确的完成调度而不出现问题,甚至在任务调度执行中出现错误的情况下,任务能够完成自我恢复甚至执行错误告警与完整的日志查询。hera任务调度系统就是在这种背景下衍生...

2018-12-20 17:14:38 7137 3

原创 记一次 spark rdd 写数据到 hbase 报 NPE 的问题排查
原力计划

文章目录前言问题排查 前言 最近我们的 EMR 集群要从 spark2.3.2 升级到 spark2.4.3 来解决 spark 小文件多的问题。但是在升级后发现之前 spark rdd 写 hbase 正常的任务报错了,花费一番功夫才解决,所以写篇文章记录下。 首先看下报错内容 CONSO...

2020-06-10 15:35:32 86 0

原创 使用Tomcat+腾讯云主机把你的项目发布到外网上

随便说说:想必一些学习做网页的同学和我有同样的想法,把自己的项目发布到外网上,让别人也能看到。既然有了想法,那就不能想想而已,要努力去实现它。 在发布我们的java web项目时,我们使用http://localhost:8080或者http://127.0.0.1:8080在本地主机上访问我们...

2020-05-08 14:06:05 18500 9

原创 记一次大数据跨区域流量排查及修复
原力计划

最近公司在降成本,发现了欧州、美国区两个区每天存在 300$ 的跨区流量费用,经过运维同学定位后发现绝大部分流量在 emr 机器上。于是排查就开始了。 前言 首先附上我们的任务调度架构 我们大数据计算使用的是 AWS 的 EMR(Elastic MapReduce) 集群,由于 AWS EM...

2020-04-22 20:05:51 168 0

原创 关于dubbo 占位符无法解析问题
原力计划

不知道大家有没有遇到过,你要开发一个新应用要使用 dubbo 、 apollo 等组件,在集成的过程中发现 dubbo 配置文件的占位符无法替换,wtf,配置明明和以前的项目一样,为啥就不行了。我前两天也遇到了这个问题,就一起来分析下。 文章目录简单配置介绍问题复现排查apollo排查Prope...

2020-03-28 17:16:29 786 3

原创 presto sql输入表、输入字段、limit、join操作解析

前言 一段时间没有写文章了,写下最近做的事情。目前我们这边有一个metabase 查询平台供运营、分析师、产品等人员使用,我们的查询都是使用 presto 引擎。并且我们的大数据组件都使用的是 emr 组件,并且涉及到中国、美西、美东、印度、欧洲、西欧等多个区域,表的权限管理就特别困难。所以就需...

2020-03-18 20:50:20 758 0

原创 Flink实战之StreamingFileSink如何写数据到其它HA的Hadoop集群

前言 我们公司使用的集群都是 EMR 集群,于是就分别创建了一个 flink 集群专门用户实时计算,一个 hadoop 集群专门用于 spark、hive 的离线计算。两个集群是完全隔离的。但是有一些实时数据的采集需求,需要把数据写入到我们做离线计算的集群,有人说我只需要在 StreamingFi...

2019-12-03 21:16:06 1359 8

原创 记一次JAVA使用ProcessBuilder执行Shell任务卡死问题分析

背景 最近由于某些原因需要把一些原本 location 在 oss (阿里云云对象存储)上的 hive 数据迁移到cosn(腾讯云对象存储)。目前一直在增量进行同步,在迁移之前需要进行数据的对比。至于对比的方法计划有两种,一种是对比 oss 和 cosn 对应文件下的文件所占磁盘空间大小,即使用 ...

2019-11-20 21:03:04 653 0

原创 hdu2191

#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int main() { int ncase,p[105],w[105],c[105],dp[10...

2019-10-11 17:16:29 1935 0

原创 hive访问不在同一集群的hbase表数据

最近有个需求,有一些数据会实时写入到 hbase,但是又需要在 hive 中计算这些数据,最后把结果同步到 mysql。如果对于 hbase 与hive 在同一个集群,是很简单的操作,直接在 hive 中创建一个 hbase 的外部映射表就好了。但是我这边有些不一致,我们这边 hbase 和 hi...

2019-09-25 16:58:17 550 0

原创 syntax error near unexpected token `(' 异常解决

问题的发现 今天执行一个shell脚本时发现报错了,报错内容如下: syntax error near unexpected token `(' 脚本内容排查了很多遍都没有找到原因,执行的方式为 sh xx.sh 然后使用 source xx.sh 执行和 bash xx.sh执行都...

2019-06-11 19:51:27 24025 1

原创 使用java在aliyun/aws创建E-MapReduce (emr)集群

背景 在上个公司,我的 hera 任务调度系统是运行在本地 cdh 机器上的,并没有使用 aws/aliyun 提供的 emr 服务。所以为了使 hera 能够兼容 emr,就需要使用 java 创建 emr 集群. 功能点 既然要创建集群,肯定也要有等待集群创建完成、销毁集群等操作。 所...

2019-04-10 19:59:02 471 0

原创 关于 mysql 的共享锁 排它锁以及锁的实现方式 行锁 间隙锁 Next-Key Lock

在 mysql 中有事务四大基本特性,隔离级别,锁类型,b+ 树等各种需要我们学习的知识,这里简单分享一下 mysql 中的锁。 使用 mysql 数据库的都知道我们经常使用的数据库引擎有 MyISAM 和 InnoDB。 MyISAM 默认表类型,它是基于传统的 ISAM 类型,它是存储记...

2019-02-13 16:20:59 542 0

原创 Dubbo 源码分析之服务降级

前言 关于服务降级,相信很多小伙伴都听说过或者操作过。比如最近我们在 12306 上抢票回家,明明看到剩余的有票,可就是买不到,这就是很明显的一个(读)服务降级例子。再比如双十一时我们付款时偶尔出现付款失败,重新支付,也是(限流)服务降级的一种,也有许多其它降级的例子,大家可以自行搜索。具体来说...

2019-01-24 19:49:55 286 0

原创 Dubbo 源码分析之线程池

文章目录前言Dubbo 线程池分类Dubbo 线程工厂线程池拒绝策略CachedThreadPoolFixedThreadPoolLimitedThreadPool 前言 相信学过 netty 的都知道,每一个 ChannelHandler 都是通过它的 EventLoop(I/O线程) 来处理...

2019-01-19 14:46:25 1060 0

原创 Dubbo 源码分析之 SPI 详解

我使用的是dubbo2.5.3的源码,有中文注释。为了更方便的学习,可以慢慢来,等这个版本掌握差不多了就可以看更高的版本了。 在Protocol接口的实现类中不存在@Adaptive注解的实现类,所以在使用 Protocol protocol = ExtensionLoader.getExtens...

2019-01-18 20:09:44 276 0

原创 Dubbo 源码分析之自定义线程池拒绝策略(使用 Java 程序 Dump 线程堆栈信息)

最近在看dubbo源码,真的学习了很多知识,记得上次看dubbo源码是在半年前了,看到dubbo自定义的spi就看不下去了,完全看不懂。上周又看了看,顿时茅塞顿开,有时间会分享出来。废话不多说,在dubbo内部有几种线程模型,都是使用java线程池实现的,任务被拒绝后会输出堆栈信息。我们可以看它...

2019-01-14 11:15:10 780 0

原创 Java设计模式(三)模板方法模式

模版方法:在抽象类中定义了一个模版方法,在模版方法中使用了一些该抽象类中定义的空方法,而这些空方法可以供子类实现。 我们在查看源码时经常能够看到在执行一些重要的方法时,往往调用了一些看似没有什么意义的空方法。其实这就是模版方法。 abstract class ThreadHolder { ...

2019-01-09 10:59:46 210 2

原创 spark streaming被压分析

在我们使用spark-streaming处理实时数据时,通常在Dstream端的rdd操作较为耗时,此刻的实时数据还在receiver端不断的store。由于数据的处理不及时,即Processing Time &amp;amp;lt; blockInterval也就造成了数据的积压。此时...

2018-12-18 19:03:27 367 0

原创 解析一行gc日志

线上某个项目 ,启动参数 -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/opt/logs/spring-boot/gc.log 在gc.log里面发现了这些gc信息 315201.296: [GC (Alloca...

2018-12-18 11:12:28 180 0

原创 Java引用类型:强引用,软引用,弱引用,虚引用

在Java中提供了4个级别的引用:强引用,软引用,弱引用,虚引用。在这4个引用级别中,只有强引用FinalReference类是包内可见,其他3中引用类型均为public,可以在应用程序中直接使用。 强引用 Java中的引用,有点像C++的指针,通过引用,可以对堆中的对象进行操作。 ...

2018-10-23 19:29:34 383 0

原创 关于Class.forName

前言 相信大家在使用反射操作时多多少少能用到这个方法。如果你使用了mysql数据库并且使用了原生的数据库操作,你肯定有一段这样的代码Class.forName("com.mysql.jdbc.Driver"); 这段代码的意义就是生成一个代表com.mysql.jdbc.Dri...

2018-10-12 11:34:32 2807 0

原创 zookeeper数据恢复

刚刚在向hbase表写数据时发现一个神奇的现象:判断该表显示不存在,建表时发现显示 表已存在。 org.apache.hadoop.hbase.TableExistsException: cash_log:op_info 查看hdfs文件发现该表数据不存在。 查看 zk显示该表 meta信息...

2018-09-05 16:21:01 1076 0

原创 hbase 单个regionserver中region过多 优化

问题 目前hbase 总是出现压缩队列和刷新队列过大的告警,导致数据的读写变慢。 首先说明一下目前集群的状况 regionServer数量:20 region 数量:6503 regionServer配置:-Xms10g -Xmx10g -Xmn3g 原因 找到一...

2018-08-06 17:15:14 3752 0

原创 Java源码之ThreadLocal

前言 很早之前就知道使用ThreadLocal解决多线程并发的问题,可是却一直知其然不知其所以然。这几天在github上看dubbo的提交记录时,无意中发现了前师兄提交的记录,其优化后的ThradLocal性能提高了几十倍(原理在最后我会说一下),最后发现这位师兄也是借鉴了netty的Fa...

2018-07-05 18:25:42 336 0

原创 ZTree自定义icon

在写一个界面,用到了ZTree插件。 我的目录分类有:大目录,小目录和文件。默认的ZTree并不满足我的需求,就需要一些定制化的开发。 增加变量 在jquery.ztree.core.js文件里有一个变量组,分别表示打开的文件夹,关闭的文件夹,文件。 _consts = { ...

2018-06-11 19:43:35 6453 5

原创 hbase实时优化思路

问题的提出 基于hbase的实时架构图如上图所示(也有其它基于TiDB的毫秒级别的实时,这里属于伪实时H+1)。 目前报表的H+1任务的数据都是通过读取binlog消息存入导hbase的。在对这些数据做计算需要在hive上,此时也就需要把数据从hbase导入hive中。最后通过一系列...

2018-06-07 20:02:39 2019 0

原创 Java设计模式(二)回调模式

在学习Java的路上很早很早就接触了回调,比如:JFrame的键盘事件,JFrame控件的点击事件,线程池执行之前的方法beforeExecute与执行之后的方法 afterExecute,线程的Run方法其原理就是使用了回调。之前一直没有研究过其原理,在这里学习一下回调模式,也方便理解事件监听模...

2018-05-14 14:46:53 2631 0

原创 Java设计模式(一)适配器模式

一天无意中在github上搜索,发现了在Java领域stars排名最多的一个项目:iluwatar/java-design-patterns 里面总结了许多在我们开发过程中会使用到的设计模式,以前虽然也学习过,可是总很快就忘,在这里打算再一个一个学习一下。 适配器模式 适配器,是为...

2018-05-14 10:22:30 277 0

原创 动态代理的简单实用

这两天在研读大众点评所采用的分布式任务调度系统,发现了许雪里的许多值得我学习的代码。其中让我印象最深的就是调度中心向执行器分发任务的代码,在执行器和调度中心之间的通信使用的是内置的jetty服务器(总感觉netty更好一点,毕竟是传输层)。 调度中心使用动态代理,在执行某服务的方法的过程中,通...

2018-02-06 14:20:45 342 0

原创 Failed opening .rdb for saving: Permission denied

关闭redis服务的时候出现了这个异常 Failed opening .rdb for saving: Permission denied [814] 20 Jan 11:46:24.764 # Error trying to save the DB, can't exit. ...

2018-01-20 13:59:38 5019 1

原创 线程池(ThreadPoolExecutor)源码分析之如何保证核心线程不被销毁的

今天看到了别人的一个代码,为了实现每小时重启一下MQ拉取消息,他使用的是Thread.sleep(1000*60*60)方法,然后重启MQ。我一看到就非常头疼啊。。为什么要使用这种方式而不使用java的线程池呢?于是我就问他,他说当时为了方便。大家都知道Thread.sleep期间是不会释放共享资...

2018-01-12 13:29:28 8580 8

原创 JAVA线程池ThreadPoolExecutor详解

摘要 线程池的工作原理 构造方法 存活时间keepAliveTime 存活的时间单位uunit 任务队列workQueue 线程工厂threadFactory 拒绝策略handler 任务执行的基本流程 向线程池提交任务 execute submit 关闭线程池 Executors框架 new...

2018-01-08 14:50:19 822 2

原创 MySQL的limit用法和分页查询的性能分析及优化

一、limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | `rows OFFSET offset ` (LIMIT ...

2017-12-20 10:16:44 10295 0

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