cdh4.1.2 hadoop和oozie集成问题
2014-04-28 17:07
381 查看
1.异常信息如下:
Caused by: com.google.protobuf.ServiceException: java.net.ConnectException: Call From slave4/10.95.3.65 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
后来通过调试和跟踪hadoop源代码,发现oozie在提交任务后确实会去连接jobhistory,
开到debug模式后,在org.apache.hadoop.mapred.ClientCache,这个类的:
protected MRClientProtocol instantiateHistoryProxy()
throws IOException {
final String serviceAddr = conf.get(JHAdminConfig.MR_HISTORY_ADDRESS);
if (StringUtils.isEmpty(serviceAddr)) {
return null;
}
LOG.debug("Connecting to HistoryServer at: " + serviceAddr);
final YarnRPC rpc = YarnRPC.create(conf);
LOG.debug("Connected to HistoryServer at: " + serviceAddr);
UserGroupInformation currentUser = UserGroupInformation.getCurrentUser();
return currentUser.doAs(new PrivilegedAction<MRClientProtocol>() {
@Override
public MRClientProtocol run() {
return (MRClientProtocol) rpc.getProxy(HSClientProtocol.class,
NetUtils.createSocketAddr(serviceAddr), conf);
}
});
}
通过上面的代码可以知道确实连接了HistoryServer,因此我通过命令
mr-jobhistory-daemon.sh start historyserver 把这个服务启动,这样在NN上会启动JobHistoryServer进程,这个进程的监听端口就是10020,本以为这样这个问题就能解决了,没想到在oozie的log日志里还是报上面的错,唯一可能的原因是oozie没有读取到 jobhistory的配置, 因此我把这个配置:
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
又在oozie/conf/hadoop-conf/core-site.xml文件中又添加了一遍,上述错误就消失了,job也能正常跑起来了。
2. oozie安装好了,提交任务的时候总是报Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Data truncation: Data too long for column 'proto_action_conf' at row 1 {prepstmnt 184665592 INSERT INTO WF_JOBS (id, app_name, app_path, conf, group_name, parent_id, run,
user_name, bean_type, auth_token, created_time, end_time, external_id, last_modified_time, log_token, proto_action_conf, sla_xml, start_time, status, wf_instance) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?]}
Caused by: com.google.protobuf.ServiceException: java.net.ConnectException: Call From slave4/10.95.3.65 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
后来通过调试和跟踪hadoop源代码,发现oozie在提交任务后确实会去连接jobhistory,
开到debug模式后,在org.apache.hadoop.mapred.ClientCache,这个类的:
protected MRClientProtocol instantiateHistoryProxy()
throws IOException {
final String serviceAddr = conf.get(JHAdminConfig.MR_HISTORY_ADDRESS);
if (StringUtils.isEmpty(serviceAddr)) {
return null;
}
LOG.debug("Connecting to HistoryServer at: " + serviceAddr);
final YarnRPC rpc = YarnRPC.create(conf);
LOG.debug("Connected to HistoryServer at: " + serviceAddr);
UserGroupInformation currentUser = UserGroupInformation.getCurrentUser();
return currentUser.doAs(new PrivilegedAction<MRClientProtocol>() {
@Override
public MRClientProtocol run() {
return (MRClientProtocol) rpc.getProxy(HSClientProtocol.class,
NetUtils.createSocketAddr(serviceAddr), conf);
}
});
}
通过上面的代码可以知道确实连接了HistoryServer,因此我通过命令
mr-jobhistory-daemon.sh start historyserver 把这个服务启动,这样在NN上会启动JobHistoryServer进程,这个进程的监听端口就是10020,本以为这样这个问题就能解决了,没想到在oozie的log日志里还是报上面的错,唯一可能的原因是oozie没有读取到 jobhistory的配置, 因此我把这个配置:
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
又在oozie/conf/hadoop-conf/core-site.xml文件中又添加了一遍,上述错误就消失了,job也能正常跑起来了。
2. oozie安装好了,提交任务的时候总是报Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Data truncation: Data too long for column 'proto_action_conf' at row 1 {prepstmnt 184665592 INSERT INTO WF_JOBS (id, app_name, app_path, conf, group_name, parent_id, run,
user_name, bean_type, auth_token, created_time, end_time, external_id, last_modified_time, log_token, proto_action_conf, sla_xml, start_time, status, wf_instance) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?]}
经过搜索,wf_jobs中的proto_action_conf这个字段存储的是工作流中workflow.xml的内容,默认oozie创建元数据表的时候此字段类型为text(mysql),此种类型为最大长度为 65536字符的text列,所以有时无法容纳workflow.xml的内容,需要将其改为LONGTEXT类型,改后就好了。 [code]
相关文章推荐
- cdh4.1.2 hadoop和oozie集成问题
- CDH4.1(hadoop-2.0.0-cdh4.1.2)安装部署文档
- CDH4.1(hadoop-2.0.0-cdh4.1.2)安装部署文档
- Hadoop伪分布式配置及与Eclipse集成开发需要注意的问题
- hadoop 0.20.2 cdh3u6 运行单节点任务卡死,但不报错,问题分析。
- cloudera hadoop cdh3u1 升级问题
- 测试CDH hadoop遇到的问题
- Hadoop0.20.2+Hbase0.90.4+Zookeeper3.3.3集成以及遇到的问题
- CDH Hadoop HA+Zookeeper部署问题
- druid.io 集成 hadoop 问题解决 /hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework
- cdh4 ha (hadoop-2.0.0-cdh4.1.2.tar.gz)
- hadoop-2.0.0-cdh4.1.2升级到hadoop-2.7.2
- apache的hadoop升级到CDH hadoop2.0时遇到的问题及解决
- oozie启动问题:Could not initialize service [org.apache.oozie.service.HadoopAccessorService]
- Bug死磕之hue集成的oozie+pig出现资源任务死锁问题
- druid.io 集成 hadoop 问题解决 /hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework
- CDH4.1(hadoop-2.0.0-cdh4.1.2)安装部署文档
- 关于hadoop集成ganglia相关问题
- cdh环境下,spark streaming与flume的集成问题总结
- 编译hadoop2.6.0 cdh 5.4.5 集成snappy压缩