使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

在 Hadoop/革命 R 企业环境中,mapreduce 作业可能会失败,并与 kerberos 相关的 Java 异常︰

设置选项︰
15/02/03 16:59:05 警告实用工具NativeCodeLoader: (如果适用) 使用内置 java 类无法加载您的平台的本机 hadoop 库...
调试︰ allArgs = [-Dmapred.reduce.tasks=1、 /user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input、 /user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/IRO.iro、 /user/RevoShare/a377683/AirlineDemoSmall / *,dojo3m20002.rtp1.hadoop.fmr.com,8020,/usr/bin/Revoscript]
15/02/03 16:59:09 信息 hdfs。DFSClient: HDFS_DELEGATION_TOKEN 标记 242420 a377683 上创建 ha-hdfs:nameservice1
15/02/03 16:59:09 信息安全。TokenCache︰ 有 hdfs://nameservice1; 的 dt种类︰ HDFS_DELEGATION_TOKEN,服务︰ ha-hdfs:nameservice1,Ident: (HDFS_DELEGATION_TOKEN 标记 242420 a377683)

......

15/02/03 16:59:25 信息 mapreduce。作业︰ 映射 0%减少 0%
15/02/03 16:59:38 信息 mapreduce。作业︰ 任务 Id: attempt_1422647534016_1760_m_000000_0,状态︰ 失败
错误︰ java.io.IOException: R 虚拟机退出,退出代码︰ 1,输出︰
启动脚本
[1],则返回 TRUE
$fileName 
[1] NA
$start 
[1] 0
$length 
[1] 0
15/02/03 16:59:37 警告安全。UserGroupInformation: 作为 PriviledgedActionException: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS 启动失败 [GSSException 所致︰ 没有提供有效的凭据 (机制级别︰ 找不到任何 Kerberos tgt)]
15/02/03 16:59:37 警告 ipc。客户端︰ 连接到服务器时出现的异常︰ javax.security.sasl.SaslException: GSS 启动失败 [GSSException 所致︰ 没有提供有效的凭据 (机制级别︰ 找不到任何 Kerberos tgt)]
15/02/03 16:59:37 警告安全。UserGroupInformation: 作为 PriviledgedActionException: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS 启动失败 [GSSException 所致︰ 没有提供有效的凭据 (机制级别︰ 找不到任何 Kerberos tgt)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;) 错误︰
java.io.IOException︰ 在本地异常时失败︰ java.io.IOException: javax.security.sasl.SaslException: GSS 启动失败 [GSSException 所致︰ 没有提供有效的凭据 (机制级别︰ 找不到任何 Kerberos tgt)];主机的详细信息︰ 本地主机是:"< 主机名 >"。目标主机:"< 主机名 >": 8020;
在 org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
在 org.apache.hadoop.ipc.Client.call(Client.java:1415)
在 org.apache.hadoop.ipc.Client.call(Client.java:1364)
在 org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
在 com.sun.proxy.$Proxy14.getBlockLocations (未知源)
在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
在 sun.reflect.NativeMethodAccessorImpl.invoke0 (本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:606)
在 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
在 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
在 com.sun.proxy.$Proxy15.getBlockLocations (未知源)
在 org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
在 org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
在 org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
在 org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
在 org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
在 org.apache.hadoop.hdfs.DFSInputStream。 < init > (DFSInputStream.java:230)
在 org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
在 org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
在 org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
在 org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
在 org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
通过 Caused: java.io.IOException: javax.security.sasl.SaslException: GSS 启动失败 [GSSException 所致︰ 没有提供有效的凭据 (机制级别︰ 找不到任何 Kerberos tgt)]
在 org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
在 java.security.AccessController.doPrivileged (本机方法)
在 javax.security.auth.Subject.doAs(Subject.java:415)
在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
在 org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
在 org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
在 org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
在 org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
在 org.apache.hadoop.ipc.Client.call(Client.java:1382)

首先,确认提交作业有当前有效的 kerberos 票证,但可以看到这种失败甚至与确认有效票证的用户。

如果群集名称节点高可用性配置,有必要具体在 RxHadoopMR() 和 RxHdfsFileSystem() 调用脚本以指定名称节点服务,但也适用指定活动名称节点主机名中。对于 kerberized和HA 名称节点环境,HDFS_DELEGATION_TOKEN 必须匹配的 nameservice 引用。在上面的错误,请参阅︰

信息安全。TokenCache︰ 有 hdfs://nameservice1; 的 dt种类︰ HDFS_DELEGATION_TOKEN,服务︰ ha-hdfs:nameservice1,Ident: (HDFS_DELEGATION_TOKEN 标记 242420 a377683

在这种情况下,RxHadoopMR() 和 RxHdfsFileSystem() 调用中的 nameNode/主机名参数应设置为"nameservice1"。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×