YARN 客户端身份验证失败,SIMPLE 身份验证未启用。可用:[令牌]
YARN client authentication fails with SIMPLE authentication is not enabled. Available:[TOKEN]
我设置了一个简单的本地 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 示例而不需要详细的身份验证设置?
我刚刚尝试使用 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
如果有影响的话。
我的错误很简单。
我必须添加
spring:
hadoop:
resourceManagerAddress: myyarnhost:8050
resourceManagerSchedulerAddress: myyarnhost:8030
到 application.yml
,但混淆了端口号(8030 用于管理器,8050 用于 ManagerScheduler)。
而那个错字造成了这样的影响。
也许将这两个配置属性添加到入门指南中可以为下一位读者节省一些时间。
此外,为了 运行 针对新安装的 PHD3.0 的示例,我必须通过导出默认 HADOOP_USER_NAME
:
来修改 HDFS 客户端用户名
export HADOOP_USER_NAME=hdfs
我设置了一个简单的本地 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 示例而不需要详细的身份验证设置?
我刚刚尝试使用 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
如果有影响的话。
我的错误很简单。 我必须添加
spring:
hadoop:
resourceManagerAddress: myyarnhost:8050
resourceManagerSchedulerAddress: myyarnhost:8030
到 application.yml
,但混淆了端口号(8030 用于管理器,8050 用于 ManagerScheduler)。
而那个错字造成了这样的影响。
也许将这两个配置属性添加到入门指南中可以为下一位读者节省一些时间。
此外,为了 运行 针对新安装的 PHD3.0 的示例,我必须通过导出默认 HADOOP_USER_NAME
:
export HADOOP_USER_NAME=hdfs