Azkaban
发表于|更新于
|浏览量:
坦诚是最明智的策略。——富兰克林
分享一个工作流框架
https://github.com/azkaban/azkaban
官方文档
Azkaban documentation! — Azkaban documentation
Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性的问题。我们的作业需要按顺序运行,从 ETL 作业到数据分析产品。
Features 特征
- 与任何版本的 Hadoop 兼容
- 易于使用的 Web UI
- 简单的 Web 和 http 工作流上传
- 项目工作区
- 工作流的调度
- 模块化和可插件化
- 身份验证和授权
- 跟踪用户操作
- 有关失败和成功的电子邮件警报
- SLA告警和自动杀伤
- 重试失败的作业
阿兹卡班的设计主要考虑了可用性。它已经在LinkedIn上运行了好几年,并驱动了他们的许多Hadoop和数据仓库流程。
相关推荐
2022-09-04
maven版本号插件
莫等闲,白了少年头,空悲切——岳飞 我们maven项目除了使用这种方式修改版本号,还有一种统一管理版本号的方式: 项目地址:https://github.com/mojohaus/flatten-maven-plugin 官方文档:http://www.mojohaus.org/flatten-maven-plugin/ 引入: 12345678910111213141516171819<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <!--<version>INSERT LATEST VERSION HERE</version>--> <executions> <execution> ...
2020-07-10
mybatis排序无效问题
今天在mybatis.xml里加了段排序,一开始发现排序不生效,debug发现参数确实传过去了,但并没有执行排序逻辑 最后发现。。。 12//这样写法是错误的,mybatis会给它加上引号ORDER BY #{cowBeer} 要更改成$ 12//也就是这样ORDER BY ${cowBeer} 这样会直接替换、拼接sql
2020-09-16
alibabaFastJson之json转指定List
有一种健忘是高贵的,就是不记旧恶。——赛蒙兹 之前写了篇fastjson基本使用,这两天遇到一个意料之外的 需要把一个json的数组对象,转换成指定的List<User> 转换方式很简单 {“code”:200,”userList”:[{“password”:”achao”,”username”:”ruben”}],”data”:”操作成功!”,”list”:[“你好”,”加油”],”success”:true} 1234JSONObject jsonObject = JSON.parseObject(jsonString);String userListString = jsonObject.getString("userList");List<User> userList = JSON.parseArray(userListString, User.class);userList.forEach(System.out::println); 打印结果
2020-11-03
使用@Select注解写<foreach>
智慧是宝石,如果用谦虚镶边,就会更加灿烂夺目。——高尔基 只需要加<sceipt>标签就可以了 1234567@Select({"<script>" + "select * from user where id in " + "<foreach item = 'id' index = 'index' collection = 'list' open='(' separator=',' close=')'>" + "#{id}" + "</foreach>" + "</script>"})List<User> selectU...
2022-12-16
获取泛型map工具类
一个人如果抛弃他忠实的朋友,就等于抛弃他最珍贵的声明。——索福克勒斯 代码如下: 1234567891011121314151617181920212223242526public static Map<String, Type> getGenericMap(Type paramType) { Type type = resolveType(paramType); if (type instanceof ParameterizedTypeImpl) { ParameterizedTypeImpl ty = (ParameterizedTypeImpl) type; final Class<?> rawType = ty.getRawType(); return Steam.of(rawType.getTypeParameters()).map(Type::getTypeName) .zip(Steam.of(ty.getActualTypeArgum...
2022-04-05
使用BiFunction更改map的value
伟大变为可笑只有一步,但再走一步,可笑又会变为伟大。——佩思 这个PR是这样的: map 通过传入的BiFunction实现来返回值为新的map,支持返回别的类型 123456789101112131415161718/** * 通过biFunction自定义一个规则,此规则将原Map中的元素转换成新的元素,生成新的Map返回<br> * 变更过程通过传入的 {@link BiFunction} 实现来返回一个值可以为不同类型的 {@link Map} * * @param map 原有的map * @param biFunction {@code lambda},参数包含{@code key},{@code value},返回值会作为新的{@code value} * @param <K> {@code key}的类型 * @param <V> {@...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog