JAVA,hadoop,hdfs,hive,spring套餐,sql,nosql,websocket通信,netty框架,数据结构,jvm性能调优,http和https,git,svn,maven,shell命令
DataEx是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL,Oracle等),HDFS,Hive,ODPS,HBase,FTP等各种异构数据源之间稳定高效的数据同步功能。DataEx完成单个数据同步的作业,我们称之为Job,DataEx接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataEx Job模块是单个作业的中枢管理节点,承担了数据清理,子任务切分(将单一作业计算转化为多个子Task),TaskGroup管理等功能。DataExJob启动之后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataEx作业的最小单元,每一个Task都会负责一部分数据的同步工作。切分多个Task之后,DataEx Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。
每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。DataEx作业运行起来之后,Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则异常退出,进程退出值非0,
我在项目中主要负责EIP模块;
EIP模块:利用动态token调用数据源接口Read数据,将数据用并发线程池存入通道Channel,之后利用鉴权信息登录hadoop,先将数据从通道写入hdfs目录下的临时文件,待数据写完,将数据移至正式目录并删除临时目录,最后将数据存入Hive,每个数据源接口都支持插件式开发。
因公司机密,我参与该项目发的dataEx与阿里的datax工具大同小异,因此就参照dataEx来介绍。此为Hadoop+java+linux机器搭建的离线数据处理平台的工具。该项目将数据从各个数据源通过api以及动态token的方式用线程池并发处理解析json数据,将数据放入ar
该项目为ssm项目,通过前端点击事件触发增删改查事件将所需参数传入后端,后端通过参数进行业务逻辑处理,并调用mapper的sql命令给数据库,该项目我参与后台开发以及设计文档编写,项目部署linux机器测试上线