Trong một môi trường doanh nghiệp R Hadoop/cách mạng, công việc mapreduce có thể không thành công với ngoại lệ Java kerberos liên quan:
Đặt các tuỳ chọn:
15/02/03 16:59:05 util. cảnh báo NativeCodeLoader: Không thể nạp thư viện hadoop riêng cho nền tảng của bạn... sử dụng builtin java lớp khi áp dụng Gỡ lỗi: 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 thông tin hdfs. DFSClient: Tạo mã thông báo HDFS_DELEGATION_TOKEN 242420 cho a377683 trên ha-hdfs:nameservice1 15/02/03 16:59:09 thông tin bảo mật. TokenCache: Có dt cho hdfs://nameservice1; Loại: HDFS_DELEGATION_TOKEN, Dịch vụ: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN thẻ 242420 cho a377683) ...... 15/02/03 16:59:25 thông tin mapreduce. Công việc: đồ 0% giảm 0% 15/02/03 16:59:38 thông tin mapreduce. Công việc: Công việc Id: attempt_1422647534016_1760_m_000000_0, trạng thái: thất bại Lỗi: java.io.IOException: R VM rời với mã thoát: 1, đầu ra: tập lệnh khởi động [1] ĐÚNG $fileName [1] NA $start [1] 0 $length [1] 0 15/02/03 16:59:37 cảnh báo bảo mật. UserGroupInformation: PriviledgedActionException là: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS bắt thất bại [do GSSException: không có chứng chỉ hợp lệ được cung cấp (chế mức: không tìm thấy bất kỳ tgt Kerberos)] 15/02/03 16:59:37 ipc cảnh báo. Khách hàng: Ngoại lệ xảy ra khi kết nối với máy chủ: javax.security.sasl.SaslException: GSS bắt thất bại [do GSSException: không có chứng chỉ hợp lệ được cung cấp (chế mức: không tìm thấy bất kỳ tgt Kerberos)] 15/02/03 16:59:37 cảnh báo bảo mật. UserGroupInformation: PriviledgedActionException là: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS bắt thất bại [do GSSException: không có chứng chỉ hợp lệ được cung cấp (chế mức: không tìm thấy bất kỳ tgt Kerberos)] hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;) lỗi: java.io.IOException: không thể ngoại lệ địa phương: java.io.IOException: javax.security.sasl.SaslException: GSS bắt thất bại [do GSSException: không có chứng chỉ hợp lệ được cung cấp (chế mức: không tìm thấy bất kỳ tgt Kerberos)]; Lưu trữ thông tin chi tiết: địa phương chủ là: "< hostname >"; máy chủ đích: "< hostname >": 8020; tại org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764) tại org.apache.hadoop.ipc.Client.call(Client.java:1415) tại org.apache.hadoop.ipc.Client.call(Client.java:1364) tại org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) tại com.sun.proxy.$Proxy14.getBlockLocations (không rõ nguồn) tại org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246) tại sun.reflect.NativeMethodAccessorImpl.invoke0 (phương pháp riêng) tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) tại java.lang.reflect.Method.invoke(Method.java:606) tại org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) tại org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) tại com.sun.proxy.$Proxy15.getBlockLocations (không rõ nguồn) tại org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179) tại org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169) tại org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159) tại org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270) tại org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237) tại org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230) tại org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457) tại org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301) tại org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297) tại org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) tại org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297) Gây ra bởi: java.io.IOException: javax.security.sasl.SaslException: GSS bắt thất bại [do GSSException: không có chứng chỉ hợp lệ được cung cấp (chế mức: không tìm thấy bất kỳ tgt Kerberos)] tại org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679) tại java.security.AccessController.doPrivileged (phương pháp riêng) tại javax.security.auth.Subject.doAs(Subject.java:415) tại org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642) tại org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642) tại org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725) tại org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) tại org.apache.hadoop.ipc.Client.getConnection(Client.java:1463) tại org.apache.hadoop.ipc.Client.call(Client.java:1382)Trước tiên, xác nhận rằng người dùng gửi công việc có một vé kerberos hiện tại và giá trị nhưng có thể thấy lỗi này thậm chí có một vé xác nhận hợp lệ.
Nếu cụm được cấu hình để tên nút cao, cần phải được cụ thể trong RxHadoopMR() và RxHdfsFileSystem() gọi lệnh để chỉ định tên nút dịch vụ khi xác định tên máy chủ nút tên hoạt động cũng sẽ hoạt động. Trong trường hợp kerberized và Hà tên nút môi trường, HDFS_DELEGATION_TOKEN phải khớp với tham khảo nameservice. Lỗi trên, hãy xem:Thông tin bảo mật. TokenCache: Có dt cho hdfs://nameservice1; Loại: HDFS_DELEGATION_TOKEN, Dịch vụ: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN thẻ 242420 cho a377683
Trong trường hợp này, các đối số nameNode/hostName các cuộc gọi RxHadoopMR() và RxHdfsFileSystem() phải được đặt "nameservice1".