في بيئة "مؤسسة البحث والتطوير" Hadoop/الثورة، قد تفشل مهمة mapreduce مع استثناء المتعلقة ب kerberos Java:
خيارات الإعداد:
15/02/03 16:59:05 util. التحذير ناتيفيكوديلوادير: غير قادر على تحميل مكتبة hadoop الأصلي للنظام الأساسي الخاص بك... استخدام java مدمج فئات حسب الاقتضاء تصحيح: اللارجس = [-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_DELEGATION_TOKEN 242420 ل a377683 على ها-hdfs:nameservice1 15/02/03 16:59:09 معلومات الأمان. توكينكاتشي: حصلت dt ل hdfs://nameservice1; النوع: HDFS_DELEGATION_TOKEN، خدمة: ها-hdfs:nameservice1، التعريف: (رمز HDFS_DELEGATION_TOKEN 242420 ل a377683) ...... 15/02/03 16:59:25 mapreduce المعلومات. الوظيفة: تقليل خريطة % 0 0% 15/02/03 16:59:38 معلومات mapreduce. مهمة: معرف المهمة: attempt_1422647534016_1760_m_000000_0، الحالة: فشل خطأ: java.io.IOException: إنهاء R VM برمز إنهاء: 1، إخراج: بدء تشغيل البرنامج النصي [1] TRUE $fileName [1] NA $start [1] 0 $length [1] 0 15/02/03 16:59:37 التحذير الأمني. أوسيرجروبينفورميشن: بريفيليدجيداكتيونيكسسيبشن ك: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): فشل تجهيز جهاز الأمن العام [الناجمة عن جسيكسسيبشن: لم تقدم بيانات اعتماد صالحة (مستوى إليه: فشل في العثور على أي tgt Kerberos)] 15/02/03 16:59:37 ipc التحذير. العميل: تمت مصادفة استثناء أثناء الاتصال بالخادم: javax.security.sasl.SaslException: فشل تجهيز جهاز الأمن العام [الناجمة عن جسيكسسيبشن: لم تقدم بيانات اعتماد صالحة (مستوى إليه: فشل في العثور على أي tgt Kerberos)] 15/02/03 16:59:37 التحذير الأمني. أوسيرجروبينفورميشن: بريفيليدجيداكتيونيكسسيبشن ك: a377683 cause:java.io.IOException (auth:KERBEROS): javax.security.sasl.SaslException: فشل تجهيز جهاز الأمن العام [الناجمة عن جسيكسسيبشن: لم تقدم بيانات اعتماد صالحة (مستوى إليه: فشل في العثور على أي 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: فشل تجهيز جهاز الأمن العام [الناجمة عن جسيكسسيبشن: لم تقدم بيانات اعتماد صالحة (مستوى إليه: فشل في العثور على أي 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. < الأولية > (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) التي تسببها: java.io.IOException: javax.security.sasl.SaslException: فشل تجهيز جهاز الأمن العام [الناجمة عن جسيكسسيبشن: لم تقدم بيانات اعتماد صالحة (مستوى إليه: فشل في العثور على أي 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() في البرنامج النصي لتحديد اسم عقده الخدمة على الرغم من تحديد اسم المضيف عقده اسم نشط ستعمل أيضا. في حالة كيربيريزيد هكتار اسم عقده بيئة، يجب أن تطابق HDFS_DELEGATION_TOKEN المرجع المتحولات. في خطأ أعلاه، راجع:معلومات الأمان. توكينكاتشي: حصلت dt ل hdfs://nameservice1; النوع: HDFS_DELEGATION_TOKEN، خدمة: ها-hdfs:nameservice1، التعريف: (HDFS_DELEGATION_TOKEN رمز 242420 ل a377683
في هذه الحالة، يجب تعيين الوسائط نامينودي/اسم المضيف في المكالمات RxHadoopMR() و RxHdfsFileSystem() إلى "nameservice1".