【问题标题】:Unable to upload jar via livy client to livy session无法通过 livy 客户端将 jar 上传到 livy 会话
【发布时间】:2017-02-15 04:05:14
【问题描述】:

代码:

LivyClient client = null;
try
{
  String livyUrl = "http://dummy16814.zycus.net:8998";
  client = new LivyClientBuilder().setURI(new URI(livyUrl)).build();

  String piJar = "E:\\livy_old.jar";
  System.err.printf("Uploading %s to the Spark context...\n", piJar);
  client.uploadJar(new File(piJar)).get();

  int samples = 10;
  System.err.printf("Running PiJob with %d samples...\n", samples);

  double pi = client.submit(new PiJob()).get();
  System.out.println("Pi is roughly: " + pi);
}
finally
{
  client.stop(true);
}

上传 jar 时出现以下异常

正在将 E:\livy_old.jar 上传到 Spark 上下文...线程中的异常 “主要” java.util.concurrent.ExecutionException:java.io.IOException: 错误请求:“要求失败:本地路径 /root/.livy-sessions/61a5e39c-d199-4bb8-967b-960b4e3e9ee3/livy_old.jar 无法添加到用户会话中。”在 java.util.concurrent.FutureTask.report(FutureTask.java:122) 在 java.util.concurrent.FutureTask.get(FutureTask.java:192) 在 com.zycus.spark.PiJob.main(PiJob.java:64) 原因: java.io.IOException:错误请求:“要求失败:本地路径 /root/.livy-sessions/61a5e39c-d199-4bb8-967b-960b4e3e9ee3/livy_old.jar 无法添加到用户会话中。”在 com.cloudera.livy.client.http.LivyConnection.sendRequest(LivyConnection.java:197) 在 com.cloudera.livy.client.http.LivyConnection.post(LivyConnection.java:162) 在 com.cloudera.livy.client.http.HttpClient$2.call(HttpClient.java:155) 在 com.cloudera.livy.client.http.HttpClient$2.call(HttpClient.java:152) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • 您在此期间找到解决此问题的方法了吗?

标签: java cloudera


【解决方案1】:

spark.master yarn-cluster 添加到spark 配置文件中,在我的例子中是spark-defaults.conf

在集群中的所有节点上添加这个条目。

【讨论】:

    【解决方案2】:

    默认情况下,Livy 不允许将本地文件附加到用户会话:https://groups.google.com/a/cloudera.org/forum/#!topic/livy-user/mm-XEhANDHU 我通过在 livy-server-0.3.0/conf/livy.conf 中指定本地路径解决了这个问题:

    livy.file.local-dir-whitelist =/root/.livy-sessions/

    这应该在他们的文档中提到

    【讨论】:

      【解决方案3】:

      如果你在本地运行,你必须修改 livy.conf 中的两个属性。

      livy.spark.master = 本地,

      livy.file.local-dir-whitelist=[/path/tothe/file]

      更改这两个参数后我能够让它工作

      【讨论】:

        猜你喜欢
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2019-10-05
        • 2021-09-02
        • 2021-09-29
        • 2019-05-23
        • 1970-01-01
        相关资源
        最近更新 更多