我正在使用pentaho data integration 7.1将一些本地文件复制到Hadoop2.8.0集群。我已经在pentaho上创建了一个hadoop集群连接,并且正在使用hadoop复制文件步骤。当我从gui(spoon.sh)执行作业时,我可以成功上载文件,我可以在日志上看到以下行: Hadoop Copy Files - Processing row source File/folder source : [file:///home/etl/Desktop/users_full_20170620.csv] ... destination file/folder : [hdfs://hadoop:***@spark-master.cu:9000/value_iq]... wildcard : [null]
但是当我尝试使用kitchen.sh运行相同的转换失败时,我得到了以下错误: Hadoop Copy Files - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : Folder file:///value_iq/bin/kettle/data-integration_7.1/hdfs:/hadoop:hadoop@spark-master.cu:9000/value_iq does not exist!
不知何故,它添加了kitchen.sh位于hdfs url前面的路径,假设destinations环境是本地的。
这是我的hadoop复制文件步骤的截图
已创建此错误的jira报告:http://jira.pentaho.com/browse/pdi-16443
2条答案
按热度按时间abithluo1#
据我所知,pdi需要一个不存在的文件。创造它!
要将pdi解决方案从dev移动到prod,请使文件引用相对。与其硬编码文件夹名称,不如按
Ctrl-space
,然后选择${Internal.Job.Filename.Directory}
它将在运行时被包含job/transfo的目录的名称替换,并且在您的dev机器和prod环境中是不同的。您可以在每次un之前手动设置这些名称:您将看到一个参数和变量列表,其中
{Internal.Job.Filename.Directory
您可以为这次跑步更改。您还可以(我建议您在开发过程的早期这样做)定义自己的变量。在顶部菜单中,
Edit the kettle.properties
,并添加my-dir
. 它将出现在Ctrl-space
以及run options
. cattle.properties存储在名为.kettle
,并且在您的开发机器和prod serer上是不同的。您很快就会知道如何在job和transfos中设置和更改这些变量
Get variables
以及Set variable
以自动加载循环。一些例子可以在sample
pdi发行版附带的目录。vsikbqxv2#
这是用户界面依赖性的问题。请提交jira案例http://jira.pentaho.com