本博客属原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1257521
欢迎加入Hadoop超级群: 180941958
之前Oozie都是伪分布式测试,获取的都是本地文件.现在开始在分布式环境下测试,从HDFS中获取文件(所以你的APP也要传入到相应的HDFS路径中).我这里采用的例子是$OOZIE_HOME/examples/apps/map-reduce.其中对job.properties做如下设置:
nameNode=hdfs://localhost:9000
jobTracker=localhost:9001
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce
outputDir=map-reduce
之后在控制台通过如下命令提交app job:
$OOZIE_HOME/bin/oozie job -oozie http://localhost:11000/oozie -config /home/guoyun/hadoop/oozie-2.3.2-cdh3u2/examples/apps/map-reduce/job.properties -run
但碰到以下异常:
org.apache.oozie.service.AuthorizationException: E0902: Exception occured: [org.apache.hadoop.ipc.RemoteException: User: guoyun is not allowed to impersonate guoyun]
at org.apache.oozie.service.AuthorizationService.authorizeForApp(AuthorizationService.java:318)
at org.apache.oozie.servlet.BaseJobServlet.checkAuthorizationForApp(BaseJobServlet.java:171)
at org.apache.oozie.servlet.BaseJobsServlet.doPost(BaseJobsServlet.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:281)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:123)
at com.cloudera.alfredo.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:371)
at org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.oozie.service.HadoopAccessorException: E0902: Exception occured: [org.apache.hadoop.ipc.RemoteException: User: guoyun is not allowed to impersonate guoyun]
at org.apache.oozie.service.KerberosHadoopAccessorService.createFileSystem(KerberosHadoopAccessorService.java:211)
at org.apache.oozie.service.AuthorizationService.authorizeForApp(AuthorizationService.java:283)
... 22 more
Caused by: org.apache.hadoop.ipc.RemoteException: User: guoyun is not allowed to impersonate guoyun
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:203)
at org.apache.oozie.service.KerberosHadoopAccessorService$3.run(KerberosHadoopAccessorService.java:194)
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:1127)
at org.apache.oozie.service.KerberosHadoopAccessorService.createFileSystem(KerberosHadoopAccessorService.java:194)
... 23 more
这是个权限异常,通过google也找到了较为详细的解决方案.原理我只能初步做个大概的猜测,具体细节还需日后渐渐摸索.由于需要从HDFS中访问你所提交的APP,那肯定需要对这个APP文件有权限.所以需要进行相关配置.我这里用户名(你提交app job所用的用户名)是guoyun,你可以通过whoami来获取.然后获取你当前用户名所在的用户组,通过groups userName获取.获取到用户名和用户组之后需要在$HADOOP_HOME/conf/core-site.xml中进行设置,我的设置如下:
<!-- for oozie,add by guoyun,2011-11-13 -->
<property>
<name>hadoop.proxyuser.guoyun.hosts</name>
<value>localhost</value>
</property>
<property>
<name>hadoop.proxyuser.guoyun.groups</name>
<value>guoyun</value>
</property>
其中中hadoop.proxyuser.guoyun.hosts和hadoop.proxyuser.guoyun.groups中的guoyun要改成你的用户名.
修改好cote-site.xml后需要重启你的hadoop.之后再提交job,OK!该异常解决
解决方法来源网址:http://tech.groups.yahoo.com/group/Oozie-users/message/203
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
Hadoop是一种开源的分布式存储和计算系统,它由Apache软件基金会开发。在初学者的角度,理解Hadoop的组成部分以及其架构设计是学习Hadoop的基础。 首先,Hadoop的分布式文件系统(HDFS)是其核心组件之一,它具有高...
【HADOOP学习笔记】 Hadoop是Apache基金会开发的一个开源分布式计算框架,是云计算领域的重要组成部分,尤其在大数据处理方面有着广泛的应用。本学习笔记将深入探讨Hadoop的核心组件、架构以及如何搭建云计算平台。...
Oozie是Apache项目中的一个工作流管理系统,专门设计用于管理和协调Hadoop生态系统中的任务。它的名字"Oozie"来源于驯象人,寓意其能够像驯象一样管理复杂的分布式任务。Oozie由Cloudera公司贡献给Apache社区,并且...
《Hadoop学习笔记》 Hadoop,作为大数据处理的核心框架,是开源社区的杰作,由Apache软件基金会维护。这份文档旨在深入解析Hadoop的基本概念、架构及其在大数据处理中的应用,帮助读者全面掌握这一重要技术。 一、...
《Hadoop学习笔记》 Hadoop,作为大数据处理的核心组件之一,是Apache软件基金会开发的开源框架,专门针对大规模数据集进行分布式计算。这个框架基于Java语言实现,它设计的目标是高容错性、可扩展性和高效的数据...
反思实践,整理学习笔记课后作业(1) 在职教云平台上完成相关练习题(2) 写一篇关于 Hadoop 集群搭建的心得体会教师讲解职教云教师:布置作业,提供指导学生:深入思考,完成作业 【知识点详解】 Hadoop 是一个开源...
压缩包内的文件主要是法律学习资料,如法考笔记、刑法和民诉的思维导图、讲义等,而不是与Hadoop相关的源代码或IT技术文档。因此,我无法根据这些信息生成关于Hadoop的知识点。 如果您的目标是获取Hadoop的相关知识...
这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...
28. **Oozie**: 用于协调Hadoop工作流的管理工具,支持Hadoop相关的任务调度。 29. **Tez**: Hadoop上的应用处理框架,优化MapReduce的性能,提高任务执行效率。 30. **Zookeeper**: 分布式协调服务,提供命名服务...
【标题】"Hadoopusic-main开发笔记"涉及的是在大数据处理框架Hadoop上构建...开发笔记可能详细记录了每个阶段的问题、解决方案、性能优化以及最佳实践,对于学习和理解如何在实际项目中应用Hadoop有着很高的参考价值。
【标题】:“hadoop-on-model-for-network-ids-开发笔记” 在大数据处理和分析领域,Hadoop是一个不可或缺的工具,尤其在构建网络入侵检测系统(Network Intrusion Detection System, NIDS)时,它能提供强大的...
这份“大数据学习笔记汇总指南”涵盖了大数据技术栈中的关键组件,包括Hadoop、Hive、Spark、Storm、Flink以及HBase。让我们逐一深入探讨这些技术及其在大数据生态系统中的作用。 一、Hadoop Hadoop是Apache基金会...
11. **Oozie**:Oozie是Hadoop的工作流调度系统,用于管理和调度Hadoop作业和其他类型的工作,如Java程序、Shell脚本等。 12. **电信客服项目**:这个部分可能包含一个实际的案例研究,教你如何运用以上技术解决...
大数据技术分享与...讲座可能会讨论如何通过合理地配置和使用Apache Spark来提高大数据处理的效率,解决在生产环境中遇到的问题,如资源浪费、低性能等,并且会给出如何使用Spark优化大数据应用的具体策略和技巧。
3. Hadoop生态系统:包括YARN(Yet Another Resource Negotiator)用于资源管理,Hive提供数据仓库功能,Pig提供数据处理语言,Oozie是工作流调度系统,Zookeeper则为集群协调服务。 4. NoSQL数据库:尽管笔记中未...