如何在向Yarn Resource Manager发送请求时创建Yarn请求令牌

时间:2014-01-28 06:58:05

标签: yarn

我正在尝试创建一个Unmanaged ApplicationMaster,并且在创建AMRMtokens时遇到问题。我深入研究了TestAMRMtokens.java测试用例,这是我想出的。 (这是scala代码)

def getNextAttemptid() : ApplicationAttemptId = {
    val t = java.lang.System.currentTimeMillis()
    ConverterUtils.toApplicationAttemptId(ConverterUtils.APPLICATION_ATTEMPT_PREFIX + "_" + t.toString() + "_0001" + "_0001")
}

appAttemptId = getNextAttemptid()

UserGroupInformation.setConfiguration(yarnConf)
val ugi = UserGroupInformation.getCurrentUser()
val tokenIdentifier = new AMRMTokenIdentifier(appAttemptId)
val secretManager = new AMRMTokenSecretManager(yarnConf)
val token: Token[_ <: TokenIdentifier] = new Token[AMRMTokenIdentifier](tokenIdentifier, secretManager)
ugi.addToken(token)

amClient = AMRMClient.createAMRMClient()
amClient.init(yarnConf)
amClient.start()
val appMasterResponse = amClient.registerApplicationMaster("localhost", 0, "")  

Yarn不喜欢这个请求并说:

2014-01-27 10:47:10,938 WARN SecurityLogger.org.apache.hadoop.ipc.Server:对于127.0.0.1:63085:null,验证失败(DIGEST-MD5:IO错误获取密码) 2014-01-27 10:47:10,938 INFO org.apache.hadoop.ipc.Server:8030上的IPC服务器监听器:来自客户端127.0.0.1的readAndProcess抛出异常[org.apache.hadoop.security.token.SecretManager $ InvalidToken:找不到密码 ApplicationAttempt appattempt_1390848430314_0001_000001]

我确信我做错了什么。是否有文档或示例代码显示如何创建令牌?我是否必须在Yarn / Hadoop配置中的某个位置设置这些用户。

配置:

  1. hadoop 2.2.0
  2. 所有服务都在侦听localhost接口 使用开箱即用的配置。没有特别的变化。

0 个答案:

没有答案