`
guoyunsky
  • 浏览: 859033 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:207190
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

Hadoop Oozie学习笔记(四) org.apache.oozie.service.AuthorizationException: E0902异常解决

 
阅读更多

本博客属原创文章,转载请注明出处: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

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

0
1
分享到:
评论

相关推荐

    Hadoop学习笔记.pdf

    Hadoop是一种开源的分布式存储和计算系统,它由Apache软件基金会开发。在初学者的角度,理解Hadoop的组成部分以及其架构设计是学习Hadoop的基础。 首先,Hadoop的分布式文件系统(HDFS)是其核心组件之一,它具有高...

    HADOOP学习笔记

    【HADOOP学习笔记】 Hadoop是Apache基金会开发的一个开源分布式计算框架,是云计算领域的重要组成部分,尤其在大数据处理方面有着广泛的应用。本学习笔记将深入探讨Hadoop的核心组件、架构以及如何搭建云计算平台。...

    尚硅谷大数据技术之Oozie1

    Oozie是Apache项目中的一个工作流管理系统,专门设计用于管理和协调Hadoop生态系统中的任务。它的名字"Oozie"来源于驯象人,寓意其能够像驯象一样管理复杂的分布式任务。Oozie由Cloudera公司贡献给Apache社区,并且...

    hadoop学习笔记

    《Hadoop学习笔记》 Hadoop,作为大数据处理的核心框架,是开源社区的杰作,由Apache软件基金会维护。这份文档旨在深入解析Hadoop的基本概念、架构及其在大数据处理中的应用,帮助读者全面掌握这一重要技术。 一、...

    Hadoop学习笔记

    《Hadoop学习笔记》 Hadoop,作为大数据处理的核心组件之一,是Apache软件基金会开发的开源框架,专门针对大规模数据集进行分布式计算。这个框架基于Java语言实现,它设计的目标是高容错性、可扩展性和高效的数据...

    Hadoop平台技术 模块1 Hadoop概述-单元设计.docx

    反思实践,整理学习笔记课后作业(1) 在职教云平台上完成相关练习题(2) 写一篇关于 Hadoop 集群搭建的心得体会教师讲解职教云教师:布置作业,提供指导学生:深入思考,完成作业 【知识点详解】 Hadoop 是一个开源...

    hadoop源码归档.zip

    压缩包内的文件主要是法律学习资料,如法考笔记、刑法和民诉的思维导图、讲义等,而不是与Hadoop相关的源代码或IT技术文档。因此,我无法根据这些信息生成关于Hadoop的知识点。 如果您的目标是获取Hadoop的相关知识...

    hadoop笔记

    这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...

    大数据图标大全.docx

    28. **Oozie**: 用于协调Hadoop工作流的管理工具,支持Hadoop相关的任务调度。 29. **Tez**: Hadoop上的应用处理框架,优化MapReduce的性能,提高任务执行效率。 30. **Zookeeper**: 分布式协调服务,提供命名服务...

    hadoopusic-main开发笔记

    【标题】"Hadoopusic-main开发笔记"涉及的是在大数据处理框架Hadoop上构建...开发笔记可能详细记录了每个阶段的问题、解决方案、性能优化以及最佳实践,对于学习和理解如何在实际项目中应用Hadoop有着很高的参考价值。

    hadoopon-model-for-network-ids-开发笔记

    【标题】:“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. **电信客服项目**:这个部分可能包含一个实际的案例研究,教你如何运用以上技术解决...

    大数据技术分享 Spark技术讲座 使用Apache Spark调整Spark 共45页.pdf

    大数据技术分享与...讲座可能会讨论如何通过合理地配置和使用Apache Spark来提高大数据处理的效率,解决在生产环境中遇到的问题,如资源浪费、低性能等,并且会给出如何使用Spark优化大数据应用的具体策略和技巧。

    BigDataNotes:ING考试备考笔记

    3. Hadoop生态系统:包括YARN(Yet Another Resource Negotiator)用于资源管理,Hive提供数据仓库功能,Pig提供数据处理语言,Oozie是工作流调度系统,Zookeeper则为集群协调服务。 4. NoSQL数据库:尽管笔记中未...

Global site tag (gtag.js) - Google Analytics