有一个业务数据库,因为数据量比较大,所以只存储一个月内的数据,然而进行大数据分析等需要足够大的数据量,一个月的数据是远远不够的,所以就需要将业务数据库里的数据每天定时抽取到分析数据库,积累大量数据,也就是构建数据仓库,网上都说kettle好用,它的描述是:
Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,可以在Windows、Linux、Unix上运行,数据抽取高效稳定(数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
我想,这个工具应该是比较满足我需要的,遂安装之,但是centos8是新出的,安装过程各种出错,这里记录下来,分享给大家。
一。安装jdk
Kettle是纯Java编写的ETL开源工具,目前Kettle7和Kettle8都需要Java8或者以上才能正常运行。所以开始运行Kettle前先检查Java环境是否正确配置,Java版本是否是8或者以上。
java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
若是版本不对,则先查看安装的jdk
rpm -qa|grep java
删除
rpm -e ****
(自己代入)
rpm -e --nodeps ****
(强制删除)
找到合适jdk
yum list |grep jdk
安装之
yum -y install java-1.8.0-openjdk.x86_64
再输入
java -version
可以看到安装成功的版本。
二。kettle安装
点此进入kettle官网下载
绿色按钮是最新版,也可点击下载其他版本
国内源,相对较快,但没有最新版
它是一个压缩包,解压就行,我的是CentOS8,下载的是
pdi-ce-8.3.0.0-371.zip
下载后cd到文件所在目录:
unzip pdi-ce-8.3.0.0-371.zip
解压后
cd data-integration
ll *.sh
可以看到很多sh脚本文件
先
./kitchen.sh
看有没有报错,这里报了一个警告
#######################################################################
WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable
Consider installing the package with apt-get or yum.
e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
很多人说这个warning不解决也没事,但是我解决了
直接yum install webkitgtk
安装
报错提示:没有可用的包
需要先安装:
yum -y install epel-release
下载最新的nux-dextop-release rpm包,下载地址 ,找到这个包下载
下好后安装这个包
rpm -Uvh nux-dextop-release-0-5.el7.nux.noarch.rpm
继续
yum install webkitgtk
报错:
Nux.Ro RPMs for general desktop use 356 kB/s | 4.2 MB 00:12
錯誤:
問題: conflicting requests
- nothing provides libpng15.so.15()(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
- nothing provides libpng15.so.15(PNG15_0)(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
- nothing provides libwebp.so.4()(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
- nothing provides libicudata.so.50()(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
- nothing provides libicui18n.so.50()(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
- nothing provides libicuuc.so.50()(64bit) needed by webkitgtk-2.4.9-3.el7.nux.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
这里提示缺少这些依赖,在这个网站里搜索
RPM包下载
下载之后安装,上面有六个nothing,我只找到四个包,依次安装
rpm -ivh lib64png15-1.5.2-1-mdv2011.0.x86_64.rpm
rpm -ivh lib64webp4-0.3.1-2.mga4.x86_64.rpm
rpm -ivh libicu-50.2-3.el7.x86_64.rpm
rpm -ivh lib64icu50-50.1.2-1.1.mga3.x86_64.rpm
最后的rpm -ivh lib64icu50-50.1.2-1.1.mga3.x86_64.rpm
我这里报错硬是装不上,所以
rpm -ivh --nodeps lib64icu50-50.1.2-1.1.mga3.x86_64.rpm
强制安装。
再次
yum install webkitgtk
现在安装成功了
再次cd到data-integration
./kitchen.sh
[root@localhost data-integration]# ./kitchen.sh
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Options:
-rep = Repository name
-user = Repository username
-pass = Repository password
-job = The name of the job to launch
-dir = The directory (dont forget the leading /)
-file = The filename (Job XML) to launch
-level = The logging level (Basic, Detailed, Debug, Rowlevel, Error, Minimal, Nothing)
ok
说明安装完成
三。使用
在data-integration下
./spoon.h
就可以打开kettle了
第一次打开kettle后,我是英文界面,可以在工具里面改,工具-》选项(options)->language,选择Simplified Chinese就ok了
我这里第一次打开kettle修改语言时系统卡死了,重启电脑才好,所以安装的时候记得先备份文件什么的。
四。连接mysql数据库报错
这边连接数据库时发现
Error connecting to database: (using class org.gjt.mm.mysql.Driver) Communications link failure
biying之~发现是缺少数据库连接文件
于是mysql官网下载,我这边下载的是mysql-connector-java-5.1.48.zip(最新的在window下可以用,但是centos8下不能)要点击looking for,才能看到老版本
解压后里面有2个包
mysql-connector-java-5.1.48-bin.jar
mysql-connector-java-5.1.48.jar
mysql-connector-java-5.1.48-bin.jar放到data-integration下的Data Service JDBC Driver里
mysql-connector-java-5.1.48.jar放到data-integration下的lib里
重启,输入正确的账号秘密就能连接成功了
也是一样的,先把jdk安装好,环境变量安装好。
不过这边要下载windows版的
解压后将mysql-connector-java-8.0.18.jar放到data-integration下的Data Service JDBC Driver和lib里(两个文件夹都放)
点击data-integration下的spoon.bat就可以使用了
这边要注意一点,我的windows7 32位电脑可能内存不够了,所以带不动,会导致命令行一闪而过,这里可以编辑spoon.bat
只要修改一下spoon.bat里内存配置:
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms2058m" "-Xmx1024m" "-XX:MaxPermSize=256m"
改为
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"
就可以了
注意:
mysql数据连接包得根据你要连接的mysql版本来,我的mysql版本是
8.0.11,而且数据连接包分系统!连接oracle也需要下载对应的连接包
有问题留言评论,码字不易,点个赞让我知道我帮到你了:)