oozie 客户端常用命令

Oozie工作流操作指南
本文档详细介绍了Apache Oozie工作流引擎的各种操作命令,包括提交、执行、挂起、杀死作业等,并提供了使用这些命令的具体示例。此外还涵盖了如何验证XML文件、提交Pig和MapReduce作业等内容。

1.提交作业,作业进入PREP状态 
oozie job -oozie 
http://localhost:11000/oozie -config job.properties -submit 
job: 14-20090525161321-oozie-joe


2.执行已提交的作业

oozie job -oozie

http://localhost:11000/oozie -start 14-20090525161321-oozie-joe 

 

3.直接运行作业 
oozie job -oozie 
http://localhost:11000/oozie -config job.properties -run 

 

4.挂起作业,挂起前状态(RUNNING , RUNNIINGWITHERROR or PREP状态) 
workflow job will be in SUSPENDED status. 

 

5.杀死作业 
oozie job -oozie 
http://localhost:11000/oozie -kill 14-20090525161321-oozie-joe 

 

6.改变作业参数,不能修改killed状态的作业 
oozie job -oozie 
http://localhost:11000/oozie -change 14-20090525161321-oozie-joe -value endtime=2011-12-01T05:00Z;concurrency=100;2011-10-01T05:00Z 

7.重新运行作业 
oozie job -oozie 
http://localhost:11000/oozie -config job.properties -rerun 14-20090525161321-oozie-joe 
000000-130817230824019-oozie-ceny-W 
Rerunning a Coordinator Action or Multiple Actions 
$oozie job -rerun <coord_Job_id> [-nocleanup] [-refresh] 
[-action 1, 3-4, 7-40] (-action or -date is required to rerun.) 
[-date 2009-01-01T01:00Z::2009-05-31T23:59Z, 2009-11-10T01:00Z, 2009-12-31T22:00Z] 
Rerunning a Bundle Job 
oozie job -rerun <bundle_Job_id> [-nocleanup] [-refresh] 
[-coordinator c1, c3, c4] (-coordinator or -date is required to rerun.) 
[-date 2009-01-01T01:00Z::2009-05-31T23:59Z, 2009-11-10T01:00Z, 2009-12-31T22:00Z] 
(if neither -coordinator nor -date is given, the exception will be thrown.)

 

8.检查作业状态 
oozie job -oozie 
http://localhost:11000/oozie -info 14-20090525161321-oozie-joe

oozie job -oozie http://localhost:11000/oozie -info 0000001-111219170928042-oozie-para-W@mr-node -verbose 

 

9.查看日志 
oozie job -oozie 
http://localhost:11000/oozie -log 14-20090525161321-oozie-joe 
oozie job -log <coord_job_id> [-action 1, 3-4, 7-40] (-action is optional.)

 

10.检查xml文件是否合规 
oozie validate myApp/workflow.xml

 

11.提交pig作业 
oozie pig -oozie 
http://localhost:11000/oozie -file pigScriptFile -config job.properties -X -param_file params

 

12.提交MR作业 
oozie mapreduce -oozie 
http://localhost:11000/oozie -config job.properties

 

 

usage: 
      the env variable 'OOZIE_URL' is used as default value for the '-oozie' option 
      the env variable 'OOZIE_TIMEZONE' is used as default value for the '-timezone' option 
      custom headers for Oozie web services can be specified using '-Dheader:NAME=VALUE'      oozie help : display usage 

      oozie version : show client version 

      oozie job <OPTIONS> : job operations 
                -action <arg>         coordinator rerun on action ids (requires -rerun); coordinator log retrieval on action ids (requires -log) 
                -auth <arg>           select authentication type [SIMPLE|KERBEROS] 
                -change <arg>         change a coordinator/bundle job 
                -config <arg>         job configuration file '.xml' or '.properties' 
                -D <property=value>   set/override value for given property 
                -date <arg>           coordinator/bundle rerun on action dates (requires -rerun) 
                -definition <arg>     job definition 
                -doas <arg>           doAs user, impersonates as the specified user 
                -dryrun               Dryrun a workflow (since 3.3.2) or coordinator (since 2.0) job without actually executing it 
                -info <arg>           info of a job 
                -kill <arg>           kill a job 
                -len <arg>            number of actions (default TOTAL ACTIONS, requires -info) 
                -localtime            use local time (same as passing your time zone to -timezone). 
                                      Overrides -timezone option 
                -log <arg>            job log 
                -nocleanup            do not clean up output-events of the coordinator rerun actions 
                                      (requires -rerun) 
                -offset <arg>         job info offset of actions (default '1', requires -info) 
                -oozie <arg>          Oozie URL 
                -refresh              re-materialize the coordinator rerun actions (requires -rerun) 
                -rerun <arg>          rerun a job  (coordinator requires -action or -date; bundle requires -coordinator or -date) 
                -resume <arg>         resume a job 
                -run                  run a job 
                -start <arg>          start a job 
                -submit               submit a job 
                -suspend <arg>        suspend a job 
                -timezone <arg>       use time zone with the specified ID (default GMT). 
                                      See 'oozie info -timezones' for a list 
                -value <arg>          new endtime/concurrency/pausetime value for changing a 
                                      coordinator job; new pausetime value for changing a bundle job 
                -verbose              verbose mode 

      oozie jobs <OPTIONS> : jobs status 
                 -auth <arg>          select authentication type [SIMPLE|KERBEROS] 
                 -doas <arg>          doAs user, impersonates as the specified user. 
                 -filter <arg>        user=<U>;name=<N>;group=<G>;status=<S>;... 
                 -jobtype <arg>       job type ('Supported in Oozie-2.0 or later versions ONLY - coordinator' or 'wf' (default)) 
                 -len <arg>           number of jobs (default '100') 
                 -localtime           use local time (same as passing your time zone to -timezone). Overrides -timezone option 
                 -offset <arg>        jobs offset (default '1') 
                 -oozie <arg>         Oozie URL 
                 -timezone <arg>      use time zone with the specified ID (default GMT). See 'oozie info -timezones' for a list 
                 -verbose             verbose mode 

      oozie admin <OPTIONS> : admin operations 
                  -auth <arg>         select authentication type [SIMPLE|KERBEROS] 
                  -doas <arg>         doAs user, impersonates as the specified user. 
                  -oozie <arg>        Oozie URL 
                  -queuedump          show Oozie server queue elements 
                  -status             show the current system status 
                  -systemmode <arg>   Supported in Oozie-2.0 or later versions ONLY. Change oozie 
                                      system mode [NORMAL|NOWEBSERVICE|SAFEMODE] 
                  -version            show Oozie server build version 

      oozie validate <ARGS> : validate a workflow XML file 

      oozie sla <OPTIONS> : sla operations (Supported in Oozie-2.0 or later) 
                -auth <arg>           select authentication type [SIMPLE|KERBEROS] 
                -len <arg>            number of results (default '100', max limited by oozie server setting which defaults to '1000') 
                -offset <arg>         start offset (default '0') 
                -oozie <arg>          Oozie URL 
                -filter <arg>         jobid=<JobID/ActionID>\;appname=<Application Name> 

      oozie pig <OPTIONS> -X <ARGS> : submit a pig job, everything after '-X' are pass-through parameters to pig 
                -auth <arg>           select authentication type [SIMPLE|KERBEROS] 
                -doas <arg>           doAs user, impersonates as the specified user. 
                -config <arg>         job configuration file '.properties' 
                -D <property=value>   set/override value for given property 
                -file <arg>           Pig script 
                -oozie <arg>          Oozie URL 

      oozie info <OPTIONS> : get more detailed info about specific topics 
                -timezones   display a list of available time zones

<think>我们正在处理用户的新问题:“我想查找oozie客户端使用ad域名用户的配置方法”。根据之前的对话历史,用户已经询问过关于Kerberos认证和keytab的相关问题,现在他们希望配置Oozie客户端使用AD(Active Directory)域用户。 回顾之前的引用: 引用[4]提到Oozie客户端在使用Kerberos身份验证时遇到的错误:“无法进行身份验证,GSSException:未提供有效凭据(机制级别:无法找到任何Kerberos tgt)”。这提示我们需要正确配置Kerberos客户端以使用AD域用户。 此外,用户之前的问题中我们详细解释了`oozie.authentication.kerberos.keytab`参数,这是服务端配置。现在用户询问的是客户端配置,即如何让Oozie客户端(提交作业的用户)使用AD域用户进行认证。 因此,我们需要指导用户如何配置Oozie客户端以使用AD域用户。这通常涉及以下步骤: 1. 客户端机器必须加入AD域,并正确配置Kerberos客户端(krb5.conf)。 2. 用户需要获取一个有效的Kerberos票据(通过kinit使用AD域用户登录)。 3. Oozie客户端配置(如job.properties)需要指定正确的Oozie服务URL,并且该服务必须已经配置了Kerberos认证(我们之前已经配置了服务端的keytab)。 4. 确保Hadoop相关服务(如YARN、HDFS)也配置了Kerberos,并且Oozie服务具有代理用户权限(以便Oozie服务可以代理提交作业的用户执行操作)。 具体步骤: 步骤1:配置Kerberos客户端(krb5.conf) 在客户端机器上,需要配置`/etc/krb5.conf`文件,使其指向AD域控制器(KDC)。示例配置: ``` [libdefaults] default_realm = AD.DOMAIN.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] AD.DOMAIN.COM = { kdc = ad-server.ad.domain.com admin_server = ad-server.ad.domain.com } [domain_realm] .ad.domain.com = AD.DOMAIN.COM ad.domain.com = AD.DOMAIN.COM ``` 注意:将`AD.DOMAIN.COM`替换为实际的AD域名,`ad-server.ad.domain.com`替换为AD域控制器的地址。 步骤2:获取用户票据 用户需要运行kinit命令来获取TGT票据: ``` kinit username@AD.DOMAIN.COM ``` 然后输入密码。可以通过`klist`命令查看票据是否获取成功。 步骤3:配置Oozie作业属性文件(job.properties) 在提交Oozie作业时,需要在属性文件中指定Oozie的URL(注意必须是HTTP SPNEGO认证的URL,即使用kerberos认证的URL)以及相关的队列、资源路径等。例如: ``` oozie.wf.application.path=hdfs:///user/username/workflow.xml oozie.use.system.libpath=true oozie.project.name=MyOozieJob user.name=username oozie_url=http://oozie-server:11000/oozie # 注意:如果Oozie服务启用了kerberos,那么URL必须是http(或https)并且与Oozie服务主体的SPN匹配的主机名。 ``` 但请注意:在Kerberos环境下,通常不需要在属性文件中指定`user.name`,因为Oozie服务会从Kerberos票据中获取用户名(即kinit的用户名)。然而,为了确保正确,可以设置。 步骤4:确保代理用户配置 在Hadoop集群中,Oozie服务需要能够代理提交作业的用户。因此,需要在Hadoop的core-site.xml中配置代理用户: ``` <property> <name>hadoop.proxyuser.oozie.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.oozie.groups</name> <value>*</value> </property> ``` 这里假设Oozie服务运行在`oozie`用户下。配置后重启Hadoop服务。 步骤5:提交作业 使用Oozie客户端命令提交作业: ``` oozie job -oozie http://oozie-server:11000/oozie -config job.properties -run ``` 注意:在运行此命令前,必须确保当前Kerberos票据有效(即已经kinit成功)。 如果遇到认证错误(如引用[4]中的错误),请检查: - 票据是否有效(klist) - Oozie服务端的Kerberos配置(包括keytab和principal)是否正确 - 客户端和服务端的时间同步(Kerberos要求时间同步) - 客户端和服务端的域名解析(确保使用全限定域名) - Oozie服务是否已经重启并加载了Kerberos配置 最后,生成相关问题: 1. 如何验证Kerberos票据在客户端和服务器端是否有效? 2. Oozie服务端的Kerberos认证详细配置步骤是什么? 3. 在AD域环境中,如何配置Hadoop服务(HDFS/YARN)的Kerberos认证? 4. Oozie作业提交失败时,如何查看详细的错误日志? 注意:在回答中,我们将引用之前的引用[4]来说明可能的错误情况。 </think>以下是Oozie客户端使用AD域用户的配置方法,结合Kerberos认证实现安全作业提交: ### 一、核心配置步骤 1. **客户端krb5.conf配置** 在Oozie客户端机器配置Kerberos客户端,指向AD域控制器: ```ini # /etc/krb5.conf [libdefaults] default_realm = AD.DOMAIN.COM # 替换为实际AD域名 dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d [realms] AD.DOMAIN.COM = { kdc = dc01.ad.domain.com # AD域控制器地址 admin_server = dc01.ad.domain.com } ``` > 需确保DNS能解析AD域控制器主机名 2. **AD域用户票据获取** 客户端执行kinit获取AD用户票据: ```shell kinit username@AD.DOMAIN.COM # AD域用户凭证 Password for username@AD.DOMAIN.COM: ****** klist # 验证票据是否成功获取 ``` 3. **Oozie客户端属性配置** 在job.properties中指定AD域用户: ```properties # job.properties oozie.wf.application.path=hdfs:///user/aduser/workflow.xml user.name=aduser@AD.DOMAIN.COM # 显式声明AD域用户 oozie_url=http://oozie-server:11000/oozie ``` > 需确保HDFS路径`/user/aduser`已创建且AD用户有权限[^2] 4. **Oozie服务端代理配置** 在Oozie服务器core-site.xml添加代理规则: ```xml <!-- Hadoop core-site.xml --> <property> <name>hadoop.proxyuser.oozie.hosts</name> <value>*</value> <!-- 允许所有主机代理 --> </property> <property> <name>hadoop.proxyuser.oozie.groups</name> <value>*</value> <!-- 允许代理所有组 --> </property> ``` ### 二、作业提交流程 ```mermaid sequenceDiagram participant Client as Oozie客户端 participant KDC as AD域控制器 participant OozieSvr as Oozie服务 participant Hadoop as Hadoop集群 Client->>KDC: kinit aduser@AD.DOMAIN.COM KDC-->>Client: 返回TGT票据 Client->>OozieSvr: 提交作业(携带Kerberos票据) OozieSvr->>KDC: 验证票据有效性 KDC-->>OozieSvr: 认证结果 OozieSvr->>Hadoop: 代理aduser执行作业 Hadoop-->>OozieSvr: 作业状态 OozieSvr-->>Client: 返回作业ID ``` ### 三、关键验证命令 1. **票据验证**: ```shell klist -e # 检查票据加密类型是否匹配AD策略 ``` 2. **跨域认证测试**: ```shell hadoop fs -ls /user/aduser # 使用AD用户访问HDFS ``` 3. **作业提交**: ```shell oozie job -oozie http://oozie-server:11000/oozie \ -config job.properties -submit [^2] ``` ### 四、故障排查 1. **票据无效错误**: ```log GSSException: No valid credentials provided [^4] ``` **解决方法**: - 检查`/etc/krb5.conf`域名拼写 - 执行`kdestroy && kinit`更新票据 - 验证客户端与服务端时间同步(NTP) 2. **权限不足错误**: ```log AuthorizationException: User aduser not allowed to impersonate oozie ``` **解决方法**: - 确认Hadoop代理配置生效 - 重启Oozie和YARN服务 3. **DNS解析失败**: ```log KDC_ERR_S_PRINCIPAL_UNKNOWN ``` **解决方法**: - 在客户端`/etc/hosts`添加AD域控制器IP映射 - 检查AD域控制器的SPN注册: ```powershell # Windows AD域控制器执行 setspn -L krbtgt/AD.DOMAIN.COM ``` ### 五、安全增强建议 1. **限制代理范围**: ```xml <property> <name>hadoop.proxyuser.oozie.groups</name> <value>ad_oozie_users</value> <!-- 仅允许特定AD组 --> </property> ``` 2. **启用票据续期**: ```shell kinit -R # 客户端定期续期票据 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值