离线数据接入(基于源码二次开发)

我要开发同款
向日葵的微笑mz2024年12月25日
212阅读

作品详情

开发背景 单个 Sqoop 任务只能接入单表或整库;我们要求全量数据接入,共 3000 多张表,Sqoop 单表接入弊端
是:大量的 Sqoop 脚本及其难配置、及其难维护,大量 sqoop 任务提交本地进程过多,yarn 任务并发
度问题,大量任务频繁启动、申请资源、销毁等问题
解决方案 基于 MapReduce 关系型数据库接入组件 DBDrivenInputFormat 源码二次开发,由单任务接入单表转变为
单任务接入整库
技术挑战 1.修改 DBDrivenInputFormat 源码
2.重构 getSplits,根据单表数据量大小规划整库的 split
3.制定通用的数据映射对象、切片对象、RecordReader 对象
4.实现一个 MapTask 导入单表数据或多个 MapTask 处理单表数据(单表数据过多大情况下),最终输出到
不同的 Hive 表目录
实现效果 替代 sqoop 单表单任务,11 台计算节点,176cores、242memory,每天接入增量数据 500g,3000 张表,
稳定运行于 40-60min,提高运行效率 6-8 倍
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论