gpt4 book ai didi

r - sparklyr 与 Kerberos 的联系

转载 作者:行者123 更新时间:2023-12-03 17:16:28 25 4
gpt4 key购买 nike

我可以通过 Livy 服务连接到非 Kerberized Spark 集群,而不会出现远程 Rstudio 桌面(Windows)的问题。

但是,如果启用了 Kerberos 安全性,则连接会失败:

library(sparklyr)
sc <- spark_connect("http://host:8998", method = "livy")

返回
Error in livy_validate_http_response("Failed to create livy session",  : 
Livy operation is unauthorized. Try spark_connect with config = livy_config()

使用 sparklyr_0.5.6-9002和 MIT Kerberos for Windows 进行身份验证。

另一方面,从集群内部(即通过 curl )连接是成功的。

我究竟做错了什么?这种连接需要哪些额外的设置?
livy_config(..., username, password) config 似乎只形成了 Authorization: Basic ... header ,虽然在这里我怀疑是 NegotiateKerberos (?) 应该是必需的。

我还缺少其他可能的配置吗?

注意:在 kinit 之后从 RStudio Server (web) 返回相同的错误'ing 从具有授权用户的外壳。

最佳答案

我参加聚会迟到了,但我遇到了同样的问题,终于能够解决它。这可能对其他人有用。
当然,这可能很大程度上取决于您的集群配置。我正在使用 sparklyr 1.5.0 和 MIT Kerberos for Windows,直接连接到在 Cloudera HDP 集群 (Spark 2.3.0) 中运行的 Livy(无 Knox 代理)。在我的情况下,需要一个额外的 HTTP header ,见下文。
如果您的集群不允许传出 Internet 连接,您还应该首先将 SparklyR 服务器端 jar 保存在 HDFS 上(默认情况下,它会自动从 GitHub 下载)。

library(sparklyr)
SPARK_VERSION = "2.3.0"

lcfg = livy_config(
negotiate = TRUE,
custom_headers = list("X-Requested-By"="<user_name>"))
lcfg$sparklyr.livy.jar = "hdfs:///path/to/sparklyr-2.3-2.11.jar"

sc = spark_connect(
master = "http://livyserver:8999", method = "livy",
version = SPARK_VERSION,
config = lcfg)
对于调试,第一步可能是在集群外部但没有 R 的情况下测试您的 Livy 设置:请参阅 https://livy.apache.org/examples/

关于r - sparklyr 与 Kerberos 的联系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44717794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com