Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Kerberos的sparky-livy连接_R_Kerberos_Sparklyr_Livy - Fatal编程技术网

使用Kerberos的sparky-livy连接

使用Kerberos的sparky-livy连接,r,kerberos,sparklyr,livy,R,Kerberos,Sparklyr,Livy,我可以通过Livy服务从远程Rstudio桌面(windows)连接到非Kerberized spark cluster,而不会出现问题 但是,如果启用了Kerberos安全性,则连接将失败: library(sparklyr) sc <- spark_connect("http://host:8998", method = "livy") 使用Sparkyr_0.5.6-9002和MIT Kerberos for Windows进行身份验证 另一方面,从集群内部(即通过curl)连接成

我可以通过Livy服务从远程Rstudio桌面(windows)连接到非Kerberized spark cluster,而不会出现问题

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

library(sparklyr)
sc <- spark_connect("http://host:8998", method = "livy")
使用Sparkyr_0.5.6-9002和MIT Kerberos for Windows进行身份验证

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

我做错了什么?这种连接需要哪些附加设置

livy_config(…,用户名,密码)
config似乎只形成了一个
Authorization:Basic…
头,尽管我怀疑这里应该需要一个
agreement
Kerberos
(?)

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


注意:在与授权用户一起从shell调用
kinit
”后,RStudio服务器(web)返回相同的错误

我参加聚会要迟到了,但我也遇到了同样的问题,终于解决了。这可能对其他人有用

当然,这在很大程度上取决于集群配置。我使用的是SparkyR
1.5.0和MIT Kerberos for Windows,直接连接到运行在Cloudera HDP集群(Spark 2.3.0)中的Livy(无Knox代理)。在我的例子中,需要一个额外的HTTP头,请参见下文

如果您的集群不允许传出internet连接,您还应该首先将Sparkyr服务器端jar保存在HDFS上(默认情况下,它是从GitHub自动下载的)

库(年)
SPARK_VERSION=“2.3.0”
lcfg=livy_配置(
协商=正确,
自定义标题=列表(“X-request-By”=“”)
lcfg$sparklyr.livy.jar=”hdfs:///path/to/sparklyr-2.3-2.11.jar"
sc=火花塞连接(
主人=”http://livyserver:8999“,method=“livy”,
版本=SPARK\u版本,
配置=lcfg)

对于调试,第一步可能是在集群外测试Livy设置,但不使用R:请参见应为启动配置Livy服务器,身份验证如下。在Livy.conf文件中,应将
Livy.server.launch.kerberos.principal=XXX
Livy.server.launch.kerberos.keytab=XXX
livy.server.auth.kerberos.principal='XXX',
livy.server.auth.kerberos.keytab=spnego keytab`。请参考@KangrokLee,谢谢您的回复!livy已正确配置(我可能忘了在文章中提到,将进行编辑),您建议的设置已设置,并且livy在集群内工作正常(即从RStudio服务器或curl)。试图从Windows上的远程Rstudio桌面进行连接时,出现了上述问题。您是否可以正常工作?@ansek否,不是直接通过Kerberos。然而,解决办法是通过连接。通过这种方式,Kerberos由集群内的Knox处理,而从远程Rstudio桌面客户端只需要
Basic
身份验证(这是通过SSL进行的,所以看起来不太糟糕)。请注意,在我的情况下,它还需要对
Sparkyr
的源代码进行一些小的调整,但不确定是否使用最新的更新进行了修复。看起来很有希望,我一有机会就会尝试!请注意,您是否可以直接访问Kerberos服务器?我后来注意到,通过ssh隧道(主机文件中有正确的fqdn)使用Kerberos时会出现许多问题,这有时会导致GSS协商出现问题。我使用的是VPN,没有ssh隧道,因此无法说明有关该问题的任何信息
Error in livy_validate_http_response("Failed to create livy session",  : 
Livy operation is unauthorized. Try spark_connect with config = livy_config()
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)