datax分析与思考(一)
Datax
总体流程图
先看执行的第一个步骤:
在最上层抽象类,这个里面相当于获取全局公共信息,java入口部分就是这个Engine的main方法直接启动
Engine 启动
com.alibaba.datax.core.Engine#main直接启动
阿里这边有提供多级JSON配置信息无损存储
com.alibaba.datax.common.util.Configuration
但是平常的使用中很少有直接以json的格式操作,一般是转成对象bean,然后进行操作,
他在这边新写这个方法的目的主要在于对封闭的json进行处理,直接从key获取到value,但是我感觉还是可以直接转成bean的形式去获取比较方便.毕竟只有一个json的文件
直接main方法启动,在datax.py脚本中设置了锁需要的参数和json地址, 在启动的时候通过读取启动参数,获取到当前的启动配置文件.
这边阿里使用了
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.3.1</version>
</dependency>
这个包 ,然后使用
Options options = new Options();
options.addOption("job", true, "Job config.");
options.addOption("id", true, "Job unique id.");
options.addOption("mode", true, "Job runtime mode.");
DefaultParser parser = new DefaultParser();
CommandLine cl = parser.parse(options, args);
String job = cl.getOptionValue("job");
String id = cl.getOptionValue("id");
String mode = cl.getOptionValue("mode");
来根据参数的名字进行读取.这个地方平常很少有用到,可以记录下.
datax在执行的过程中打了很多的日志,有个打印vminfo的class我感觉可以在平常使用到,之前我也写过这种类似的,但是说效果不是很好,因为我之前是使用的脚本去查询的服务器上面的信息.
com.alibaba.datax.common.statistics.VMInfo#getVmInfo
这个类的话,在日志监控或者效率监控也可以使用到.
com.alibaba.datax.core.Engine#start 进入真正的执行方法
前面基本上都是在对性能参数的赋值,然后获取到了一个List<Configuration> taskConfigs
,将这个list转成了map,然后再循环中开多线程执行任务.
datax分析与思考(一)的更多相关文章
- 我对Padding Oracle Attack的分析和思考
道哥的<白帽子讲web安全>有一章提到Padding Oracle Attack的攻击方式,据说这货在2011年的Pwnie Rewards上还被评为"最具价值的服务器漏洞&qu ...
- Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考--------------蘑菇街技术博客
http://mogu.io/156-156 摘要 本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些 ...
- 关于 SSV-ID: 4474 POC的分析和思考
SSV-ID: 4474 SSV-AppDir: Discuz!漏洞 发布时间: 2008-11-21 (GMT+0800) URL:http://sebug.net/vuldb/ssvid-4474 ...
- Linux-某电商网站流量劫持案例分析与思考
[前言] 自腾讯与京东建立了战略合作关系之后,笔者网上购物就首选京东了.某天在家里访问京东首页的时候突然吃惊地发现浏览器突然跳到了第三方网站再回到京东,心里第一个反应就是中木马了. 竟然有这样的事,一 ...
- memcache redundancy机制分析及思考
设计和开发可以掌控客户端的分布式服务端程序是件幸事,可以把很多事情交给客户端来做,而且可以做的很优雅.角色决定命运,在互联网架构中,web server必须冲锋在前,注定要在多浏览器版本以及协议兼容性 ...
- WEB项目日志分析系统思考
一.为什么需要日志分析系统 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈 ...
- 【转】ConcurrentMap 分析和思考
预备知识:Java HashMap and HashSet 的实现机制 由预备知识可以知道hashmap 的存储结构为: (图像来自http://www.ibm.com/developerworks/ ...
- 关于MySQL集群架构优劣势与适用场景的分析与思考
http://blog.itpub.net/25723371/viewspace-1977389/
- DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
之前,在用ENode开发forum案例时,遇到了关于如何实现论坛帖子的回复的统计信息如何更新的问题.后来找到了自己认为比较合理的解决方案,分享给大家.也希望能和大家交流,擦出更多的火花. 论坛核心领域 ...
随机推荐
- HLOJ1361 Walking on the Grid II 矩阵快速幂
题目分析: 就当是一次记录吧,2013年绍兴市市赛的一题,重现赛当时我想递推可能是矩阵快速幂吧,但是这个递推公式真没推出来(赛后猛如虎系列),这题和第一题有联系又有区别,第一题的递推很简单,dp[i] ...
- log4j和slf4j的区别
之前在项目中用的日志记录器都是log4j的日志记录器,可是到了公司发现项目要求使用slf4j,于是想着研究一下slf4j的用法. 注意:每次引入Logger的时候注意引入的jar包,因为有Logger ...
- python面试题以及答案
目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...
- Unity检测面板旋转值超过180度成负数的离奇bug
问题描述: 无意中在检视面板上对游戏物体的tansform进行旋转,结果发现旋转超过180度成负数的离奇bug 解决方案: 创建个新的unity工程,进行如上操作,一切正常…… 怀疑问题根源是配置出现 ...
- 梅尔倒谱系数特征(Mel-frequency cepstral coefficients,MFCC)
引言 感知实验表明,人耳对于声音信号的感知聚焦于某一特定频率区域内,而非在整个频谱包络中. MFCC特征是应用非常广泛的语音特征. 语音的MFCC特征是基于人耳感知实验得到,将人耳当成特定的滤波器,只 ...
- Codeforces Round #606 (Div. 2) E - Two Fairs(DFS,反向思维)
- WebForm 打开默认页
原文:https://www.cnblogs.com/lionden/p/3728716.html <configuration> <system.webServer> < ...
- selenium--浏览器窗口截图
前戏 在进行web自动化的时候,只有一个报错信息是不行的,往往需要截图来帮助我们来快速的定位问题,试想一下,我们在一个弹框里添加一些数据,点击保存后,然后在操作元素,这时selenium报错,说找不到 ...
- vs工具类SQLhelper参考
参考 https://www.cnblogs.com/liyangLife/p/5036636.html
- 为什么mysql事务回滚后,自增ID依然自增
因为innodb的auto_increament的计数器记录的当前值是保存在存内 存中的,并不是存在于磁盘上,当mysqlserver处于运行的时候,这个计数值只会随着insert改增长,不会随着de ...