java.io.IOException:登录失败:没有为hadoop\u simple配置LoginModule

java.io.IOException:登录失败:没有为hadoop\u simple配置LoginModule,hadoop,talend,Hadoop,Talend,我正试着从TAC开始我的第一份Talend工作。 我试图从标准作业中调用大数据批处理。 它在本地集群上运行良好,但是在从TAC运行相同的作业时,我遇到了这个错误 moment;pid;root_pid;father_pid;project;job;context;priority;type;origin;message;code 2017-02-13 07:54:29;20170213075427_jnxLB;20170213075427_jnxLB;20170213075427_jnxLB;E

我正试着从TAC开始我的第一份Talend工作。 我试图从标准作业中调用大数据批处理。 它在本地集群上运行良好,但是在从TAC运行相同的作业时,我遇到了这个错误

moment;pid;root_pid;father_pid;project;job;context;priority;type;origin;message;code
2017-02-13 07:54:29;20170213075427_jnxLB;20170213075427_jnxLB;20170213075427_jnxLB;ELT_3_0;CustomerDataLoad;hadoop;6;Java Exception;tRunJob_2;java.lang.RuntimeException:Child job returns 1. It doesn't terminate normally.
java.io.IOException: failure to login: No LoginModules configured for hadoop_simple
    at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:724)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:676)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:560)
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2784)
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2776)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2642)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:404)
    at org.apache.hadoop.fs.FileSystem.getLocal(FileSystem.java:375)
    at org.apache.hadoop.util.GenericOptionsParser.validateFiles(GenericOptionsParser.java:392)
    at org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:288)
    at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:479)
    at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:170)
    at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
    at elt_3_0.hbase_customertable_0_1.Hbase_customertable.runJobInTOS(Hbase_customertable.java:38664)
    at elt_3_0.hbase_customertable_0_1.Hbase_customertable.main(Hbase_customertable.java:38642)
Caused by: javax.security.auth.login.LoginException: No LoginModules configured for hadoop_simple
    at javax.security.auth.login.LoginContext.init(LoginContext.java:272)
    at javax.security.auth.login.LoginContext.<init>(LoginContext.java:389)
    at org.apache.hadoop.security.UserGroupInformation.newLoginContext(UserGroupInformation.java:450)
    at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:696)
    ... 15 more
时刻;pid;根pid;父亲;项目工作;上下文优先;类型;起源;消息代码
2017-02-13 07:54:29;20170213075427_jnxLB;20170213075427_jnxLB;20170213075427_jnxLB;英语三级;客户数据;hadoop;6.Java异常;tRunJob_2;java.lang.RuntimeException:子作业返回1。它不会正常终止。
java.io.IOException:登录失败:没有为hadoop\u simple配置LoginModule
位于org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:724)
位于org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:676)
位于org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:560)
位于org.apache.hadoop.fs.FileSystem$Cache$Key.(FileSystem.java:2784)
位于org.apache.hadoop.fs.FileSystem$Cache$Key.(FileSystem.java:2776)
位于org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2642)
位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:404)
位于org.apache.hadoop.fs.FileSystem.getLocal(FileSystem.java:375)
位于org.apache.hadoop.util.GenericOptions Parser.validateFiles(GenericOptions Parser.java:392)
位于org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:288)
位于org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:479)
位于org.apache.hadoop.util.GenericOptionsParser(GenericOptionsParser.java:170)
位于org.apache.hadoop.util.GenericOptionsParser(GenericOptionsParser.java:153)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
在elt_3_0.hbase_customertable_0_1.hbase_customertable.runjobtos(hbase_customertable.java:38664)
在elt_3_0.hbase_customertable_0_1.hbase_customertable.main(hbase_customertable.java:38642)
原因:javax.security.auth.login.login异常:没有为hadoop\u simple配置LoginModule
位于javax.security.auth.login.LoginContext.init(LoginContext.java:272)
位于javax.security.auth.login.LoginContext.(LoginContext.java:389)
位于org.apache.hadoop.security.UserGroupInformation.newLoginContext(UserGroupInformation.java:450)
位于org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:696)
... 还有15个
我是否缺少任何依赖项? 感谢您的帮助。

解决了这个问题, 通过在JVM道具中添加属性“
-Djava.security.auth.login.config
”,并将该属性指向/opt/mapr/conf/mapr.login.conf。 因此,在mapr.login.conf中有一个hadoop登录类

/**
 * simple login, just get OS creds
 */
hadoop_simple {
  org.apache.hadoop.security.login.GenericOSLoginModule required;
  org.apache.hadoop.security.login.HadoopLoginModule required;
};

它使用户能够将应用程序提交到服务器,服务器上包含所有适当的模块。

由于Talend是基于开源构建的,因此一些问题是基于底层技术的。这里有一个在Talend世界之外的帖子,有人解决了同样的问题。我希望这对我看到这个链接有所帮助,@ELaRocheok,重点是这个问题本身可能与Talend无关,因此通过搜索底层技术与Talend特定技术,您可能会更幸运地解决它。