我有一个使用HBase连接的Spark Streaming应用程序(1.6) .

如果我使用 --deploy-mode client 提交应用程序,一切正常,但如果我使用 cluster 模式,应用程序将失败并返回以下错误:

WARN ipc.RpcClientImpl:连接到服务器时遇到异常:javax.security.sasl.SaslException:GSS启动失败[由GSS异常引起:未提供有效凭据(机制级别:无法找到任何Kerberos tgt)] ERROR ipc.RpcClientImpl :SASL身份验证失败 . 最可能的原因是凭据丢失或无效 . 考虑'kinit' . javax.security.sasl.SaslException:GSS启动失败[由GSSException引起:未提供有效凭据(机制级别:无法找到任何Kerberos tgt)]

在应用程序内部,对于每个已处理的RDD,我检查TGT并最终从keytab重新登录,使用

UserGroupInformation.getLoginUser.checkTGTAndReloginFromKeytab()

我还使用 spark.driver.extraClassPath 选项传递包含hdfs / hbase / core-site.xml文件的目录 .

有人可以帮帮我吗?