小编ArB*_*ArB的帖子

OOZIE:在global.xml中引用的文件中定义的属性在workflow.xml中不可见

我是hadoop的新手,现在我只用一个sqoop动作来测试简单的工作流程.如果我使用普通值 - 而不是全局属性,它可以工作.

但是,我的目标是job-xml在全局部分的tag中引用的文件中定义一些全局属性.

经过长时间的斗争和阅读许多文章,我仍然无法使其工作.我怀疑一些简单的事情是错误的,因为我发现文章暗示这个功能正常.

希望你能给我一个提示.

简而言之:

  1. 我有属性dbserver,dbuserdbpassword在中定义/user/dm/conf/environment.xml
  2. 这些属性在我的引用 /user/dm/jobs/sqoop-test/workflow.xml
  3. 在运行时,我收到一个EL_ERROR说法,即dbserver变量无法解析

这是详细信息:

我正在使用单节点上安装的Cloudera 5.7.1发行版.

environment.xml文件已上传到hdfs到/user/dm/conf文件夹中.这是内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
            <property>
               <name>dbserver</name>
               <value>someserver</value>
            </property>
            <property>
               <name>dbuser</name>
               <value>someuser</value>
            </property>
            <property>
               <name>dbpassword</name>
               <value>somepassword</value>
            </property>    
</configuration>
Run Code Online (Sandbox Code Playgroud)

workflow.xml文件已上传到/user/dm/jobs/sqoop-test-job.这是内容:

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.4" name="sqoop-test">
    <global>
        <job-xml>/user/dm/conf/env.xml</job-xml>
    </global>
    <start to="get-data"/>
    <action name="get-data">
        <sqoop xmlns="uri:oozie:sqoop-action:0.3">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>       
            <prepare>
                <delete path="${outputRootPath}"/>
            </prepare>
            <arg>import</arg>
            <arg>--connect</arg>
            <arg>jdbc:sqlserver://${dbserver};user=${dbuser};password=${dbpassword}</arg>
            <arg>--query</arg>
            <arg>select col1 from …
Run Code Online (Sandbox Code Playgroud)

hadoop sqoop oozie

3
推荐指数
1
解决办法
2386
查看次数

标签 统计

hadoop ×1

oozie ×1

sqoop ×1