【发布时间】:2016-04-18 06:05:02
【问题描述】:
目前我正在使用 cloudera hadoop 单节点集群(已启用 kerberos。)
在客户端模式下我使用以下命令
kinit
spark-submit --master yarn-client --proxy-user cloudera examples/src/main/python/pi.py
这很好用。在集群模式下,我使用以下命令(没有完成 kinit,缓存中没有 TGT)
spark-submit --principal <myprinc> --keytab <KT location> --master yarn-cluster examples/src/main/python/pi.py
也可以正常工作。但是当我在集群模式下使用以下命令时(没有完成 kinit 并且缓存中没有 TGT)
spark-submit --principal <myprinc> --keytab <KT location> --master yarn-cluster --proxy-user <proxy-user> examples/src/main/python/pi.py
引发以下错误
<proxy-user> tries to renew a token with renewer <myprinc>
我猜在集群模式下,spark-submit 不会在客户端机器中查找 TGT……它会将“keytab”文件传输到集群,然后启动 spark 作业。那么为什么指定“--proxy-user”选项在“yarn-cluster”模式下提交时会查找TGT。我是不是做错了什么。
【问题讨论】:
-
您好,您找到解决方案了吗?
-
@Benjamin。唯一的解决办法就是修改spark代码,结果很痛苦。
标签: hadoop apache-spark hadoop-yarn