spark-submit
允许我们通过--keytab
和--principal
选项传入Kerberos凭据。如果我尝试通过addSparkArg("--keytab",keytab)
添加这些,我会收到'--keytab' does not expect a value
错误 - 我认为这是因为v1.6.0缺乏支持。
我是否有另一种方法可以使用此SparkLauncher类提交我的Spark作业,并使用Kerberos凭据? - 我使用带有安全HDFS的Yarn。
答案 0 :(得分:9)
--principal
arg被描述为&#34; Principal用于登录KDC,同时在安全HDFS &#34; 上运行。< / p>
因此它特定于Hadoop集成。我不确定你是否意识到这一点,因为你的帖子没有提到Hadoop,YARN或HDFS。
现在,手册页Running on YARN中描述了特定于Hadoop的Spark属性。惊喜!其中一些属性听起来很熟悉,例如spark.yarn.principal
和spark.yarn.keytab
底线:--blahblah
命令行参数只是快捷方式到您可以在代码中设置的属性,或者在&#34; spark-defaults&#34; conf文件。
答案 1 :(得分:3)
自Samson回答以来,我认为我添加了我在Spark 1.6.1中所经历的一切:
SparkLauncher.addSparkArg("--proxy-user", userName)
发送代理用户信息。SparkLauncher.addSparkArg("--principal", kerbPrincipal)
和SparkLauncher.addSparkArg("--keytab", kerbKeytab)