crontab定时执行kettle作业报错java.io.file parameter must be a directory,数据库连接用的jndi。

crontab定时执行kettle作业报错java.io.file parameter must be a directory,数据库连接用的jndi。,第1张

(二) 安装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建资源库报错求助等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9751802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存