未能通过livy编程客户端api提交spark作业

r1wp621o  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(203)

我正在尝试使用提交简单的字数计算程序,该程序是用java8、spark2.4.7实现的,并通过livy0.7提交的。我有三个在本地计算机上运行的容器。一个是spark driver,一个是spark worker,一个是livy。
我使用livy的客户提交程序如下:

private static final String LIVY_URL = "http://localhost:8998/";
private static final String JAR_PATH = "/.../spark-word-count/target/word-count-0.1- 
SNAPSHOT.jar";

public static void main(String[] args) throws Exception {
    LivyClient livyClient = new LivyClientBuilder(false)
    .setURI(new URI(LIVY_URL)).build();

    try {
        System.err.printf("Uploading %s to the Spark context...\n", JAR_PATH);
        livyClient.uploadJar(new File(JAR_PATH)).get();

        System.err.printf("Running JavaWordCount...\n", JAR_PATH);
        double returnValue = livyClient.submit(new JavaWordCount()).get();

        System.out.println("Application return value is: " + returnValue);
      } finally {
        livyClient.stop(true);
      }
}

我得到以下错误:
原因:java.io.ioexception:错误请求:{“msg”:“请求失败:本地路径/root/.livy sessions/b78e9935-70b4-4fe7-8840-8c84067fbd52/word-count-0.1-snapshot.jar无法添加到用户会话中。”}
查看livy的ui,我可以看到一个会话启动,当我连接到livy的运行容器时,我可以看到我的jar上传到/root/.livy sessions,但是它失败了,出现了上面的错误。
我使用的docker compose文件将livy\u file\u local\u dir\u白名单指向/opt/jars。我看到有人建议将其更改为jar上载到的位置,我确实将其更改为/root/.livy sessions,但我得到了一些其他错误:
线程“main”java.util.concurrent.executionexception:java.io.ioexception:内部服务器错误:“java.util.concurrent.executionexception:java.lang.runtimeexception:py4j.py4jeexception:获取新通信通道时出错
我将非常感谢任何帮助!谢谢。。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题