标签: livy

与 Kerberos 的闪亮连接

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

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

library(sparklyr)
sc <- spark_connect("http://host:8998", method = "livy")
Run Code Online (Sandbox Code Playgroud)

回来

Error in livy_validate_http_response("Failed to create livy session",  : 
Livy operation is unauthorized. Try spark_connect with config = livy_config()
Run Code Online (Sandbox Code Playgroud)

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

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

我究竟做错了什么?这种连接需要哪些额外设置?

livy_config(..., username, password)配置似乎只形成一个Authorization: Basic ...头,但这里笔者还是怀疑NegotiateKerberos(?)应该不是必需的。

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

注意:kinit在使用授权用户从 shell 运行后,从 RStudio Server (web) 返回相同的错误。

kerberos r sparklyr livy

5
推荐指数
1
解决办法
1140
查看次数

错误:Apache Livy 中的“本地路径______无法添加到用户会话”

我正在尝试将 Python 文件提交给 REST API,但它总是给出错误。我正在使用本地模式,我正在运行的命令如下:

$curl -X POST --data '{"file":"/Users/neha/Desktop/spark_project/examples/spark_livy_ex3.py"}' -H "Content-Type: application/json" localhost:8998/batches

"requirement failed: Local path /Users/neha/Desktop/spark_project/examples/spark_livy_ex3.py cannot be added to user sessions."
Run Code Online (Sandbox Code Playgroud)

从这个链接https://groups.google.com/a/cloudera.org/forum/#!topic/livy-user/mm-XEhANDHU我发现我必须通过修改 livy.conf 来修改 livy.conf将 /Users/neha/Desktop/spark_project/examples/ 目录添加到 livy.file.local-dir-whitelist。我再次使用上面的 curl 命令运行代码,但现在我也遇到了同样的错误。

请注意,'spark_livy_ex3.py' 是我要运行的 python 文件。

我该如何解决这个问题?

python apache-spark livy

5
推荐指数
0
解决办法
565
查看次数

Livy REST API:GET 请求有效,但 POST 请求失败并显示“需要 401 身份验证”

我在https://github.com/apache/incubator-livy/blob/master/docs/rest-api.md 上为 Livy 的 REST API 的部分编写了一个 Java 客户端。客户端使用 Spring 的RestTemplate.getForObject()andpostForObject()分别发出 GET 和 POST 请求。Livy 服务器使用 Kerberos 进行保护。

GET /sessionsGET /batches请求工作正常:我得到了 Livy 的预期响应。但是POST /sessionsPOST /batches请求都失败了:

org.springframework.web.client.HttpClientErrorException: 401 Authentication required
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么 GET 请求成功时 POST 请求失败?我的代码对身份验证没有做任何明确的事情。

我已经尝试通过 Kerberos 以几个不同的用户身份进行身份验证,但我总是遇到这个问题。Livy 是否需要额外的配置来允许来自特定用户的 POST 请求(因为 POST 请求有效地创建了交互式会话或将作业提交给 Spark)?

kerberos spring-rest livy

5
推荐指数
1
解决办法
1650
查看次数

错误的请求:“请求失败:会话未激活。” 在Apache livy中

码:

public class PiApp
{

public static void main(String[] args) throws Exception {

    LivyClient client = new LivyClientBuilder().setURI(new URI("http://localhost:8998/")).build();

    try {
        System.out.println("Uploading livy-example jar to the SparkContext...");
        for (String s : System.getProperty("java.class.path").split(File.pathSeparator)) {
            System.out.println("Enter to for");
            if (new File(s).getName().startsWith("livy_1")) {
                System.out.println("Enter to if");
                client.uploadJar(new File(s)).get();
                break;
            }
        }

        final int slices = Integer.parseInt("2");
        System.out.println("submitting");
        try {
            double pi = client.submit(new PiJob(slices)).get();

            System.out.println("Pi is roughly " + pi);
        } catch (Exception e) {
            System.out.println("Enter to catch");
            System.out.println(e.getMessage());
        }
    } finally { …
Run Code Online (Sandbox Code Playgroud)

java apache livy

5
推荐指数
0
解决办法
628
查看次数

如何在同一AWS EMR集群中同时运行Spark作业?

是否可以在同一AWS EMR集群中同时提交和运行Spark作业?如果是,那么请您详细说明一下?

amazon-web-services amazon-emr hadoop-yarn apache-spark livy

5
推荐指数
1
解决办法
719
查看次数

在 Livy PySpark 的 HDFS 中存储 Python 包

我通过 Livy 向集群提交 PySpark 作业。目前,NumPy、Pandas、Keras 等依赖的 python 包已安装在所有数据节点上。想知道是否所有这些包都可以集中存储在 HDFS 中,以及如何配置 Livy、PySpark 从 HDFS 而不是从该数据节点读取这些包。

python apache-spark pyspark livy

5
推荐指数
0
解决办法
233
查看次数

livy.rsc.jars 和 livy.repl.jars 有什么区别?

我正在使用 Sparkmagic 内核 (spark-scala) 开发 Jupyter Notebooks,该内核依赖 Apache Livy 来运行 Spark 作业。

我目前正在尝试了解使用用户提供的依赖项(即 jar)创建会话的选项。

我知道在 Jupyter 中我可以做类似的事情:

%%configure -f
{"kind": "spark", 
 "executorMemory": "2G", 
 "executorCores": 4, 
 "jars": ["/path/to/library1.jar",
         "/path/to/library2"]}
Run Code Online (Sandbox Code Playgroud)

但后来我注意到 中的其他选项LIVY_HOME/conf/livy.conf,特别是livy.resc.jarslivy.repl.jars但我相信这些描述不是很具体,或者我无法找到它们之间的实际区别。

我猜如果他们分开是为了某些事情,但到底是什么?

apache-spark livy

5
推荐指数
0
解决办法
937
查看次数

Spark节点继续打印GC(分配失败),并且没有任务运行

我正在使用Scala运行Spark作业,但由于工作节点无法执行和执行任务而陷入困境。

目前,我将此提交给Livy,后者将使用以下配置将其提交给我们的Spark集群,该集群具有8个内核和12GB RAM:

data={
    'file': bar_jar.format(bucket_name),
    'className': 'com.bar.me',
    'jars': [
        common_jar.format(bucket_name),
    ],
    'args': [
        bucket_name,
        spark_master,
        data_folder
    ],
    'name': 'Foo',
    'driverMemory': '2g',
    'executorMemory': '9g',
    'driverCores': 1,
    'executorCores': 1,
    'conf': {
        'spark.driver.memoryOverhead': '200',
        'spark.executor.memoryOverhead': '200',
        'spark.submit.deployMode': 'cluster'
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,节点日志将被不断填充:

2019-03-29T22:24:32.119+0000: [GC (Allocation Failure) 2019-03-29T22:24:32.119+0000:
[ParNew: 68873K->20K(77440K), 0.0012329 secs] 257311K->188458K(349944K), 
0.0012892 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Run Code Online (Sandbox Code Playgroud)

问题在于下一个阶段和任务没有执行,因此行为是出乎意料的。 任务无法运行

hadoop scala apache-spark livy

5
推荐指数
2
解决办法
1618
查看次数

如何将自定义 JAR 中的功能添加到 EMR 集群?

我使用 Spark 和 Livy 在 AWS 上创建了一个 EMR 集群。我提交了一个带有一些附加库(例如自定义格式的数据源)的自定义 JAR 作为自定义 JAR 步骤。但是,当我尝试从 Livy 访问自定义 JAR 中的内容时,它不可用。

我需要做什么才能使自定义内容在环境中可用?

amazon-emr apache-spark livy

5
推荐指数
1
解决办法
4732
查看次数

Scala sbt 程序集 jar 不起作用(未找到类实现)但代码在通过 IntelliJ 时起作用

启动我的代码时

scala -cp assembly.jar class.A --config-path confFile

我得到

java.lang.IllegalStateException: No LivyClientFactory implementation was found

但是当通过 IntelliJ 启动时它工作得很好。我还检查了我的程序集 jar,我得到了 LivyClientFactory 的 .class。

我怀疑是 build.sbt 错误,有人知道为什么他找不到班级吗?

我尝试使用 assemblyMerge 策略,但没有成功。

ThisBuild / scalaVersion := "2.12.10"
crossPaths := true
crossScalaVersions := Seq("2.12.10")
def resolveVersion(scalaV: String, versionsResolver: Map[String, String]): String = versionsResolver(scalaV.slice(0, 4))
val sparkVersions = Map("2.11" -> "2.4.3", "2.12" -> "3.0.1")
val scalaTestVersions = Map("2.11" -> "3.2.1", "2.12" -> "3.2.5")
val livyVersions = Map("2.11" -> "0.7.0-incubating", "2.12" -> "0.8.0-incubating")

// dependencies
val commonDependencies = …
Run Code Online (Sandbox Code Playgroud)

scala intellij-idea sbt sbt-assembly livy

5
推荐指数
1
解决办法
157
查看次数