ในสภาพแวดล้อมแบบองค์กร R Hadoop/Revolution, mapreduce งานอาจล้มเหลว ด้วยข้อยกเว้นที่เกี่ยวข้องกับ kerberos Java:
การตั้งค่าตัวเลือก:
วันที่ 02/15/03 16:59:05 util. เตือน NativeCodeLoader: ไม่สามารถโหลดไลบรารี hadoop "บ้านเกิด"สำหรับแพลตฟอร์มของคุณ...ใช้ java นำคลาสระเกี่ยวข้อง
ตรวจแก้จุดบกพร่อง: 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]
วันที่ 02/15/03 16:59:09 hdfs ข้อมูล DFSClient: สร้างโทเค็น HDFS_DELEGATION_TOKEN 242420 สำหรับ a377683 บน ha-hdfs:nameservice1
วันที่ 02/15/03 16:59:09 ความปลอดภัยของข้อมูล TokenCache: dt สำหรับ hdfs://nameservice1; ที่ได้รับ ชนิด: HDFS_DELEGATION_TOKEN การบริการ: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN โทเค็น 242420 สำหรับ a377683)
......
วันที่ 02/15/03 16:59:25 mapreduce ข้อมูล งาน: แผนผัง 0% ลด 0%
วันที่ 02/15/03 16:59:38 mapreduce ข้อมูล งาน: งาน Id: attempt_1422647534016_1760_m_000000_0 สถานะ: ล้มเหลว
ข้อผิดพลาด: java.io.IOException: R VM จบการทำงานกับรหัสจบการทำงาน: 1 ผลผลิต:
เริ่มการทำงานของสคริปต์
[1] เป็นจริง
$fileName
[1] NA
$start
[1] 0
$length
[1] 0
วันที่ 02/15/03 16:59:37 ความปลอดภัยเตือน UserGroupInformation: PriviledgedActionException เป็น: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): GSS เริ่มต้นล้มเหลว [เกิดจาก GSSException: ระบุข้อมูลประจำตัวไม่ถูกต้อง (ระดับกลไก: ล้มเหลวในการค้นหาใด ๆ tgt Kerberos)]
วันที่ 02/15/03 16:59:37 ipc เตือน ไคลเอ็นต์: ข้อยกเว้นพบขณะเชื่อมต่อไปยังเซิร์ฟเวอร์: javax.security.sasl.SaslException: GSS เริ่มต้นล้มเหลว [เกิดจาก GSSException: ระบุข้อมูลประจำตัวไม่ถูกต้อง (ระดับกลไก: ล้มเหลวในการค้นหาใด ๆ tgt Kerberos)]
วันที่ 02/15/03 16:59:37 ความปลอดภัยเตือน UserGroupInformation: PriviledgedActionException เป็น: a377683 cause:java.io.IOException (auth:KERBEROS): javax.security.sasl.SaslException: GSS เริ่มต้นล้มเหลว [เกิดจาก GSSException: ระบุข้อมูลประจำตัวไม่ถูกต้อง (ระดับกลไก: ล้มเหลวในการค้นหาใด ๆ tgt Kerberos)]
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: ระบุข้อมูลประจำตัวไม่ถูกต้อง (ระดับกลไก: ล้มเหลวในการค้นหาใด ๆ tgt Kerberos)]; รายละเอียดการโฮสต์: โฮสต์ท้องถิ่นเป็น: "<ชื่อโฮสต์ >" โฮสต์ปลายทางคือ: "<ชื่อโฮสต์ >": 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: ระบุข้อมูลประจำตัวไม่ถูกต้อง (ระดับกลไก: ล้มเหลวในการค้นหาใด ๆ tgt Kerberos)]
ใน 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: dt สำหรับ hdfs://nameservice1; ที่ได้รับ ชนิด: HDFS_DELEGATION_TOKEN การบริการ: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN โทเค็น 242420 สำหรับ a377683
ในกรณีนี้ nameNode/ชื่อ โฮสต์อาร์กิวเมนต์ในการเรียก RxHadoopMR() และ RxHdfsFileSystem() ควรถูกกำหนดเป็น "nameservice1"