文章目录
  1. Oozie搭建常见问题
  2. 1. Could not lookup launched hadoop Job ID 错误
  3. 2. 运行 sqoop 或者其他脚本出现资源争夺而死锁的情况。

Oozie搭建常见问题

1. Could not lookup launched hadoop Job ID 错误

1
2
3
4
###  比如:
JA017: Could not lookup launched hadoop Job ID [job_1468396821235_0004]
which was associated with action [0000000-160714100635276-oozie-admi-W@sqoop-node].
Failing this action!

出现这种情况可能会有几种情况:

第一种:Job Application 控制台没有数据
默认地址:http://127.0.0.1:8088

1
2
解决思路:
hadoop 环境配置有问题,可以尝试运行官方的wordcount程序,看看能不能成功。

第二种:jobHistory没有数据
默认地址:http://127.0.0.1:19888/

1
出现这种情况原因可能是oozie在 hadoop job history获取不到数据,然后将oozie job置为fail的状态。

解决:

  • 可能是 mapred 在 hdfs 中创建日志出现问题。在 mapred-site.xml 配置如下,然后将 /tmp/hadoop-yarn/staging 目录通过 hadoop fs -chown 777 修改权限。
1
2
3
4
5
6
7
8
9
10
11
12
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/tmp/hadoop-yarn/staging</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
  • 配置 yarn-site.xml, 增加如下
1
2
3
4
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

2. 运行 sqoop 或者其他脚本出现资源争夺而死锁的情况。

  • 出现如下情况

  • 查看日志, 一直 heart beat heart beat …….

解决方案:

  • 方案一:由于我是 hadoop伪分布式 的安装, 所以在default的任务queue中会出现资源争夺,从而死锁的情况。可以将任务提交到 hadoop 集群中(至少两个Nodemanager),得以解决。
  • 方案二:在 hadoop伪分布式,即在自己的机器上解决,方案如下:
  • 方案三:可以使用分队列运行的方式运行任务,让launcher和job在不同的队列中。详细见Oozie-8_高级配置

这里可以参考:
http://stackoverflow.com/questions/27653937/error-on-running-multiple-workflow-in-oozie-4-1-0/27855432

1、在 $HADOOP_HOME/etc/hadoop 配置目录下新建 fair-scheduler.xml, 内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## 可以换成自己的用户名称
<?xml version="1.0"?>
<allocations>
<queue name="fair">
<minResources>1024 mb, 1 vcores</minResources>
<maxResources>4096 mb, 1 vcores</maxResources>
<maxRunningApps>10</maxRunningApps>
<aclSubmitApps>hdfs,icemimosa</aclSubmitApps>
<weight>2.0</weight>
<schedulingPolicy>fair</schedulingPolicy>
</queue>
<user name="root">
<maxRunningApps>10</maxRunningApps>
</user>
<user name="icemimosa">
<maxRunningApps>10</maxRunningApps>
</user>
<user name="hdfs">
<maxRunningApps>5</maxRunningApps>
</user>
<userMaxAppsDefault>5</userMaxAppsDefault>
<fairSharePreemptionTimeout>30</fairSharePreemptionTimeout>
</allocations>

2、在 yarn-site.xml 配置中增加如下:

补充:后来发现不用配置这么麻烦,只需要配置 第二步 也是起效果的(主要是将每个任务最大内存配置小一点)。
补充:又一个坑,后来发现还是得配上,只是queueName可以为default。请忽略上一个补充。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 指定 fair-scheduler.xml 的路径
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>file:/%HADOOP_HOME%/etc/hadoop/fair-scheduler.xml</value>
</property>
# 2. 修改任务分配内存
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20960</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>

3、然后在运行oozie任务的时候,将 job.properties 中的 queueName 属性设置为 fair

1
2
3
...
queueName=fair
...
文章目录
  1. Oozie搭建常见问题
  2. 1. Could not lookup launched hadoop Job ID 错误
  3. 2. 运行 sqoop 或者其他脚本出现资源争夺而死锁的情况。