首先说下出现这个错误的环境配置吧:aix小型机安装tomcat,(配有ibm专有的jdk,1.6),hadoop(1.0.4)集群,linux:redhat,jdk是oracle的1.6。出现上面的错误信息;上网查了下,发现也有相同的错误出现:http://mail-archives.apache.org/mod_mbox/hadoop-user/201208.mbox/%3COF2E935E40.56BFE6E6-ON85257A64.004BB391-85257A64.004BF20E@us.ibm.com%3E,上面说是大概意思是IBM的jdk有特殊的LoginModules,可能和hadoop的不匹配,可以看到下面的
UserGroupInformation.java中的源代码:
private static String getOSLoginModuleName() {
262 if (System.getProperty("java.vendor").contains("IBM")) {
263 return windows ? "com.ibm.security.auth.module.NTLoginModule"
264 : "com.ibm.security.auth.module.LinuxLoginModule";
265 } else {
266 return windows ? "com.sun.security.auth.module.NTLoginModule"
267 : "com.sun.security.auth.module.UnixLoginModule";
268 }
269 }
270
private static Class<? extends Principal> getOsPrincipalClass() {
274 ClassLoader cl = ClassLoader.getSystemClassLoader();
275 try {
276 if (System.getProperty("java.vendor").contains("IBM")) {
277 if (windows) {
278 return (Class<? extends Principal>)
279 cl.loadClass("com.ibm.security.auth.UsernamePrincipal");
280 } else {
281 return (Class<? extends Principal>)
282 (System.getProperty("os.arch").contains("64")
283 ? cl.loadClass("com.ibm.security.auth.UsernamePrincipal")
284 : cl.loadClass("com.ibm.security.auth.LinuxPrincipal"));
285 }
286 } else {
287 return (Class<? extends Principal>) (windows
288 ? cl.loadClass("com.sun.security.auth.NTUserPrincipal")
289 : cl.loadClass("com.sun.security.auth.UnixPrincipal"));
290 }
291 } catch (ClassNotFoundException e) {
292 LOG.error("Unable to find JAAS classes:" + e.getMessage());
293 }
294 return null;
295 }
上面红色字体的部分在ibm的jdk里面并没有发现,所以直接报错说那个LinuxLoginModule找不到,那么怎么办呢?可以考虑下把这两个类替换掉:
在ibm jdk的api中:
可以看到这两个类:
直接用上面的两个类去替换前面红色部分的类就可以了。
替换完成之后要怎么做呢?
1.使用linux系统,在eclipse的java工程中导入hadoop的所有包,并把上面的文件放入src下面,直接保存;
2. 打开bin下面的文件,查找到 UserLoginInformation开头的类,使用linux系统的工具把hadoop-core-1.0.4.jar里面相应的类替换掉;
3. 把hadoop集群所有的hadoop-core-1.0.4.jar用上面得到的替换掉;
做完上面的,基本应该就ok了,这样再测试一下,看是否ok。
最后,声明一下,这个还没有经过博主测试,只是一个想法。
分享,快乐,成长
转载请注明出处:http://blog.csdn.net/fansy1990
分享到:
相关推荐
Caused by: java.net.UnknownHostException: openapi.alipay.com
Caused by: android.system.ErrnoException: write failed: ENOSPC (No space lef
Caused by: java.lang.OutOfMemoryError: PermGen space解决方案, avax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.servlet.JspServlet.service(JspServlet.java...
ORA-29532: Java call terminated by uncaught Java exception: javax.mail.MessagingException: IOException while sending message; nested exception is: javax.activation.UnsupportedDataTypeException: no ...
Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system....
主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
3、Can’t connect to local MySQL server through socket ‘/Data/mydata/mysql.sock’ socket文件目录不对应导致的问题 4、今天要说的就是 没有打开only_full_group_by Cause:...
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 错误,产生原因是缺少javax.xml.bind.DatatypeConverter
主要介绍了Caused by: android.os.NetworkOnMainThreadException错误解决办法,本文提供了2种解决方法,需要的朋友可以参考下
异常:Caused by: java.lang.IllegalStateException: Method has too many Body parameters Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract ...
javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/
NULL 博文链接:https://redarmychen.iteye.com/blog/463864
整个系统都没有错误,但是在发布运行后,控制台上却抛出了这样的异常: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204) at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:688) at java.lang.ClassLoader.loadClass(ClassLoader.java:667) at...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/...
对接微信接口中因为jdk8解密长度不够 报错 java.security.InvalidKeyException: Illegal key size 替换路径:(记得备份原有的文件) C:\Program Files\Java\jdk1.8.0_131\jre\lib\security
java.security.InvalidKeyException:illegal Key Size 微信开发过程中,JDK6的版本
复制并覆盖%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar