API REST SnappyData для отправки вакансии - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь отправить Snappy Job, используя REST API.

  • Мы смогли отправить SnappyJob с помощью команды отправки snappy-job. Инструмент Линия.
  • Я не смог найти никакой документации, как сделать то же самое через REST API.
  • Я нашел где-то упомянутое на форуме, что SnappyData использует API REST для работы с искрами.

    Не могли бы вы указать документацию / руководство пользователя, как это сделать?

1 Ответ

1 голос
/ 07 июня 2019

Snappydata внутренне использует spark-jobserver для отправки работ. Следовательно, все API REST для spark-jobserver доступны на ведущем узле Snappydata.

Вы можете обратиться ко всем API Spark-JobServer здесь: https://github.com/SnappyDataInc/spark-jobserver#api

Вот несколько полезных команд curl, чтобы прояснить это:

  • развернуть jar приложения на сервере заданий:

curl --data-binary @/path/to/applicaton.jar localhost:8090/jars/testApp

testApp - имя приложения сервера заданий, которое будет использоваться для отправки задания

  • создать контекст:

curl -X POST "localhost:8090/contexts/testSnappyContext?context-factory=org.apache.spark.sql.SnappySessionFactory"

testSnappyContext - это название контекста, который будет использоваться для отправки задания.

Также обратите внимание, что здесь мы передаем пользовательский аргумент фабрики контекста, который необходим для отправки snappy-задания.

  • отправить работу:

curl -d "configKey1=configValue1,configKey2=configValue2" "localhost:8090/jobs?appName=testApp&classPath=com.package.Main&context=testSnappyContext"

com.package.Main - это полное имя класса, которое расширяется org.apache.spark.sql.SnappySQLJob.

  • прекратить работу

curl -X DELETE localhost:8090/jobs/bfed84a1-0b06-47ca-81a7-9b8defb51e38

bfed84a1-0b06-47ca-81a7-9b8defb51e38 - это идентификатор задания, который вы получите в ответ на запрос на отправку задания

  • остановить контекст

curl -X DELETE localhost:8090/contexts/testSnappyContext

  • удаление приложения jar

Версия сервера заданий, используемая snappydata, не имеет RESTful API, доступного для удаления jar. Однако развертывание любого jar с тем же именем приложения (в нашем примере testApp) переопределит ранее развернутый jar для того же приложения.

...