hadoop—在厨房执行作业时的不同行为

7xllpg7q  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(542)

我正在使用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

abithluo

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发行版附带的目录。

vsikbqxv

vsikbqxv2#

这是用户界面依赖性的问题。请提交jira案例http://jira.pentaho.com

相关问题