更新时间:2024-07-24 GMT+08:00
使用Oozie客户端提交DistCp任务
操作场景
该任务指导用户在使用Oozie客户端提交DistCp任务。
请下载使用最新版本的客户端。
前提条件
- 已获取运行状态的Oozie服务器(任意实例)URL,如“https://10.1.130.10:21003/oozie”。
- 已获取运行状态的Oozie服务器主机名,如“10-1-130-10”。
- 已获取Yarn ResourceManager主节点IP,如“10.1.130.11”。
操作步骤
- 以客户端安装用户登录安装Oozie客户端的节点。
- 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。
source /opt/client/bigdata_env
- 判断集群认证模式。
- 安全模式,执行kinit命令进行用户认证。
例如,使用oozieuser用户进行认证。
kinit oozieuser
- 普通模式,执行4。
- 安全模式,执行kinit命令进行用户认证。
- 执行以下命令,进入样例目录。
cd /opt/client/Oozie/oozie-client-*/examples/apps/distcp/
该目录下需关注文件如表1所示。
- 执行以下命令,编辑“job.properties”文件。
vi job.properties
修改如下内容:
更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”。
- 是否是跨安全集群的DistCp。
- 对两个集群进行跨Manager集群互信。
- 备份并且修改workflow.xml的文件内容,命令如下:
cp workflow.xml workflow.xml.bak
vi workflow.xml
修改以下内容:
<workflow-app xmlns="uri:oozie:workflow:1.0" name="distcp-wf"> <start to="distcp-node"/> <action name="distcp-node"> <distcp xmlns="uri:oozie:distcp-action:1.0"> <resource-manager>${resourceManager}</resource-manager> <name-node>${nameNode}</name-node> <prepare> <delete path="hdfs://target_ip:target_port/user/${userName}/${examplesRoot}/output-data/${outputDir}"/> </prepare> <configuration> <property> <name>mapred.job.queue.name</name> <value>${queueName}</value> </property> <property> <name>oozie.launcher.mapreduce.job.hdfs-servers</name> <value>hdfs://source_ip:source_port,hdfs://target_ip:target_port</value> </property> </configuration> <arg>${nameNode}/user/${userName}/${examplesRoot}/input-data/text/data.txt</arg> <arg>hdfs://target_ip:target_port/user/${userName}/${examplesRoot}/output-data/${outputDir}/data.txt</arg> </distcp> <ok to="end"/> <error to="fail"/> </action> <kill name="fail"> <message>DistCP failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name="end"/> </workflow-app>
其中“target_ip:target_port”为另一个互信集群的HDFS active namenode地址,例如:10.10.10.233:25000。
“source_ip:source_port ”为源集群的HDFS active namenode地址,例如:10.10.10.223:25000。
两个IP地址和端口都需要根据自身的集群实际情况修改。
- 执行oozie job命令,运行工作流文件。
oozie job -oozie https://oozie角色的主机名:21003/oozie/ -config job.properties -run
父主题: 使用Oozie客户端提交作业