Apache Livy не работает с локальным файлом jar - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь запустить локальный jar-файл с помощью spark-submit, который работает отлично. Вот команда -

spark-submit --class "SimpleApp" --master local myProject/target/scala-2.11/simple-project_2.11-1.0.jar

Но когда я пытаюсь с curl

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

Это ошибка выкидывания

"requirement failed: Local path /home/user/myProject/target/scala-2.11/simple-project_2.11-1.0.jar cannot be added to user sessions."

Вот мой файл livy.conf, так как некоторые статьи предлагают изменить несколько вещей.

# What host address to start the server on. By default, Livy will bind to all network interfaces.
livy.server.host = 0.0.0.0

# What port to start the server on.
livy.server.port = 8998

# What spark master Livy sessions should use.
livy.spark.master = local

# What spark deploy mode Livy sessions should use.
livy.spark.deploy-mode = client

# List of local directories from where files are allowed to be added to user sessions. By
# default it's empty, meaning users can only reference remote URIs when starting their
# sessions.
livy.file.local-dir-whitelist= /home/user/.livy-sessions/

Пожалуйста, помогите мне с этим.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 30 июня 2018

Недавно я получил решение локального чтения файлов от Apache Livy, так как создавал неправильный запрос с помощью cURL.Я просто заменил протокол чтения файла из 'file: //' на 'local: /', и это работает для меня.

curl -X POST --data '{
  "file": "local:/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

Это была довольно маленькая ошибка, но все же мой файл jar не может быть доступен изHDFS.

Спасибо всем за помощь.

0 голосов
/ 23 мая 2019

Ответ ниже работал для меня, как указано здесь Apache Livy cURL не работает для команды spark-submit

Чтобы использовать локальные файлы для пакетных заданий livy, необходимо добавить локальную папкук свойству livy.file.local-dir-whitelist в livy.conf.

Описание из livy.conf.template:

Список локальных каталогов, откуда разрешено добавлять файлы впользовательские сессии.По умолчанию он пуст, что означает, что пользователи могут ссылаться только на удаленные URI при запуске своих сеансов.

0 голосов
/ 26 июня 2018

Наличие Apache Livy файла jar является обязательным требованием.Это не будет работать без соответствующего файла JAR.

Мой совет следующий: просто добавьте livy jar файл в classpath с помощью java's cp option:

java -cp /usr/local/livy.jar com.myclass.Main

или просто используйте SBT:

libraryDependencies += "org.apache.livy" % "livy-api" % "0.4.0-incubating"

Maven:

<dependency>
    <groupId>org.apache.livy</groupId>
    <artifactId>livy-api</artifactId>
    <version>0.4.0-incubating</version>
</dependency>

Или ваш любимый инструмент для сборки.

Кстати, вы также можете загрузить файл livy jar в HDFS и использовать его на своемКластер Hadoop, он может значительно упростить вашу жизнь.

...