Di lingkungan perusahaan R Hadoop revolusi pekerjaan mapreduce mungkin gagal dengan pengecualian Java kerberos yang terkait:
Menetapkan opsi:
15/02/03 16:59:05 WARN util. NativeCodeLoader: Tidak dapat memuat Perpustakaan hadoop asli untuk platform Anda... menggunakan builtin java kelas mana yang berlaku
DEBUG: 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 INFO hdfs. DFSClient: Dibuat HDFS_DELEGATION_TOKEN token 242420 untuk a377683 di ha-hdfs:nameservice1
15/02/03 16:59:09 INFO keamanan. TokenCache: Dt hdfs://nameservice1; mendapat Jenis: HDFS_DELEGATION_TOKEN, Layanan: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 untuk a377683)
......
15/02/03 16:59:25 INFO mapreduce. Pekerjaan: peta 0% mengurangi 0%
15/02/03 16:59:38 INFO mapreduce. Pekerjaan: Id tugas: attempt_1422647534016_1760_m_000000_0, Status: gagal
Galat: java.io.IOException: R VM keluar dengan kode keluar: 1, output:
mulai script
[1] BENAR
$fileName
[1] NA
$start
[1] 0
$length
[1] 0
15/02/03 16:59:37 PERINGATKAN keamanan. UserGroupInformation: PriviledgedActionException sebagai: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS memulai gagal [disebabkan oleh GSSException: kredensial tidak sah yang disediakan (tingkat mekanisme: gagal untuk menemukan apapun tgt Kerberos)]
15/02/03 16:59:37 PERINGATKAN ipc. Klien: Pengecualian terjadi saat menyambung ke server: javax.security.sasl.SaslException: GSS memulai gagal [disebabkan oleh GSSException: kredensial tidak sah yang disediakan (tingkat mekanisme: gagal untuk menemukan apapun tgt Kerberos)]
15/02/03 16:59:37 PERINGATKAN keamanan. UserGroupInformation: PriviledgedActionException sebagai: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS memulai gagal [disebabkan oleh GSSException: kredensial tidak sah yang disediakan (tingkat mekanisme: gagal untuk menemukan apapun tgt Kerberos)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;) galat:
java.io.IOException: gagal lokal pengecualian: java.io.IOException: javax.security.sasl.SaslException: GSS memulai gagal [disebabkan oleh GSSException: kredensial tidak sah yang disediakan (tingkat mekanisme: gagal untuk menemukan apapun tgt Kerberos)]; Rincian host: host lokal adalah: "< nama host >"; tujuan host: "< nama host >": 8020;
di org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
di org.apache.hadoop.ipc.Client.call(Client.java:1415)
di org.apache.hadoop.ipc.Client.call(Client.java:1364)
di org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
di com.sun.proxy.$Proxy14.getBlockLocations (sumber yang tidak diketahui)
di org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
di sun.reflect.NativeMethodAccessorImpl.invoke0 (asli metode)
di sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
di sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
di java.lang.reflect.Method.invoke(Method.java:606)
di org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
di org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
di com.sun.proxy.$Proxy15.getBlockLocations (sumber yang tidak diketahui)
di org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
di org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
di org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
di org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
di org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230)
di org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
pada org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
pada org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
di org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
di org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Disebabkan: java.io.IOException: javax.security.sasl.SaslException: GSS memulai gagal [disebabkan oleh GSSException: kredensial tidak sah yang disediakan (mekanisme tingkat: gagal untuk menemukan apapun tgt Kerberos)]
pada org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
di java.security.AccessController.doPrivileged (metode asli)
di javax.security.auth.Subject.doAs(Subject.java:415)
pada org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
pada org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
pada org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
di org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
pada org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
pada org.apache.hadoop.ipc.Client.call(Client.java:1382)
Pertama, mengkonfirmasi bahwa pengguna mengirimkan pekerjaan memiliki tiket kerberos saat ini dan sah tetapi dimungkinkan untuk melihat kegagalan ini bahkan dengan tiket sah dikonfirmasi.
Jika kluster yang dikonfigurasi untuk nama node ketersediaan tinggi, diperlukan khusus di RxHadoopMR() dan RxHdfsFileSystem() panggilan script untuk menetapkan nama simpul layanan walaupun menentukan nama aktif node host juga akan bekerja. Dalam hal kerberized dan HA nama node lingkungan, HDFS_DELEGATION_TOKEN harus cocok nameservice referensi. Kesalahan di atas, lihat:
INFO keamanan. TokenCache: Mendapat dt hdfs://nameservice1; Jenis: HDFS_DELEGATION_TOKEN, Layanan: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 untuk a377683
Dalam hal ini, argumen nameNode host di RxHadoopMR() dan RxHdfsFileSystem() panggilan harus ditetapkan ke "nameservice1".