http://blog.csdn.net/zlm838687/article/details/74781522

hdata datax交流总结

今天和阿里云的同学就数据同步做了简要的交流,下面就交流的内容做一个总结

分片相关

  1. datax目前可以支持单机(standalone)和集群模式(cluster).目前开源的是单机版本。无论是单机版本还集群版本,分片都是通过datax进行。集群模式会把分片包装的taskGroup重新发给datax service, datax service会把新的taskGroup重新发给其他机器执行
  2. 根据算出的最大值、最小值和通道个数(相当于hdata的线程个数),可以计算出步长(step), 然后根据step,计算出各个分片的长度。
  3. datax split目前仅支持单一主键,且主键类型是int或者varchar类型
  4. 执行reader和writer最细力度的切分。需要注意到是,writer的切分结果要参照readre的结果,要达到切分后的结果数目相等,才能满足1:1的通道模型。所以这里可以将reader和writer的配置整合到一起。为了避免顺序给读写带来的长尾效应,将整合的结果shuffle掉。
  5. hbase的分片是通过region来实现的
  6. odps(他们的hadoop环境)是通过offset来实现的
  7. 分库分表直接在表的层面划分,各个表之间没有关系。我们交流的团队目前是没有使用canal增量同步数据的
  8. datax没有断点续传,分布式一个错,其他都错。datax如果某一个task失败会有重试,我们hdata目前还没有。后面hdata可以改进下,可以减少整个任务重试的成本。

流控

  1. datax的流控不会出现尖峰的情况。他们内部会把每次sleep的时间调整的很短。具体sleep的时间他们是根据当前流量,超出峰值的流量等因素,根据他们内部算法实现的。我们自己的hdata早前都是固定sleep一秒的, 所以会出现峰值的情况。
  2. 数据源的流控超过了就不再下发任务

开发平台相关

  1. 多租户,主账号和子账号,有多个角色(开发,运维,部署,方可,项目管理员),会有测试,预发等。
  2. SQL的补全是每个输入会有ajax请求到后端(odps上)做语法分析. odps会根据语法树找到和用户最匹配的sql

总结

我们做的好的地方

  1. datax目前的进度汇报是基于task级别的,但是task级别的进度不能真正反映整个job的进度。我们目前hdata是进程级别的。可以真正的看到这个任务total read write completedPercent的情况
  2. datax的限流虽然把sleep的间隔调整为毫秒级别,但是个人觉得还是会出现短暂的分值情况。我们目前的限流首先会在数据库级别做一下限流,降低数据库的压力,减少sql killer发送的频率。还有我们目前限流的算法采用类似tcp拥堵的滑动窗口算法,快速下降慢速恢复。可以将流量控制在一个平稳的数值范围内。

值的学习借鉴的地方

  1. hdata的分布式。大概想法是分片还是由hdata完成,然后hdata把分片的结果告诉调度,由调度进行二次分发到不同的hdata机器上进行执行
  2. hdata可以增加线程级别的重试。减少重跑出错任务的代价
  3. 当前hdata支持容忍错误的条数,不支持容忍错误百分比。后期需要把这个功能坐上。
  4. hdata的智能分析还不够强大。当前正在做。
  5. 数加的测试环境的数据都是读取线上的数据的,只不过写出的时候区分线上环境还是测试环境。我们后面做测试环境可以考虑下。

最新文章

  1. css3复杂选择器+内容生成+Css Hack
  2. php 总结第一篇(望大家补充!谢谢)
  3. NOIP2006金明的预算方案[DP 有依赖的背包问题]
  4. VS2013快捷键大全
  5. Hbase step by step 完全分布式安装
  6. 真实赛车3,SPEEDRUSH TV 第3季,第3阶段(第3天),直线加速赛
  7. ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
  8. Python 类 setattr、getattr、hasattr 的使用
  9. MySQL存储过程详解 mysql 存储过程
  10. 查询两个日期(时间)以内的数据,between and 或 and 连>= <=,to_date()
  11. Spring MVC返回对象JSON
  12. Audio Capture 录音
  13. AAM(Active Appearance Model)算法介绍
  14. 第9课_3_db库安装
  15. Flink资料(3)-- Flink一般架构和处理模型
  16. Python学习笔记整理总结【语言基础篇】
  17. Python 高级特性之:生成器(generator)和迭代器(Iterator)
  18. 关于PHP 缓冲区: ob_star , ob_get_contents
  19. swift--动画效果
  20. CodeForces 731D 80-th Level Archeology

热门文章

  1. 华中农业大学第四届程序设计大赛网络同步赛 J
  2. cpj-swagger分别整合struts2、spring mvc、servlet
  3. Fiddler配置代理hosts的方法
  4. [ CodeVS冲杯之路 ] P3116
  5. centos 7 编译mod_security
  6. MFC/C++/C中字符类型CString, int, string, char*之间的转换
  7. Xen虚拟化技术中PV和HVM的区别
  8. Charles安装
  9. FTP-Filezilla首次配置
  10. 纯HTML+CSS写出一颗会飘动的树,有没有惊艳到你呢?