如何用javajava 调用urloozie的url

百度文库-信息提示
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
对不起,该文档已被删除,无法查看
15秒后,自动返回首页Java Web应用程序:Oozie及其使用方式
 作者: Boris Lublinsky, Michael Segel 编辑:
 && 配置工作流属性  在config-default.xml、作业属性文件和作业参数中有一些重叠,它们可以作为命令行调用的一部分传递给Oozie。尽管文档中没有清晰地指出何时使用哪个,但总体上的建议如下:  1.使用config-default.xml定义对于指定工作流从未改变过的参数。  2.对于给定的工作流部署通用的参数,建议使用作业属性。  3.对于指定的工作流调用特定的参数使用命令行参数。  Oozie处理这三种参数的方式如下:  1.使用所有命令行调用的参数  如果那里有任何无法解析的参数,那么就是用作业配置来解析  一旦所有其它方式都无法处理,那么就试着使用config-default.xm。  我们可以使用Oozie控制台(图2)来观察工作流执行的进程和结果。&&&&&&&图2: Oozie控制台  我们还可以使用Oozie控制台来获得操作执行的细节,比方说作业的日志[8](图3)。&&&&&&&&&图3: Oozie控制台&&作业日志
第1页:第2页:
第3页:第4页:
大学生分期购物销量榜
已有条评论
IT168企业级酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
在Hadoop中执行的任务有时候需要把多个Map/Reduce作业连接到一起,这样才能够达到目的。[1]在Hadoop生态圈中,有一种相对比较新的组件叫做Oozie[2],它让我们可以把多个Map/Reduce作业组合到一个逻辑工作单元中,从而完成更大型的任务。本文中,我们会向你介绍Oozie以及使用它的一些方式。
什么是Oozie?
Oozie是一种Java Web应用程序,它运行在Java servlet容器&&即Tomcat&&中,并使用数据库来存储以下内容:
工作流定义
当前运行的工作流实例,包括实例的状态和变量
Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。
hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执行的流程,并包含工作流的起点和终点(start、end和fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。动作节点是一些机制,通过它们工作流会触发执行计算或者处理任务。Oozie为以下类型的动作提供支持: Hadoop map-reduce、Hadoop文件系统、Pig、Java和Oozie的子工作流(SSH动作已经从Oozie schema 0.2之后的版本中移除了)。
所有由动作节点触发的计算和处理任务都不在Oozie之中&&它们是由Hadoop的Map/Reduce框架执行的。这种方法让Oozie可以支持现存的Hadoop用于负载平衡、灾难恢复的机制。这些任务主要是异步执行的(只有文件系统动作例外,它是同步处理的)。这意味着对于大多数工作流动作触发的计算或处理任务的类型来说,在工作流操作转换到工作流的下一个节点之前都需要等待,直到计算或处理任务结束了之后才能够继续。Oozie可以通过两种不同的方式来检测计算或处理任务是否完成,也就是回调和轮询。当Oozie启动了计算或处理任务的时候,它会为任务提供唯一的回调URL,然后任务会在完成的时候发送通知给特定的URL。在任务无法触发回调URL的情况下(可能是因为任何原因,比方说网络闪断),或者当任务的类型无法在完成时触发回调URL的时候,Oozie有一种机制,可以对计算或处理任务进行轮询,从而保证能够完成任务。
Oozie工作流可以参数化(在工作流定义中使用像${inputDir}之类的变量)。在提交工作流操作的时候,我们必须提供参数值。如果经过合适地参数化(比方说,使用不同的输出目录),那么多个同样的工作流操作可以并发。
一些工作流是根据需要触发的,但是大多数情况下,我们有必要基于一定的时间段和(或)数据可用性和(或)外部事件来运行它们。Oozie协调系统(Coordinator system)让用户可以基于这些参数来定义工作流执行计划。Oozie协调程序让我们可以以谓词的方式对工作流执行触发器进行建模,那可以指向数据、事件和(或)外部事件。工作流作业会在谓词得到满足的时候启动。
经常我们还需要连接定时运行、但时间间隔不同的工作流操作。多个随后运行的工作流的输出会成为下一个工作流的输入。把这些工作流连接在一起,会让系统把它作为数据应用的管道来引用。Oozie协调程序支持创建这样的数据应用管道。
我们可以把Oozie安装在现存的Hadoop系统中,安装方式包括tarball、RPM和Debian包等。我们的Hadoop部署是Cloudera的CDH3,其中已经包含了Oozie。因此,我们只是使用yum把它拉下来,然后在edge节点上执行安装操作。在Oozie的发布包中有两个组件&&Oozie-client和Oozie-server。根据簇集的规模,你可以让这两个组件安装在同一台edge服务器上,也可能安装在不同的计算机上。Oozie服务器中包含了用于触发和控制作业的组件,而客户端中包含了让用户可以触发Oozie操作并与Oozie服务器通信的组件。
想要了解更多关于安装过程的信息,请使用Cloudera发布包,并访问Cloudera站点。
注: 除了包括安装过程的内容之外,它还建议把下面的shell变量OOZIE_URL根据需要添加到.login、.kshrc或者shell的启动文件中:
(export OOZIE_URL=http://localhost:11000/oozie)
为了向你展示Oozie的使用方法,让我们创建一个简单的示例。我们拥有两个Map/Reduce作业&&一个会获取最初的数据,另一个会合并指定类型的数据。实际的获取操作需要执行最初的获取操作,然后把两种类型的数据&&Lidar和Multicam&&合并。为了让这个过程自动化,我们需要创建一个简单的Oozie工作流(代码1)。
Copyright (c) 2011 NAVTEQ! Inc. All rights reserved.
NGMB IPS ingestor Oozie Script
&workflow-app xmlns='uri:oozie:workflow:0.1' name='NGMB-IPS-ingestion'&
&start to='ingestor'/&
&action name='ingestor'&
&job-tracker&${jobTracker}&/job-tracker&
&name-node&${nameNode}&/name-node&
&configuration&
&property&
&name&mapred.job.queue.name&/name&
&value&default&/value&
&/property&
&/configuration&
&main-class&com.navteq.assetmgmt.MapReduce.ips.IPSLoader&/main-class&
&java-opts&-Xmx2048m&/java-opts&
&arg&${driveID}&/arg&
&ok to=&merging&/&
&error to=&fail&/&
&fork name=&merging&&
&path start=&mergeLidar&/&
&path start=&mergeSignage&/&
&action name='mergeLidar'&
&job-tracker&${jobTracker}&/job-tracker&
&name-node&${nameNode}&/name-node&
&configuration&
&property&
&name&mapred.job.queue.name&/name&
&value&default&/value&
&/property&
&/configuration&
&main-class&com.navteq.assetmgmt.hdfs.merge.MergerLoader&/main-class&
&java-opts&-Xmx2048m&/java-opts&
&arg&-drive&/arg&
&arg&${driveID}&/arg&
&arg&-type&/arg&
&arg&Lidar&/arg&
&arg&-chunk&/arg&
&arg&${lidarChunk}&/arg&
&ok to=&completed&/&
&error to=&fail&/&
&action name='mergeSignage'&
&job-tracker&${jobTracker}&/job-tracker&
&name-node&${nameNode}&/name-node&
&configuration&
&property&
&name&mapred.job.queue.name&/name&
&value&default&/value&
&/property&
&/configuration&
&main-class&com.navteq.assetmgmt.hdfs.merge.MergerLoader&/main-class&
&java-opts&-Xmx2048m&/java-opts&
&arg&-drive&/arg&
&arg&${driveID}&/arg&
&arg&-type&/arg&
&arg&MultiCam&/arg&
&arg&-chunk&/arg&
&arg&${signageChunk}&/arg&
&ok to=&completed&/&
&error to=&fail&/&
&join name=&completed& to=&end&/&
&kill name=&fail&&
&message&Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}]&/message&
&end name='end'/&
&/workflow-app&
代码1: 简单的Oozie工作流
这个工作流定义了三个动作:ingestor、mergeLidar和mergeSignage。并把每个动作都实现为Map/Reduce作业。这个工作流从start节点开始,然后把控制权交给Ingestor动作。一旦ingestor步骤完成,就会触发fork控制节点 [4],它会并行地开始执行mergeLidar和mergeSignage。这两个动作完成之后,就会触发join控制节点。join节点成功完成之后,控制权就会传递给end节点,它会结束这个过程。
创建工作流之后,我们需要正确地对其进行部署。典型的Oozie部署是一个HDFS目录,其中包含workflow.xml(代码1)、config-default.xml和lib子目录,其中包含有工作流操作所要使用的类的jar文件。
(点击可以查看大图)
图1: Oozie部署
config-default.xml文件是可选的,通常其中会包含对于所有工作流实例通用的工作流参数。代码2中显示的是config-default.xml的简单示例。
&configuration&
&property&
&name&jobTracker&/name&
&value&sachicn003:2010&/value&
&/property&
&property&
&name&nameNode&/name&
&value&hdfs://sachicn001:8020&/value&
&/property&
&property&
&name&queueName&/name&
&value&default&/value&
&/property&
&/configuration&
代码2: Config-default.xml
完成了工作流的部署之后,我们可以使用Oozie提供的命令行工具[5],它可以用于提交、启动和操作工作流。这个工具一般会运行在Hadoop簇集的edge节点上,并需要一个作业属性文件(参见配置工作流属性),见代码3。
oozie.wf.application.path=hdfs://sachicn001:8020/user/blublins/workflows/IPSIngestion
jobTracker=sachicn003:2010
nameNode=hdfs://sachicn001:8020
代码3: 作业属性文件
有了作业属性,我们就可以使用代码4中的命令来运行Oozie工作流。
oozie job &oozie http://sachidn002.:11000/oozie/ -D driveID=729-pp-02-08-09-59-34 -D lidarChunk=4 -D signageChunk=20 -config job.properties &run
列表4: 运行工作流命令
配置工作流属性
在config-default.xml、作业属性文件和作业参数中有一些重叠,它们可以作为命令行调用的一部分传递给Oozie。尽管文档中没有清晰地指出何时使用哪个,但总体上的建议如下:
使用config-default.xml定义对于指定工作流从未改变过的参数。
对于给定的工作流部署通用的参数,建议使用作业属性。
对于指定的工作流调用特定的参数使用命令行参数。
Oozie处理这三种参数的方式如下:
使用所有命令行调用的参数
如果那里有任何无法解析的参数,那么就是用作业配置来解析
一旦所有其它方式都无法处理,那么就试着使用config-default.xm。
我们可以使用Oozie控制台(图2)来观察工作流执行的进程和结果。
(点击可以查看大图)
图2: Oozie控制台
我们还可以使用Oozie控制台来获得操作执行的细节,比方说作业的日志(图3)。
(点击可以查看大图)
图3: Oozie控制台&&作业日志
编程方式的工作流调用
尽管上面所述的命令行界面能够很好地用于手动调用Oozie,但有时使用编程的方式调用Oozie更具有优势。当Oozie工作流是特定的应用程序或者大型企业过程的一部分,这就会很有用。我们可以使用Oozie Web Services APIs [6]或者Oozie Java client APIs [7]来实现这种编程方式的调用。代码5中展现的就是很简单的Oozie Java客户端的例子,它会触发上面描述的过程。
package com.navteq.assetmgmt.
import java.util.LinkedL
import java.util.L
import java.util.P
import org.apache.oozie.client.OozieC
import org.apache.oozie.client.OozieClientE
import org.apache.oozie.client.WorkflowJ
import org.apache.oozie.client.WorkflowJob.S
public class WorkflowClient {
private static String OOZIE_URL = &http://sachidn002.:11000/oozie/&;
private static String JOB_PATH = &hdfs://sachicn001:8020/user/blublins/workflows/IPSIngestion&;
private static String JOB_Tracker = &sachicn003:2010&;
private static String NAMENode = &hdfs://sachicn001:8020&;
OozieClient wc =
public WorkflowClient(String url){
wc = new OozieClient(url);
public String startJob(String wfDefinition, List&WorkflowParameter& wfParameters)
throws OozieClientException{
// create a workflow job configuration and set the workflow application path
Properties conf = wc.createConfiguration();
conf.setProperty(OozieClient.APP_PATH, wfDefinition);
// setting workflow parameters
conf.setProperty(&jobTracker&, JOB_Tracker);
conf.setProperty(&nameNode&, NAMENode);
if((wfParameters != null) && (wfParameters.size() & 0)){
for(WorkflowParameter parameter : wfParameters)
conf.setProperty(parameter.getName(), parameter.getValue());
// submit and start the workflow job
return wc.run(conf);
public Status getJobStatus(String jobID) throws OozieClientException{
WorkflowJob job = wc.getJobInfo(jobID);
return job.getStatus();
public static void main(String[] args) throws OozieClientException, InterruptedException{
// Create client
WorkflowClient client = new WorkflowClient(OOZIE_URL);
// Create parameters
List&WorkflowParameter& wfParameters = new LinkedList&WorkflowParameter&();
WorkflowParameter drive = new WorkflowParameter(&driveID&,&729-pp-09-01-09-46&);
WorkflowParameter lidar = new WorkflowParameter(&lidarChunk&,&4&);
WorkflowParameter signage = new WorkflowParameter(&signageChunk&,&4&);
wfParameters.add(drive);
wfParameters.add(lidar);
wfParameters.add(signage);
// Start Oozing
String jobId = client.startJob(JOB_PATH, wfParameters);
Status status = client.getJobStatus(jobId);
if(status == Status.RUNNING)
System.out.println(&Workflow job running&);
System.out.println(&Problem starting Workflow job&);
代码5: 简单的Oozie Java客户端
在此,我们首先使用Oozie服务器URL对工作流客户端进行初始化。初始化过程完成之后,我们就可以使用客户端提交并启动作业(startJob方法),获得正在运行的作业的状态(getStatus方法),以及进行其他操作。
构建java动作,向工作流传递参数
在之前的示例中,我们已经展示了如何使用标签向Java节点传递参数。由于Java节点是向Oozie引入自定义计算的主要方法,因此能够从Java节点向Oozie传递数据也同样重要。
根据Java节点的文档[3],我们可以使用&capture-output&&元素把Java节点生成的值传递回给Oozie上下文。然后,工作流的其它步骤可以通过EL-functions访问这些值。返回值需要以Java属性格式文件写出来。我们可以通过&JavaMainMapper.OOZIE_JAVA_MAIN_CAPTURE_OUTPUT_FILE&常量从System属性中获得这些属性文件的名称。代码6是一个简单示例,演示了如何完成这项操作。
package com.navteq.
import java.io.F
import java.io.FileOutputS
import java.io.OutputS
import java.util.C
import java.util.GregorianC
import java.util.P
public class GenerateLookupDirs {
* @param args
public static final long dayMillis = 1000 * 60 * 60 * 24;
private static final String OOZIE_ACTION_OUTPUT_PROPERTIES = &oozie.action.output.properties&;
public static void main(String[] args) throws Exception {
Calendar curDate = new GregorianCalendar();
int year, month,
String propKey, propV
String oozieProp = System.getProperty(OOZIE_ACTION_OUTPUT_PROPERTIES);
if (oozieProp != null) {
File propFile = new File(oozieProp);
Properties props = new Properties();
for (int i = 0; I & 8; ++i) {
year = curDate.get(Calendar.YEAR);
month = curDate.get(Calendar.MONTH) + 1;
date = curDate.get(Calendar.DATE);
propKey = &dir&+i;
propVal = year + &-& +
(month & 10 ? &0& + month : month) + &-& +
(date & 10 ? &0& + date : date);
props.setProperty(propKey, propVal);
curDate.setTimeInMillis(curDate.getTimeInMillis() - dayMillis);
OutputStream os = new FileOutputStream(propFile);
props.store(os, &&);
os.close();
throw new RuntimeException(OOZIE_ACTION_OUTPUT_PROPERTIES
+ & System property not defined&);
代码6: 向Oozie传递参数
在这个示例中,我们假设在HDFS中有针对每个日期的目录。这样,这个类首先会获得当前日期,然后再获得离现在最近的7个日期(包括今天),然后把目录名称传递回给Oozie。
在本文我们介绍了Oozie,它是针对Hadoop的工作流引擎,并且提供了使用它的简单示例。在下一篇文章中,我们会看到更复杂的例子,让我们可以更进一步讨论Oozie的特性。
非常感谢我们在Navteq的同事Gregory Titievsky,他为我们提供了一些例子。
Boris Lublinsky是NAVTEQ公司的首席架构师,在这家公司中他的工作是为大型数据管理和处理、SOA以及实现各种NAVTEQ的项目定义架构的愿景。 他还是InfoQ的SOA编辑,以及OASIS的SOA RA工作组的参与者。Boris是一位作者,还经常发表演讲,他最新的一本书是《Applied SOA》。
Michael Segel在过去二十多年间一直与客户写作,识别并解决他们的业务问题。 Michael已经作为多种角色、在多个行业中工作过。他是一位独立顾问,总是期望能够解决所有有挑战的问题。Michael拥有俄亥俄州立大学的软件工程学位。
edge节点是安装有Hadoop库的计算机,但不是真正簇集中的一部分。它是为能够连接到簇集中的应用程序所用的,并且会部署辅助服务以及能够直接访问簇集的最终用户应用程序。
这些作业的细节和本文无关,所以在其中没有描述。
Map/Reduce作业能够以两种不同的方式在Oozie中实现&&第一种是作为真正的Map/Reduce动作[2],其中你会指定Mapper和Reducer类以及它们的配置信息;第二种是作为Java动作[3],其中你会使用Hadoop API来指定启动Map/Reduce作业的类。因为我们所有的Java主函数都是使用Hadoop API,并且还实现了一些额外的功能,所以我们选择了第二种方法。
Oozie确保两个动作会并行地提交给作业跟踪程序。在执行过程中实际的并行机制并不在Oozie的控制之内,并且依赖于作业的需求、簇集的能力以及Map/Reduce部署所使用的调度程序。
join动作的功能是要同步fork动作启动的多个并行执行的线程。如果fork启动的所有执行的线程都能够成功完成,那么join动作就会等待它们全部完成。如果有至少一个线程执行失败,kill节点会&杀掉&剩余运行的线程。
这个节点不需要是安装了Oozie的计算机。
Oozie的作业日志会包含工作流执行的细节,想要查看动作执行的细节,我们需要切换到Hadoop的Map/Reduce管理页面。
查看英文原文:
& 相关主题:
本文来源:trackbacks-0
1:下载 2:解压缩oozie-4.2.0.tar.gz3:cd进oozie-4.2.0根目录4:& vim pom.xml& ---&查找profile找到hadoop-2系列的profile, 修改里面的hadoop.version版本号为你环境的hadoop版本号,因为我的是2.6.2所以查找的profile是hadoop-25:至关重要--&&在settings.xml或者pom.xml&里面添加repository,因为那个该死的Apache Oozie Docs,每次执行到它打包就会failed,提示找不到maven-site-plugin和doxia插件其实是仓库链接失效()& 增加以下仓库地址即可
&repository&&&&&&id&Codehaus&repository&/id&&&&&&name&codehaus-mule-repo&/name&&&&&&url&https://repository-master.mulesoft.org/nexus/content/groups/public/&&&&&/url&&&&&&layout&default&/layout&&/repository&6:cd进bin目录运行mkdistor.sh -Phadoop-2 -DskipTests 即可生成oozie成功位置在distor的target目录里面.官网给的installation说明有问题,在mkdistor.sh&后面追加-Dxxx.version=x.x.x这个不起作用,仍然download的是pom里面写入的version,所以这里修改了pom文件,但是hadoop采用profile配置分别对应1、2、3所以修改对应profile即可,其它诸如sqoop habase hive等看情况修改version无需更改hadooplibs目录里面的hadoop-utils-x、hadoop-auth-x、hadoop-distcp-x的版本补充:oozie用的是jdk1.6&& JAVA_HOME不要超过1.7& maven版本也别太新,否则打doc的时候会报错,还有一点:其它sqoop hbase hive等不要版本太高,高于支持的hadoop版本,否则打包还会出错
阅读排行榜
评论排行榜Hadoop Oozie学习笔记 使用OOZIE,通过命令行运行example
Hadoop Oozie学习笔记 使用OOZIE,通过命令行运行example
  Oozie下面有很多例子,提供测试.也可以将源码放入Eclipse中启动提交.这里就一起试下.但发现有些问题,一一解决吧.
  运行Oozie例子map-reduce,命令:
  $OOZIE_HOME/bin/oozie job -oozie
  本以为会很顺利,但控制台报以下错误:
  Error: E0902 : E0902: Exception occured: [.ConnectException: Call to localhost/127.0.0.1:8020 failed on connection exception: .ConnectException: Connection refused]
  跑到日志中$OOZIE_HOME/logs/oozie.log发现有以下报错:
   10:42:30,721& WARN V1JobsServlet:539 - USER[?] GROUP[users] TOKEN[-] APP[-] JOB[-] ACTION[-] URL[//localhost:11000/oozie/v1/jobs?action=start] error[E0902], E0902: Exception occured: [.ConnectException: Call to localhost/127.0.0.1:8020 failed on connection exception: .ConnectException: Connection refused]
org.apache.oozie.servlet.XServletException:&E0902:&Exception&occured:&[.ConnectException:&Call&to&localhost/127.0.0.1:8020&failed&on&connection&exception:&.ConnectException:&Connection&refused] &&
&&&&at&org.apache.oozie.servlet.BaseJobServlet.checkAuthorizationForApp(BaseJobServlet.java:196) &&
&&&&at&org.apache.oozie.servlet.BaseJobsServlet.doPost(BaseJobsServlet.java:89) &&
&&&&at&javax.servlet.(HttpServlet.java:637) &&
&&&&at&org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:281) &&
&&&&at&javax.servlet.(HttpServlet.java:717) &&
&&&&at&orre.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) &&
&&&&at&orre.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&
&&&&at&orre.StandardWrapperValve.invoke(StandardWrapperValve.java:233) &&
&&&&at&orre.StandardContextValve.invoke(StandardContextValve.java:191) &&
&&&&at&orre.StandardHostValve.invoke(StandardHostValve.java:127) &&
&&&&at&org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) &&
&&&&at&orre.StandardEngineValve.invoke(StandardEngineValve.java:109) &&
&&&&at&ornnector.CoyoteAdapter.service(CoyoteAdapter.java:298) &&
&&&&at&oryote.(Http11Processor.java:859) &&
&&&&at&oryote.$Http11ConnectionHandler.process(Http11Protocol.java:588) &&
&&&&at&org.apach.JIoEndpoint$Worker.run(JIoEndpoint.java:489) &&
&&&&at&java.lang.Thread.run(Thread.java:662) &&
Caused&by:&org.apache.oozie.service.AuthorizationException:&E0902:&Exception&occured:&[.ConnectException:&Call&to&localhost/127.0.0.1:8020&failed&on&connection&exception:&.ConnectException:&Connection&refused] &&
&&&&at&org.apache.oozie.service.AuthorizationService.authorizeForApp(AuthorizationService.java:320) &&
&&&&at&org.apache.oozie.servlet.BaseJobServlet.checkAuthorizationForApp(BaseJobServlet.java:185) &&
&&&&...&16&more &&
Caused&by:&org.apache.oozie.service.HadoopAccessorException:&E0902:&Exception&occured:&[.ConnectException:&Call&to&localhost/127.0.0.1:8020&failed&on&connection&exception:&.ConnectException:&Connection&refused] &&
&&&&at&org.apache.oozie.service.KerberosHadoopAccessorService.createFileSystem(KerberosHadoopAccessorService.java:208) &&
&&&&at&org.apache.oozie.service.AuthorizationService.authorizeForApp(AuthorizationService.java:285) &&
&&&&...&17&more &&
Caused&by:&.ConnectException:&Call&to&localhost/127.0.0.1:8020&failed&on&connection&exception:&.ConnectException:&Connection&refused &&
&&&&at&org.apache.hadoop.ipc.Client.wrapException(Client.java:1131) &&
&&&&at&org.apache.hadoop.ipc.Client.call(Client.java:1107) &&
&&&&at&org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) &&
&&&&at&$Proxy22.getProtocolVersion(Unknown&Source) &&
&&&&at&org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) &&
&&&&at&org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) &&
&&&&at&org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:111) &&
&&&&at&org.apache.hadoop.hdfs.DFSClient.&init&(DFSClient.java:213) &&
&&&&at&org.apache.hadoop.hdfs.DFSClient.&init&(DFSClient.java:180) &&
&&&&at&org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) &&
&&&&at&org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1514) &&
&&&&at&org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67) &&
&&&&at&org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1548) &&
&&&&at&org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1530) &&
&&&&at&org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) &&
&&&&at&org.apache.oozie.service.KerberosHadoopAccessorService$3.run(KerberosHadoopAccessorService.java:200) &&
&&&&at&org.apache.oozie.service.KerberosHadoopAccessorService$3.run(KerberosHadoopAccessorService.java:192) &&
&&&&at&java.security.AccessController.doPrivileged(Native&Method) &&
&&&&at&javax.security.auth.Subject.doAs(Subject.java:396) &&
&&&&at&org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1115) &&
&&&&at&org.apache.oozie.service.KerberosHadoopAccessorService.createFileSystem(KerberosHadoopAccessorService.java:192) &&
&&&&...&18&more &&
Caused&by:&.ConnectException:&Connection&refused &&
&&&&at&sun.nio.ch.SocketChannelImpl.checkConnect(Native&Method) &&
&&&&at&sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) &&
&&&&at&or.Socnnect(SocketIOWithTimeout.java:206) &&
&&&&at&nnect(NetUtils.java:408) &&
&&&&at&org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:425) &&
&&&&at&org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:532) &&
&&&&at&org.apache.hadoop.ipc.Client$Connection.access$2300(Client.java:210) &&
&&&&at&org.apache.hadoop.ipc.Client.getConnection(Client.java:1244) &&
&&&&at&org.apache.hadoop.ipc.Client.call(Client.java:1075) &&
&&&&...&37&more
  从Oozie的FAQ找到了解决办法:,需要将oozie-default.xml中的 oozie.services属性拷贝到oozie-site.xml中,也就是以下属性:
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&}

我要回帖

更多关于 java 调用url传递参数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信