最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

OozieShellAction配置

来源:懂视网 责编:小采 时间:2020-11-09 13:23:15
文档

OozieShellAction配置

OozieShellAction配置:目录 1. Shell Action 2. Shell Action 日志 3. Shell Action 限制 1. Shell Action Shell action运行一个shell命令,需要配置的有job-tracker,name-node和一些必要的参数。 经过配置,在启动Shell Action之前可以创建或删除HDFS文件夹
推荐度:
导读OozieShellAction配置:目录 1. Shell Action 2. Shell Action 日志 3. Shell Action 限制 1. Shell Action Shell action运行一个shell命令,需要配置的有job-tracker,name-node和一些必要的参数。 经过配置,在启动Shell Action之前可以创建或删除HDFS文件夹

目录 1. Shell Action 2. Shell Action 日志 3. Shell Action 限制 1. Shell Action Shell action运行一个shell命令,需要配置的有job-tracker,name-node和一些必要的参数。 经过配置,在启动Shell Action之前可以创建或删除HDFS文件夹。 可以通过配置文件

目录

1. Shell Action

2. Shell Action 日志

3. Shell Action 限制

1. Shell Action

Shell action运行一个shell命令,需要配置的有job-tracker,name-node和一些必要的参数。

经过配置,在启动Shell Action之前可以创建或删除HDFS文件夹。

可以通过配置文件(通过job-xml元素)给定配置信息,或者是用内嵌的configuration元素进行配置。

可以在内嵌的configuration里面使用EL表达式,在configuration里面配置的信息会覆盖job-xml里面相同的值。

需要注意的是,Hadoop的mapred.job.tracker和fs.default.name属性不可以在内嵌的configuration里面配置。

跟hadoop的map-reduce jobs一样,可以添加附件到sqoop job里面。具体参见【http://archive.cloudera.com/cdh/3/oozie/WorkflowFunctionalSpec.html#a3.2.2.1_Adding_Files_and_Archives_for_the_Job】

shell任务的标准输出(STDOUT)在shell运行结束之后是可用的。这些信息可以被决策结点使用。如果shell job的输出被配置成可用的,那shell命令必须包含以下两个参数:

  • 输出的格式必须是合法的java属性文件。
  • 输出的大小不能超过2KB。
  • 语法:

     ...
     [JOB-TRACKER]
     [NAME-NODE]
     ...
     ...
     [SHELL SETTINGS FILE]
     [PROPERTY-NAME]
     [PROPERTY-VALUE]
     ...
     [SHELL-COMMAND]
     [ARG-VALUE]
     ...
     [ARG-VALUE]
     [VAR1=VALUE1]
     ...
     [VARN=VALUEN]
     [FILE-PATH]
     ...
     [FILE-PATH]
     ...
     ...
    

    prepare元素里面配置启动job前要删除或者创建的文件夹,文件夹路径必须是以hdfs://HOST:PORT开头。

    job-xml指定一个存在的配置文件。

    configuration里面配置传递给sqoop job的参数。

    exec元素包含要执行的shell命令的路径。可以给shell命令添加参数。

    argument元素指定要传递给shell脚本的参数。

    env-var包含传递给shell命令的环境变量。env-var只能包含一个环境变量和值。如果这个环境变量包含像$PATH一样的,那它必须写成PATH=$PATH:mypath。不能用${PATH},因为它将会被EL解析。

    capture-output元素指定用来捕获shell脚本的标准输出。可以通过String action:output(String node, String key)函数【EL函数】来获得输出。

    例子:

     ${jobTracker}
     ${nameNode}
     mapred.job.queue.name
     ${queueName}
     ${EXEC}
     A
     B
     ${EXEC}#${EXEC} 
     Script failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
    

    其中,job属性文件如下:

    oozie.wf.application.path=hdfs://localhost:8020/user/kamrul/workflows/script#Execute is expected to be in the Workflow directory.
    #Shell Script to run
    EXEC=script.sh
    #CPP executable. Executable should be binary compatible to the compute node OS.
    #EXEC=hello
    #Perl script
    #EXEC=script.pl
    jobTracker=localhost:8021
    nameNode=hdfs://localhost:8020
    queueName=default

    运行jar里面的java程序:

     ${jobTracker}
     ${nameNode}
     mapred.job.queue.name
     ${queueName}
     java
     -classpath
     ./${EXEC}:$CLASSPATH
     Hello
     ${EXEC}#${EXEC} 
     Script failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
    

    属性会复制指定的文件到运行该脚本的机器上。当提示找不到文件的时候,试试file

    对应的属性文件是:

    oozie.wf.application.path=hdfs://localhost:8020/user/kamrul/workflows/script#Hello.jar file is expected to be in the Workflow directory.
    EXEC=Hello.jar
    jobTracker=localhost:8021
    nameNode=hdfs://localhost:8020
    queueName=default

    2. Shell Action 日志

    shell action的stdout和stderr输出被重定向到运行该脚本的oozie执行器上的map-reduce任务的stdout。

    除了在Oozie的web网页上可以看到少部分日志,还可以在hadoop的job-tracker的网页上看到详细的日志信息。

    3. Shell Action 限制

    虽然Shell Action可以执行任意的shell命令,但是有以下几个限制:

    不支持交互命令。

    不能通过sudo来让不同用户执行命令。

    用户必须明确的上传所需要的第三方库。Oozie通过Hadoop的分布式缓冲来上传、打标签、使用。

    Shell命令会在任意一个hadoop 计算节点上运行,但是计算节点上默认安装的工具集可能会不一样。不过在所有的计算节点上,通常都装有大部分普通的unix工具。因此需要明确的很重要的一点是:Oozie只支持有被安装到计算节点上的命令或者通过分布式缓存上传的命令。也就是说,我们必须通过file上传我们要用到的文件。

    http://archive.cloudera.com/cdh/3/oozie/DG_ShellActionExtension.html

    转载请注明: 转载自http://jyd.me/

    本文链接地址: Oozie Shell Action 配置

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    OozieShellAction配置

    OozieShellAction配置:目录 1. Shell Action 2. Shell Action 日志 3. Shell Action 限制 1. Shell Action Shell action运行一个shell命令,需要配置的有job-tracker,name-node和一些必要的参数。 经过配置,在启动Shell Action之前可以创建或删除HDFS文件夹
    推荐度:
    标签: 设置 目录 配置
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top