Apache spark can';t将alluxio.security.login.username添加到spark提交
我有一个spark驱动程序,我正在尝试为它设置alluxio用户 我读了这篇文章:虽然有帮助,但没有一种方法能起到作用 我的环境:Apache spark can';t将alluxio.security.login.username添加到spark提交,apache-spark,spark-submit,alluxio,Apache Spark,Spark Submit,Alluxio,我有一个spark驱动程序,我正在尝试为它设置alluxio用户 我读了这篇文章:虽然有帮助,但没有一种方法能起到作用 我的环境: - Spark-2.2 - Alluxio-1.4 - packaged jar passed to spark-submit spark submit作业正在以root用户身份(在supervisor下)运行,而alluxio仅识别此用户 在这里,我尝试添加“-daluxio.security.login.username=alluxio”: spark-de
- Spark-2.2
- Alluxio-1.4
- packaged jar passed to spark-submit
spark submit作业正在以root用户身份(在supervisor下)运行,而alluxio仅识别此用户
在这里,我尝试添加“-daluxio.security.login.username=alluxio”:
- spark-defaults.conf中的spark.driver.extraJavaOptions
- 在spark submit的命令行上(使用--conf)
- 在我的jar应用程序的sparkservices conf文件中
- 在我的jar应用程序中名为“alluxio site.properties”的新文件中
是否有人能够在spark submit作业中应用此设置?如果spark submit处于客户端模式,则应使用
--driver java options
而不是--conf spark.driver.extraJavaOptions=…
,以便使用所需选项启动驱动程序JVM。因此,您的命令类似于:
/bin/spark提交--驱动程序java选项“-daluxio.security.login.username=alluxio”…
这将使用所需的Java选项启动驱动程序
如果Spark executors也需要该选项,您可以使用以下选项进行设置:
--conf“spark.executor.extraJavaOptions=-Dalluxio.security.login.username=alluxio”
您确定使用的是spark 2.2
?您使用alluxio的确切目的是什么如果您读/写数据:我建议通过传递alluxio-master
ex:val ds=spark.read.parquet(s“alluxio://${master}:19998/${env_param}ds.parquet”)的master url
在spark.read.parquet(s“alluxio://${master}:19998/${env_param}ds.parquet”)中设置助手类。作为[dsSchema]
是的,我正在使用spark 2.2(快照)。我使用alluxio作为数据缓存机制。我已经有了一个helper类,它的功能与您提到的非常类似。问题是,当文件写入alluxio时,文件的所有者始终是提交spark作业的用户,而不是我添加到配置中的用户名。我的理解是,我应该能够通过alluxio.security.login.username配置项设置写入spark的文件的用户。出于某种原因,spark submit没有选择此配置项。我强烈怀疑(基于查看其他帖子),这里的问题与类路径以及该类路径如何与我提交给spark的jar文件交互有关。但我对这两个机构的内部运作没有很好的了解。我是否可以通过调试标志或其他方式获取更多有关spark submit如何解释jar的信息?是的,我认为你是对的,很可能是这样,如果你一直将其用作内部缓存机制禁用密码,那么你将避免拥挤,我已经构建了类似的解决方案,没有用户/通行证,并且它在prod中运行了一段时间,没有任何问题,通过vpn、安全组等从外部控制对集群的访问—感谢您的响应。通常,解决方案的第二个最好的方法是认识到你并不孤单:)