• 等级
  • 1809196 访问
  • 626 原创
  • 18 转发
  • 458 排名
  • 514 评论
  • 953 获赞

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

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

2019-04-10 19:59:02

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

在mysql中有事务四大基本特性,隔离级别,锁类型,b+树等各种需要我们学习的知识,这里简单分享一下mysql中的锁。使用mysql数据库的都知道我们经常使用的数据库引擎有MyISAM和InnoDB。MyISAM默认表类型,它是基于传统的ISAM类型,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert时,M...

2019-02-13 16:20:59

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

文章目录前言往期目录hera2.2-beta版本任务编辑时支持修改任务类型任务组添加管理员bug修复修复centos7机器组监控不显示的bug对于只有一台work时,降低任务的分发频率,尽量避免crash修复任务重试时hostGroupId为空新增一键开启/关闭上游所有任务的接口修复任务异常退出时,退出码为0的情况修复脚本改变后,任务在未全量生成版本时,而执行脚本内容还是老脚本的情况work断线时...

2019-01-26 15:30:41

Dubbo 源码分析之服务降级

前言关于服务降级,相信很多小伙伴都听说过或者操作过。比如最近我们在12306上抢票回家,明明看到剩余的有票,可就是买不到,这就是很明显的一个(读)服务降级例子。再比如双十一时我们付款时偶尔出现付款失败,重新支付,也是(限流)服务降级的一种,也有许多其它降级的例子,大家可以自行搜索。具体来说就是:当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源...

2019-01-24 19:49:55

Dubbo 源码分析之线程池

文章目录前言Dubbo线程池分类Dubbo线程工厂线程池拒绝策略CachedThreadPoolFixedThreadPoolLimitedThreadPool前言相信学过netty的都知道,每一个ChannelHandler都是通过它的EventLoop(I/O线程)来处理传递给它的事件,所以至关重要的是不要阻塞这个线程,因为这会对整体的I/O产生负面的影响。Dubbo...

2019-01-19 14:46:25

Dubbo 源码分析之 SPI 详解

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

2019-01-18 20:09:44

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

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

2019-01-14 11:15:10

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

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

2019-01-09 10:59:46

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

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

2019-01-08 15:51:29

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

文章目录赫拉文章版本介绍版本的使用加入群聊赫拉文章赫拉(hera)分布式任务调度系统之架构,基本功能(一)赫拉(hera)分布式任务调度系统之项目启动(二)赫拉(hera)分布式任务调度系统之开发中心(三)版本介绍在hera系统中支持历史版本的数据重跑。每一个任务都会生成版本,版本时间根据cron表达式来产生。其中版本在脚本中没有使用内置变量时无用。版本号的生成规则为:yyyyMM...

2019-01-04 15:21:26

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

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

2018-12-29 11:30:09

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

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

2018-12-22 11:25:00

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

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

2018-12-20 17:14:38

spark streaming被压分析

在我们使用spark-streaming处理实时数据时,通常在Dstream端的rdd操作较为耗时,此刻的实时数据还在receiver端不断的store。由于数据的处理不及时,即ProcessingTime<blockInterval也就造成了数据的积压。此时就需要一种机制来解决receiver端store数据的“速率”。在sparkstreaming中就是被压(backpress...

2018-12-18 19:03:27

解析一行gc日志

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

2018-12-18 11:12:28

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

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

2018-10-23 19:29:34

关于Class.forName

前言相信大家在使用反射操作时多多少少能用到这个方法。如果你使用了mysql数据库并且使用了原生的数据库操作,你肯定有一段这样的代码Class.forName("com.mysql.jdbc.Driver");这段代码的意义就是生成一个代表com.mysql.jdbc.Driver类的java.lang.Class对象到内存中,作为方法区这个类的各种数据的入口,在执行初始化操作时调用该类静态代码...

2018-10-12 11:34:32

zookeeper数据恢复

刚刚在向hbase表写数据时发现一个神奇的现象:判断该表显示不存在,建表时发现显示表已存在。org.apache.hadoop.hbase.TableExistsException:cash_log:op_info查看hdfs文件发现该表数据不存在。查看zk显示该表meta信息存在。要做的就是在zk上使用rmr/hbase1/table/cash_log:op_in...

2018-09-05 16:21:01

hbase 单个regionserver中region过多 优化

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

2018-08-06 17:15:14

Java源码之ThreadLocal

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

2018-07-05 18:25:42

博客专家

甄情

关注
  • 计算机软件/数据开发
  • 中国 浙江省 杭州市
奖章
  • 专栏达人
  • 持之以恒