问题描述
我正在尝试使用通过 java8、spark 2.4.7 实现并通过 Livy 0.7 提交的提交简单字数统计程序。我有三个在本地计算机上运行的容器。一种用于 Spark 驱动程序,一种用于 Spark 工作器,一种用于 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: Bad Request: {"msg":"requirement 失败:本地路径 /root/.livy-sessions/b78e9935-70b4-4fe7-8840-8c84067fbd52/word-count-0.1-SNAPSHOT.jar 无法添加到用户会话中。"}
查看 Livy 的 UI,我可以看到会话开始, 当我附加到 Livy 正在运行的容器时,我可以看到我的 Jar 上传到 /root/.livy-sessions,但随后失败并出现上述错误。
我使用的 docker-compose 文件将 LIVY_FILE_LOCAL_DIR_WHITELIST 指向 /opt/jars。 我看到有人建议将其更改为 Jar 上传到的位置,我确实将其更改为 /root/.livy-sessions,但我遇到了其他一些错误:
线程“main”中的异常java.util.concurrent.ExecutionException: java.io.IOException:内部服务器错误: "java.util.concurrent.ExecutionException: java.lang.RuntimeException: py4j.Py4JException: 获取新的通信通道时出错
我将非常感谢您的帮助!谢谢...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)