spark-submit允许我们通过--keytab和--principal选项传入Kerberos凭据。如果我尝试通过addSparkArg("--keytab",keytab)添加这些,我得到一个'--keytab' does not expect a value错误-我认为这是由于1.6.0版本缺乏支持。
有没有其他方法可以让我使用这个SparkLauncher类,通过Kerberos证书提交我的Spark作业?-我正在使用Yarn和安全的HDFS。
发布于 2016-02-21 23:20:07
KDC被描述为“在secure HDFS__上运行时,用于登录--principal的主体”。
所以它是特定于Hadoop集成的。我不确定你是否意识到这一点,因为你的帖子没有提到Hadoop、YARN或HDFS。
现在,特定于Hadoop的Spark属性在手册页面Running on YARN中进行了描述。惊喜吧!其中一些属性听起来很熟悉,比如spark.yarn.principal和spark.yarn.keytab
底线:--blahblah命令行参数只是属性的快捷方式,您可以在代码中或在"spark-defaults“配置文件中设置这些属性。
发布于 2016-05-11 22:35:26
由于Samson的回答,我想我应该添加我在Spark 1.6.1中的经历:
Kerberos你可以使用Kerberos发送代理用户信息。Kerberos你可以使用SparkLauncher.addSparkArg("--keytab", kerbKeytab)
SparkLauncher.addSparkArg("--proxy-user", userName)你只能同时使用(a)或(b),但不能同时使用--参见换句话说,要么启动的进程使用它的SparkLauncher.addSparkArg("--proxy-user", userName)上触发作业,要么启动的进程模拟最终用户在没有
SparkLauncher.addSparkArg("--principal", kerbPrincipal)作业。对于纱线,在前者的情况下,作业归自己所有,而在前者的情况下,作业归代理用户所有。https://stackoverflow.com/questions/35513772
复制相似问题