我已经设置了一个简单的本地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示例?
答案 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
。