自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苏苏爱自由

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

  • 博客(655)
  • 资源 (12)
  • 论坛 (2)
  • 问答 (4)
  • 收藏
  • 关注

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

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

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

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

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

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

原创 赫拉(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 2254 3

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

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

2019-01-04 15:21:26 2017

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

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

2018-12-29 11:30:09 2394

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

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

2018-12-22 11:25:00 4456

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

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

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

原创 深入剖析 Delta Lake: MySQL CDC 实战

前言在初建大数据平台时,我想大家都遇到过这样一个需求,mysql 的数据如何同步到 hdfs 中供数仓分析使用在早期,业务可能对实时性的要求还不高,大家的计算也都是 T+1 的离线计算,当然也可能有 H+1 的准实时计算。大家的选型可能是 sqoop、datax 等工具。此时只需要在离线调度平台上配置每天/每小时拉取 mysql 数据同步到 hive 的任务即可。但该方式也有一些弊端,如:实时性较差全量抽取、尤其是每小时一次的抽取对 mysql 的压力很大...

2020-11-06 17:45:12 142 1

原创 hera源码剖析:一次任务触发的执行流程

文章目录触发任务work端master端run方法在 hera 中,任务被触发的方式有多种,比如分析师在前端手动执行触发、定时任务触发、依赖任务触发、重跑任务触发、信号丢失的触发等等。但是不管是哪种触发方式最后的入口都是在 Master#run 方法(开发中心任务触发接口在 Master#debug )。这里就讲一下手动执行的任务触发流程触发任务在最新版本中,任务手动触发类型分为手动执行、手动恢复、超级恢复三种,具体区别就不再赘述,可以通过 hera 操作文档查看,这里以手动恢复为例当我们点

2020-09-30 17:30:02 85

原创 hera源码剖析:项目启动之分布式锁

文章目录前言获取当前机器ip分布式锁知识点总结master服务work服务work连接master前言本文章主要是为了让使用者能够更加了解 hera 的原理,并且能够在之基础上进行改进所进行。hera 是一款分布式任务调度与开发平台,具体不再描述,开源地址:https://github.com/scxwhite/hera获取当前机器ip在 hera 中,有一些静态代码块,这里只说一个很重要的部分,WorkContext 类中有这样一部分代码 static { host

2020-09-29 17:41:53 68

原创 深入剖析 Delta Lake: schema validation

介绍Delta Lake 是 Spark 的开源存储层,可提供 ACID 事务和其他数据管理功能,用于机器学习和其他大数据工作,其通过写和快照隔离之间的乐观并发控制,在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来可靠性。Delta Lake 内置数据版本控制,方便读取历史数据以及版本回滚。Spark 的每一个 DataFrame 都包含一个 schema,用来定义数据的形态,例如数据类型、列信息以及元数据。在 Delta Lake 中,表的 s

2020-09-11 15:56:47 107

原创 atlas 初体验

atlas是由apache开源的数据血缘解析平台 布拉布拉2020-08-27T06:11:21,978 ERROR [3cf21166-5613-4313-a607-d6b77d305de3 main] hook.HiveHook: HiveHook.run(): failed to proceoperation QUERYjava.lang.NoSuchMethodError: org.apache.hadoop.hive.metastore.api.Database.getCatalogName

2020-09-07 20:20:24 564 2

原创 spark sql 数据倾斜案例实操

最近数仓同学有个离线任务跑不动了,问题是总是出现MetadataFetchFailedException 的异常,最后导致任务被 kill。于是就帮忙解决一下。问题排查查看了下该任务的历史执行记录(如下图),其实最近几天一直在失败,只是在重试后偶尔会成功一下查看具体的报错日志,是shuffle 数据丢失导致的任务失败,已经询问过该同事,已经对该 spark sql 任务进行了多次调参,executor-memory 很大了任务也是同样的错误。AY.hera.spark.conf=--master

2020-08-18 21:02:17 429

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

文章目录前言问题排查前言最近我们的 EMR 集群要从 spark2.3.2 升级到 spark2.4.3 来解决 spark 小文件多的问题。但是在升级后发现之前 spark rdd 写 hbase 正常的任务报错了,花费一番功夫才解决,所以写篇文章记录下。首先看下报错内容CONSOLE# 20/06/09 14:26:48 ERROR Start: 同步数据异常CONSOLE# java.lang.NullPointerExceptionCONSOLE# at org.apache.

2020-06-10 15:35:32 165

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

随便说说:想必一些学习做网页的同学和我有同样的想法,把自己的项目发布到外网上,让别人也能看到。既然有了想法,那就不能想想而已,要努力去实现它。 在发布我们的java web项目时,我们使用http://localhost:8080或者http://127.0.0.1:8080在本地主机上访问我们的项目。如果想将其发布到外网,让别人也能看到,要用到地址映射工具(因为我们的电脑都使用的局域网,大部分都

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

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

最近公司在降成本,发现了欧州、美国区两个区每天存在 300$ 的跨区流量费用,经过运维同学定位后发现绝大部分流量在 emr 机器上。于是排查就开始了。前言首先附上我们的任务调度架构我们大数据计算使用的是 AWS 的 EMR(Elastic MapReduce) 集群,由于 AWS EMR 天然支持读写 S3,并且 S3 相比较硬盘尤其便宜,所以我们的离线数据都是存储在 S3。即:计算...

2020-04-22 20:05:51 234

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

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

2020-03-28 17:16:29 1709 5

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

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

2020-03-18 20:50:20 1595

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

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

2019-12-03 21:16:06 2059 11

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

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

2019-11-20 21:03:04 1237

原创 hdu2191

#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int main(){ int ncase,p[105],w[105],c[105],dp[105]; scanf("%d",&ncase); while(ncase--)...

2019-10-11 17:16:29 2040

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

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

2019-09-25 16:58:17 841

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

问题的发现今天执行一个shell脚本时发现报错了,报错内容如下:syntax error near unexpected token `('脚本内容排查了很多遍都没有找到原因,执行的方式为 sh xx.sh然后使用 source xx.sh 执行和 bash xx.sh执行都是 ok 的。知识的了解此时就需要了解 sh source bash 执行文件的区别。首先看两张图...

2019-06-11 19:51:27 47415 2

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

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

2019-04-10 19:59:02 583

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

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

2019-02-13 16:20:59 689

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

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

2019-01-24 19:49:55 337

原创 Dubbo 源码分析之线程池

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

2019-01-19 14:46:25 1307

原创 Dubbo 源码分析之 SPI 详解

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

2019-01-18 20:09:44 529

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

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

2019-01-14 11:15:10 1018

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

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

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

原创 spark streaming被压分析

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

2018-12-18 19:03:27 493

原创 解析一行gc日志

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

2018-12-18 11:12:28 216

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

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

2018-10-23 19:29:34 435

原创 关于Class.forName

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

2018-10-12 11:34:32 3030

原创 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 1473

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

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

2018-08-06 17:15:14 4228

原创 Java源码之ThreadLocal

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

2018-07-05 18:25:42 370

原创 ZTree自定义icon

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

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

原创 hbase实时优化思路

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

2018-06-07 20:02:39 2231

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

在学习Java的路上很早很早就接触了回调,比如:JFrame的键盘事件,JFrame控件的点击事件,线程池执行之前的方法beforeExecute与执行之后的方法 afterExecute,线程的Run方法其原理就是使用了回调。之前一直没有研究过其原理,在这里学习一下回调模式,也方便理解事件监听模式和观察者模式。回调模式 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传...

2018-05-14 14:46:53 3109

苏苏爱自由-java扫雷小游戏

参考文章:https://blog.csdn.net/su20145104009/article/details/52152514

2019-02-13

dubbo-admin-2.5.4

dubbo-admin-2.5.4dubbo-admin-2.5.4dubbo-admin-2.5.4dubbo-admin-2.5.4dubbo-admin-2.5.4

2017-12-18

锐捷破解版

锐捷客户端总是自动关闭VMware NAT Service 解决办法 破解版锐捷

2017-08-02

jquery-1.10.2.min.js

jquery-1.10.2.min.js

2017-04-01

eclipse\myeclipse字体插件

eclipse和myeclipse字体插件

2017-03-15

ftp server

FTP服务端

2017-03-06

ssh整合jar包

struts:2.3.15.3 hibernate : 3.6.10 spring: 3.2.0

2017-02-23

socketdemo

慕课网随堂练习代码

2016-12-30

Socket实例之客户端向服务端数据库上传文件UI版

2016-12-12

java版扫雷源代码+图片素材

java扫雷源代码+扫雷素材

2016-08-08

动态图片录制软件

勾选显示区域,然后选择区域,再点击开始就能开始录制,停止结束录制。最后保存就行,注意要修改一下gif图片的名称 否则无法保存的哦

2016-02-16

算法导论中文第二版

这本书全面论述了算法的内容,从一定深度上涵盖了算法的诸多方面,同时其讲授和分析方法又兼顾了各个层次读者的接受能力。各章内容自成体系,可作为独立单元学习。所有算法都用英文和伪码描述,使具备初步编程经验的人也可读懂。全书讲解通俗易懂,且不失深度和数学上的严谨性。第二版增加了新的章节,如算法作用、概率分析与随机算法、线性编程等,几乎对第一版的各个部分都作了大量修订。

2015-07-18

甄情的留言板

发表于 2020-01-02 最后回复 2020-04-16

BUG反馈

发表于 2015-10-24 最后回复 2015-10-24

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

TA关注的人 TA的粉丝

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