SnappyData REST API 以提交作业

SnappyData REST API to Submit Job

我正在尝试使用 REST API 提交 Snappy 作业。

Snappydata 内部使用 spark-jobserver 来提交作业。因此,所有 spark-jobserver REST API 都可以在 Snappydata 的领导节点上访问。

您可以在这里参考所有spark-jobserver API:https://github.com/SnappyDataInc/spark-jobserver#api

这里有一些有用的 curl 命令来进一步阐明它:

  • 在 job-server 上部署应用程序 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 是将用于提交作业的上下文的名称。

另外,请注意,我们在这里传递了自定义 context-factory 参数,这是提交快速作业所必需的。

  • 提交作业:

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.

的 class 的 fully-qualified 名称
  • 停止作业

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

bfed84a1-0b06-47ca-81a7-9b8defb51e38 是 job-id,您将在作业提交请求的响应中获得

  • 停止上下文

curl -X DELETE localhost:8090/contexts/testSnappyContext

  • 取消部署应用程序 jar

snappydata 使用的 job-server 版本没有暴露用于取消部署 jar 的 RESTful API。但是,部署具有相同应用程序名称(在我们的示例中为 testApp)的任何 jar 将覆盖先前为同一应用程序部署的 jar。