(二) 安装jre-6u23-linux-x64bin
将jre-6u23-linux-x64bin上传到linux服务器
1 在终端上,键入:
su
2 输入超级用户口令。
3 切换到所需的安装目录。类型:
cd <</strong>目录路径名>
例如,要在 /usr/java/ 目录中安装软件,请键入:
cd /usr/java/
关于超级用户访问权限的说明:要将 JRE 安装在系统级位置(例如 /usr/local),必须以超级用户身份登录,从而获得必要的权限。如果您不具有超级用户访问权限,请将 JRE 安装在您的主目录中,或者安装在您具有写入权限的子目录中。
4 将您下载的文件的权限更改为可执行。类型:
chmod a+x jre-6u23-linux-x64bin
5 启动安装过程。键入:
/ jre-6u23-linux-x64bin
此时将显示二进制许可协议。通读许可协议。按空格键显示下一页。读完许可协议后,输入 yes 继续安装(此步骤可能直接跳过)。
7 JRE 安装在其自身的目录中。在本例中,它将安装在 /usr/java/ jre160_23目录中。当安装完成时,您将看到Done(完成)字样。
(三) 配置java环境变量
1 命令行键入“cd /etc”进入etc目录
2 命令行键入“vi profile”打开profile文件
3 敲击键盘ctrl+F到文件末尾
4 在末尾处,即第一个~的地方,敲击键盘将以下内容输入到文件
JAVA_HOME=/usr/java/jre160_23
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=:$JAVA_HOME/lib/dtjar:$JAVA_HOME/lib/toolsjar
export JAVA_HOME
export PATH
export CLASSPATH
5 键盘敲击exc,命令行键入“:wq”,保存文件;
6 重新登录linux,在命令行键入“java”,如果出现帮助信息则表示配置成功。
然后,部署kettle
1 将pdi-ce-410-stablezip上传到linux服务器
2 使用unzip命令解压pdi-ce-410-stablezip
unzip pdi-ce-410-stablezip -d "/mnt/kettle"
3 赋予解压目录下sh文件的执行权力
chmod +x sh
4 进入解压目录,键入“/kitchensh”回车,如果有帮助信息则表示kettle环境部署成功
※(重点)接着,编写执行kettle任务的shell脚本
创建testsh,将以下内容复制粘贴到里面,然后键入“chmod +x /mnt/kettle/sh”,赋予testsh执行权限。
export JAVA_HOME=/usr/java/jre160_23
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=:$JAVA_HOME/lib/dtjar:$JAVA_HOME/lib/toolsjar
/mnt/kettle/data-integration/kitchensh -file=/mnt/kettle/testkjb > /mnt/kettle/displaytxt
说明:
前3行,设置java环境变量的语句必不可少,
因为crond是个守护进程,它不归属于任何用户,虽然之前以root身份配置了java的环境变量,但是crond一样找不到java命令,
所以,当crond执行kettle任务时,需要动态设置java环境变量,crond才能找到java命令。
最后,使用crontab命令添加定时任务
实验项目:使用kettle完成scott用户下的emp表数据抽取到hyl用户下emptest表
实验环境
*** 作系统:WIN7
数据库:Oracle11G R2 64 bit
KETTLE版本:version 322
开始实验:
1 查询scott用户下emp表的数据
\
2 hyl用户下创建实验表(emptest)
\
3 查询hyl用户下实验表(emptest)数据
\
4 配置kettle
点击“没有资源库”启动,之后添加数据库连接即可,如下图:
\
新建一个转换,如下图:
\
点击“表输入”,拖动到面板内,如下图:
\
同理,在输出项目中,选择“插入/更新”添加到面板内,如下图:
\
点击“表输入”图标,然后按住“SHIFT”,连接到“插入/更新”图标,如下图所示:
\
双击“表输入”图标,点击“新建”按钮,进入到如下配置界面,参考图下设置,完成数据库连接配置并进行测试,如下图所示:
\
完成“表输入”中数据库连接设置后,接下来按同样的方法对“插入/更新”图标下的数据库连接进行配置,参考配置如下:
\
完成,“表输入”和“插入/更新”的数据库连接配置后,双击“表输入”,进入如下界面,选择数据库连接为“scott”,也就是我们之前的数据源数据库,点击“获取SQL查询语句”,如下图所示:
\
选择我们要抽取的表,如下所示:
\
按提示点击“是”即可,如下图:
\
编写sql脚本,这里我们为使实验简单,源端和目标端的表结构是相同的,如下图所示:
\
双击“插入/更新”图标,对目标端进行配置,选择连接的目标端数据库hyl,点击“浏览”获取目标表,如下图所示:
\
然后点击“获取字段”,你就可以看到源端和目标端的对应关系。点击“获取更新字段”你就可以看到我们要更新的字段都有哪些,如下图所示:
\
运行前,需要先保存kettle项目,进行保存,如下图:
\
万事俱备,只需运行了,如下图所示:
\
完成抽取后,会提示完成,如下图所示:
\
5 hyl用户验证实验表抽取数据情况
\
至此,我们完成了将scott的emp表数据抽取到hyl用户下的emptest表中,完成实验。
看了一下时间,虽然很晚了,不过我也遇到了,跟你分享一下。我查了网上很多资料,相信你也看了,但问题还是没有解决。
最后无意之间把ojdbc14jar的包换成了ojdbc6jar,问题解决了。
具体原因不知道,没有深究这两个报的区别。你可以试试。就是不知道你的是不是这个问题。
如果 你的在设计 一个transformation,比如 表输出,主机名称栏不要用主机名,用IP地址 来代替。。因为在本地测试连接时,输主机名是可以的,2 肯定成立。也许能解决,哈哈。。。。另外参考:>
Method1、清空TRUNCATE *** 作在作业中执行(如果单SQL执行的话),转换中的部件都是并发执行的;
Method2、如果清空的表是表输出中对应的表,那么有个选项是裁剪表勾选上即可。
以上就是关于crontab定时执行kettle作业报错java.io.file parameter must be a directory,数据库连接用的jndi。全部的内容,包括:crontab定时执行kettle作业报错java.io.file parameter must be a directory,数据库连接用的jndi。、kettle boolean处理 从sql server抽取,加载到oracle上 报下面这个错,请问下怎么处理在线等、关于kettle4.4连ORACLE11建资源库报错求助等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)