YARN客户端身份验证失败,未启用SIMPLE身份验证。可用:[TOKEN]

时间:2015-08-14 10:52:10

标签: spring authentication hadoop yarn

我已经设置了一个简单的本地PHD 3.0 Hadoop群集,并按照Spring Yarn Basic Getting Started guide

中描述的步骤进行操作

针对我的Hadoop群集运行应用程序

org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN]

以及YARN ResourceManager中的以下堆栈跟踪:

org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN]
    at org.apache.hadoop.ipc.Server$Connection.initializeAuthContext(Server.java:1554)
    at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:1510)
    at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:762)
    at org.apache.hadoop.ipc.Server$Listener$Reader.doRunLoop(Server.java:636)
    at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:607)

这可能是一个非常基本的问题。 我想在不设置任何身份验证的情况下运行YARN应用测试。

据我了解,YARN不允许SIMPLE客户端身份验证: https://issues.apache.org/jira/browse/YARN-2156

根据这个问题 How can I pass a Kerberos ticket to Spring Yarn application

我可能最终会设置Kerberos身份验证。

有没有办法在没有精心设置身份验证的情况下运行Spring YARN示例?

2 个答案:

答案 0 :(得分:2)

我的错误很简单。 我不得不添加

spring:
    hadoop:
        resourceManagerAddress: myyarnhost:8050
        resourceManagerSchedulerAddress: myyarnhost:8030

application.yml,但混淆了端口号(管理员为8030,ManagerScheduler为8050)。 那个错字导致了这种影响。

将这两个配置属性添加到入门指南可能会为下一个读者节省一些时间。

此外,要针对新安装的PHD3.0运行示例,我必须通过导出默认HADOOP_USER_NAME来修改HDFS客户端用户名:

export HADOOP_USER_NAME=hdfs

答案 1 :(得分:0)

我刚试过5节点的phd30群集,一切正常:

build.gradle中,我使用phd30包而不是vanilla(取决于hadoop 2.6.0)。在这种情况下,版本无关紧要。

compile("org.springframework.data:spring-yarn-boot:2.2.0.RELEASE-phd30")
testCompile("org.springframework.data:spring-yarn-boot-test:2.2.0.RELEASE-phd30")

src/main/resources/application.yml中,我更改了hdfs,rm和调度程序地址以匹配群集设置:

spring:
    hadoop:
        fsUri: hdfs://ambari-2.localdomain:8020
        resourceManagerAddress: ambari-3.localdomain:8050
        resourceManagerSchedulerAddress: ambari-3.localdomain:8030

然后我只是从我自己的电脑外部运行它:

$ java -jar target/gs-yarn-basic-single-0.1.0.jar

执行了一个appmaster和一个container,应用程序应该会成功。

如果它仍然不起作用那么还有别的东西。如果这有所不同,我没有部署hawk