我正在尝试使用spark-submit运行本地jar文件,它运行得很好。这是命令-
Tree of work items
但是当我尝试卷曲时
spark-submit --class "SimpleApp" --master local myProject/target/scala-2.11/simple-project_2.11-1.0.jar
抛出错误
curl -X POST --data '{
"file": "file:///home/user/myProject/target/scala-2.11/simple-project_2.11-1.0.jar",
"className": "SimpleApp",
}'
-H
"Content-Type: application/json"
http://server:8998/batches
这是我的livy.conf文件,因为有些文章建议更改一些内容。
"requirement failed: Local path /home/user/myProject/target/scala-2.11/simple-project_2.11-1.0.jar cannot be added to user sessions."
请帮助我。
谢谢。
答案 0 :(得分:1)
最近,我在用cURL创建错误请求时,从Apache Livy获得了本地文件读取的解决方案。我只是将'file://'中的文件读取协议替换为'local:/',对我有用。
CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER;
GO
sp_addrolemember db_datareader, [xxx@yyy.com];
GO
sp_addrolemember
db_datawriter, [xxx@yyy.com];
GO
那是一个很小的错误,但是仍然无法从HDFS访问我的jar文件。
谢谢大家的帮助。
答案 1 :(得分:0)
必须存在Apache Livy
jar文件。没有相应的jar文件,它将无法正常工作。
接下来是我的建议:只需将livy jar
文件附加到java's cp option
的类路径中即可:
java -cp /usr/local/livy.jar com.myclass.Main
或仅使用SBT:
libraryDependencies += "org.apache.livy" % "livy-api" % "0.4.0-incubating"
行家:
<dependency>
<groupId>org.apache.livy</groupId>
<artifactId>livy-api</artifactId>
<version>0.4.0-incubating</version>
</dependency>
或者您最喜欢的构建工具。
顺便说一句,您还可以将livy jar
文件上传到HDFS
并在Hadoop集群上使用它,这可以大大简化您的生活。
答案 2 :(得分:0)
以下答案对我有效,如此处所述 Apache Livy cURL not working for spark-submit command
要将本地文件用于livy批处理作业,您需要将本地文件夹添加到livy.conf中的livy.file.local-dir-whitelist属性。
livy.conf.template中的描述:
允许将文件添加到用户会话的本地目录列表。默认情况下为空,这意味着用户只能在启动会话时引用远程URI。