【问题标题】:Different behavior in a job when execute it from the kitchen从厨房执行作业时的不同行为
【发布时间】:2017-07-06 16:43:23
【问题描述】:

我正在使用 Pentaho Data Integration 7.1 将一些本地文件复制到 Hadoop 2.8.0 集群。我在 Pentaho 上创建了一个 Hadoop 集群连接,并且正在使用 Hadoop Copy Files 步骤。当我从 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!

假设目的地环境是本地的,它以某种方式在 hdfs url 前面添加了 kitchen.sh 所在的路径。

这是我的 Hadoop 复制文件步骤的屏幕截图

已创建此错误的 JIRA 报告http://jira.pentaho.com/browse/PDI-16443

【问题讨论】:

    标签: hadoop hdfs pentaho-data-integration


    【解决方案1】:

    这是 UI 依赖的问题。请在http://jira.pentaho.com

    上提交 jira 案例

    【讨论】:

    • 似乎你首先尝试使用配置不正确的hadoop集群进行复制。所以请检查文件:///value_iq/bin/kettle/data-integration_7.1/下是否有名称为“hdfs:”的文件夹,如果存在删除它。
    【解决方案2】:

    据我所知,PDI 需要一个不存在的文件。创建它!

    要将 PDI 解决方案从 dev 转移到 prod,使文件引用相对。不要硬编码文件夹名称,而是按Ctrl-space,然后选择${Internal.Job.Filename.Directory},它将在运行时被包含您的作业/转换的目录的名称替换,并且在您的开发机器和您的生产环境中是不同的。

    您可以在每个 un 之前手动设置这些名称:您会看到一个参数和变量列表,其中{Internal.Job.Filename.Directory 可以在此运行中更改。

    您也可以(我建议您在开发过程的早期这样做)定义自己的变量。在顶部菜单中,Edit the kettle.properties,然后添加 my-dir。它将出现在Ctrl-spacerun options 上。 kettle.properties 存储在名为.kettle 的隐藏目录中,并且在您的开发机器和生产服务器上有所不同。

    您很快就会知道如何使用Get variablesSet variable 在job 和transfos 中设置和更改这些变量,以便使用循环自动加载。可以在 PDI 发行版附带的 sample 目录中找到一些示例。

    【讨论】:

    • 感谢您的回答,是的,我知道这些生产细节,但这里的问题不同,如您所见,kettle 正在向 Hadoop URL 添加本地路径(file:// /value_iq/bin/kettle/data-integration_7.1/hdfs:/hadoop:hadoop@spark-master.cu:9000/value_iq) 独立于本地系统,因为存在于远程集群中。并且不期望文件,因为错误与文件夹的目标有关。
    • 那么,我的回答是@Sedos
    • 我的建议与 [stackoverflow.com/users/1006572/sedos](Sedos), 将案例提交给 Jira。
    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多