kettle oracle2hbase生产环境下的真实使用 (做到数据准实时采集)
来源:互联网 发布:识别脸型的软件 编辑:程序博客网 时间:2024/05/16 02:45
Kettle实现oracle到hbase的数据抽取
本文采用kettle最新版本:7.1 (安装:下载下来后,直接解压就可以)
cdh版本为5.11.0
一、 环境配置操作流程:
(1) 由于最新版本的插件kettle7.1只能支持cdh5.10,所以我们要更改kettle的shim插件,主要操作就是替换jar包,如图:
首先hadoop的jar包:
把client目录的hadoop后缀是cdh5.10的jar包全换掉,换成5.11的包,如下图,其它jar包不用管:
接下来换hbase的jar,同理,在pmr目录下吧后缀为cdh5.10全换掉,如图:
由于我只用到了hbase,所以只替换了hadoop和hbase的jar,如果有用到hive或其它组件,直接像上面方法一样,直接替换jar就可以
接下来,我们要替换hadoop和hbase的xml配置文件,直接把cdh集群的配置文件拽过来就可以了,如图:
路径如图,直接替换掉就可以。
接下来修改config.properties,添加最下面一行,如图:
最后由于我们要连mysql,oracle所以要引入相应的jdbc驱动包:
路径:
jar包:
到这里,kettle基本配置完成。
二、 测试:oracle2hbase
./spoon.sh ,启动kettle client,我们测试oracle2hbase:
(1) 首先我们要从左边插件栏拖出一个表输入和一个
hbase输出,由于数据抽取过程中间可能会有字段格式转换,我们再脱出一个字段选择的插件,如图:
备注:
插件选择如图片左边标记部分,传输过程如图片右边流程图,用到那些组件直接拖过去就可以
(2) 各组件属性设置如下:
1、 表输入
双击表输入,出现如下配置框:
首先我们要新建一个数据库连接,点数据库连接新建,弹出如下可选框:
备注:
根据可选框提示,配置可选项,测试,保存!如果测试通过,如下图结果:
数据库连接配置成功后,写入sql抽取逻辑,点击预览,保存,到这里表输入这个步骤就完成了
2、 hbase output
双击插件如下图:
先配置Hadoop cluster连接:
只连hbase只配zookeeper连接就可以就可以,然后点击测试,出现如下如结果,证明连通:
连通后配置字段映射:
配置流程:(按上图1、2、3、4、5流程)
配置完成,在配置页选择配置完成的mapping,如下图:
配置完成,保存退出,点击启动,测试整个转换作业,如下图:
备注:出现如图结果,整个转换都是对号,且没有抛出error,证明成功
三、 linux开发环境无client情况下配置kettle作业
1、在本地client下配置ktr/kjb作业,保存成相应的ktr/kjb配置文
件,如下图
2、 将该文件上传到环境
3、命令行调用kettle作业
常用kettle job 调度启动程序,主要分两种,如下图:
备注:(windows:bat,linux:sh)
kettle作业主分两种:trasform、job(转换和job的区别不做赘述,在使用中大家可灵活变通),它们的命令行执行器也分为两种:
kitchen:工作(job)执行器 (命令行方式),后缀为.kjb的作业由它执行
Pan:转换(trasform)执行器 (命令行方式) ,后缀为.kt r的作业由它执行
两种执行器的使用,例:
./kitchen.sh -file=/opt/shell/crm/job_detail/crm.kjb >/opt/data-integration/job/log/crm.log
./pan.sh -file=/etc/tracy/kettle/vip_test.ktr > /etc/tracy/kettle/vip_test.log
如果要配定时任务,直接将命令加入crontab就行。
在linux环境下测试我们先前的vip_test.ktr任务:
执行完成,直接看log文件:
如图,证明执行成功
如果遇到如下报错:
缓存问题,每次启动前清一下/opt/data-integration/system/karaf/caches这个路径下的缓存就ok,也可以像我一样直接把清缓存的命令写入pan.sh启动脚本,这样就不用每次手动去清理了:
至此,一个基本的数据采集任务就完成了。
目的:由于项目需要,我们需要从业务系统oracle做准实时切高频率的数据采集到hbase,没5分钟一次,用sqoop抽,压力很大,切效果不好速度慢 ,所以这里选择用kettle
ketlle的优势:本身有利于大数据体系架构之外,sqoop的资源分配要由yarn管理,集群任务多要排队,按部就班,很耗时间,但是kettle不需要,并且kettle在处理小数据量的实时采集方面效率显得更优秀,速度更快,我们实时增量数据量不大的情况下,完全可以用kettle,且速度更快
kettle缺点:大数据量的数据采集显的力不从心,所以数据初始化还是要用sqoop这种工具,增量用kettle
- kettle oracle2hbase生产环境下的真实使用 (做到数据准实时采集)
- windows环境使用kettle进行数据采集及入库
- ORACLE_IMPDP_EXPDP生产环境数据泵的使用
- 基于kettle的数据采集平台
- 使用多线程实现数据实时采集
- 生产环境下的大数据组件版本升级
- Linux服务器使用kettle进行数据采集及入库
- S9T9对于实时采集数据的项目
- 实时采集数据的动态曲线控件
- kettle linux 下的使用
- 真实工作环境下使用Git提交代码的流程
- andrioid实时数据采集
- Flume实时采集数据
- linux下kettle环境的搭建
- linux系统下 数据采集环境配置
- VC++连接FANUC机床实时数据采集使用FOCAS4.0版本的开发库
- 查看生产环境的内存数据
- 提高Liferay生产环境下的性能
- 快讯 | 建筑行业大数据应用前景与趋势论坛成功举办
- 报名 | 智慧数据云平台与新型城镇化智库论坛
- 具备这些思维,你才算入了大数据分析的门!
- pycharm激活
- SSIS 日志管理系统 精简版
- kettle oracle2hbase生产环境下的真实使用 (做到数据准实时采集)
- 景驰无人驾驶 1024 编程邀请赛 A 热爱工作的蒜蒜 dijstra
- Mask R-CNN
- Laravel配置nginx环境
- WebStorm开发工具设置React Native代码智能提醒
- Android Studio Plugin -VarTrans(中文转变量插件)
- 从头开始实现神经网络:入门
- 会贤IT电脑资产管理系统解决方案
- 利用客服消息和模板消息实现微信群发(突破群发接口的上限)