Jadual Kandungan
特性
安装并启动jobServer
测试job执行
预先启动Context
配置文件
Rumah pangkalan data tutorial mysql Spark as a Service之JobServer初测

Spark as a Service之JobServer初测

Jun 07, 2016 pm 04:39 PM
service spa spark

spark-jobserver提供了一个用于提交和管理Apache Spark作业(job)、jar文件和作业上下文(SparkContext)的RESTful接口。该项目位于git(https://github.com/ooyala/spark-jobserver),当前为0.4版本。 特性 Spark as a Service: 简单的面向job和context管理

spark-jobserver提供了一个用于提交和管理Apache Spark作业(job)、jar文件和作业上下文(SparkContext)的RESTful接口。该项目位于git(https://github.com/ooyala/spark-jobserver),当前为0.4版本。

特性

“Spark as a Service”: 简单的面向job和context管理的REST接口
通过长期运行的job context支持亚秒级低延时作业(job)
可以通过结束context来停止运行的作业(job)
分割jar上传步骤以提高job的启动
异步和同步的job API,其中同步API对低延时作业非常有效
支持Standalone Spark和Mesos
Job和jar信息通过一个可插拔的DAO接口来持久化
命名RDD以缓存,并可以通过该名称获取RDD。这样可以提高作业间RDD的共享和重用

安装并启动jobServer

jobServer依赖sbt,所以必须先装好sbt。

rpm -ivh https://dl.bintray.com/sbt/rpm/sbt-0.13.6.rpm
yum install git
# 下面clone这个项目
SHELL$ git clone https://github.com/ooyala/spark-jobserver.git
# 在项目根目录下,进入sbt  
SHELL$ sbt
......
[info] Set current project to spark-jobserver-master (in build file:/D:/Projects
/spark-jobserver-master/)
>
#在本地启动jobServer(开发者模式)
>re-start --- -Xmx4g
......
#此时会下载spark-core,jetty和liftweb等相关模块。
job-server Starting spark.jobserver.JobServer.main()
[success] Total time: 545 s, completed 2014-10-21 19:19:48
Salin selepas log masuk

然后访问http://localhost:8090 可以看到Web UI
job

?

测试job执行

这里我们直接使用job-server的test包进行测试

SHELL$ sbt job-server-tests/package
......
[info] Compiling 5 Scala sources to /root/spark-jobserver/job-server-tests/target/classes...
[info] Packaging /root/spark-jobserver/job-server-tests/target/job-server-tests-0.4.0.jar ...
[info] Done packaging.
Salin selepas log masuk

编译完成后,将打包的jar文件通过REST接口上传
REST接口的API如下:
GET /jobs 查询所有job
POST /jobs 提交一个新job
GET /jobs/<jobid></jobid> 查询某一任务的结果和状态
GET /jobs/<jobid>/config</jobid>

SHELL$ curl --data-binary @job-server-tests/target/job-server-tests-0.4.0.jar localhost:8090/jars/test
OK
# 查看提交的jar
SHELL$ curl localhost:8090/jars/
{
  "test": "2014-10-22T15:15:04.826+08:00"
}
# 提交job
提交的appName为test,class为spark.jobserver.WordCountExample
SHELL$  curl -d "input.string = hello job server" 'localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample'
{
  "status": "STARTED",
  "result": {
    "jobId": "34ce0666-0148-46f7-8bcf-a7a19b5608b2",
    "context": "eba36388-spark.jobserver.WordCountExample"
  }
}
# 通过job-id查看结果和配置信息
SHELL$ curl localhost:8090/jobs/34ce0666-0148-46f7-8bcf-a7a19b5608b2
{
  "status": "OK",
  "result": {
    "job": 1,
    "hello": 1,
    "server": 1
  }
SHELL$ curl localhost:8090/jobs/34ce0666-0148-46f7-8bcf-a7a19b5608b2/config
{
    "input" : {
        "string" : "hello job server"
}
# 提交一个同步的job,当执行命令后,terminal会hang住直到任务执行完毕。
SHELL$ curl -d "input.string = hello job server" 'localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample'&sync=true
{
  "status": "OK",
  "result": {
    "job": 1,
    "hello": 1,
    "server": 1
  }
Salin selepas log masuk

在Web UI上也可以看到Completed Jobs相应的信息。

预先启动Context

和Context相关的API
GET /contexts ?查询所有预先建立好的context
POST /contexts ?建立新的context
DELETE ?/contexts/<name></name> ?删除此context,停止运行于此context上的所有job

SHELL$ curl -d "" 'localhost:8090/contexts/test-context?num-cpu-cores=4&mem-per-node=512m'
OK
# 查看现有的context
curl localhost:8090/contexts
["test-context", "feceedc3-spark.jobserver.WordCountExample"]
接下来在这个context上执行job
curl -d "input.string = a b c a b see" 'localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample&context=test-context&sync=true'
{
  "status": "OK",
  "result": {
    "a": 2,
    "b": 2,
    "c": 1,
    "see": 1
  }
Salin selepas log masuk

配置文件

打开配置文件,可以发现master设置为local[4],可以将其改为我们的集群地址。

vim spark-jobserver/config/local.conf.template
master = "local[4]"
Salin selepas log masuk

此外,关于数据对象的存储方法和路径:

jobdao = spark.jobserver.io.JobFileDAO
    filedao {
      rootdir = /tmp/spark-job-server/filedao/data
    }
Salin selepas log masuk

默认context设置,该设置可以被
下面再次在sbt中启动REST接口的中的参数覆盖。

# universal context configuration.  These settings can be overridden, see README.md
  context-settings {
    num-cpu-cores = 2           # Number of cores to allocate.  Required.
    memory-per-node = 512m         # Executor memory per node, -Xmx style eg 512m, #1G, etc.
    # in case spark distribution should be accessed from HDFS (as opposed to being installed on every mesos slave)
    # spark.executor.uri = "hdfs://namenode:8020/apps/spark/spark.tgz"
    # uris of jars to be loaded into the classpath for this context
    # dependent-jar-uris = ["file:///some/path/present/in/each/mesos/slave/somepackage.jar"]
  }
Salin selepas log masuk

基本的使用到此为止,jobServer的部署和项目使用将之后介绍。顺便期待下一个版本SQL Window的功能。

^^

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan SPA dan API menggunakan Laravel Sanctum? Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan SPA dan API menggunakan Laravel Sanctum? Jun 13, 2023 pm 12:36 PM

LaravelSanctum ialah pakej pengesahan ringan yang membolehkan anda melaksanakan pengesahan API dan pengesahan SPA (Aplikasi Halaman Tunggal) dengan mudah dalam aplikasi Laravel. Dalam artikel ini, kami akan meneroka cara menggunakan LaravelSanctum untuk melaksanakan pengesahan SPA dan API. Mula-mula, mari kita lihat apa itu pengesahan SPA dan API. Pengesahan SPA merujuk kepada aplikasi halaman tunggal yang tidak memuatkan semula keseluruhan halaman tetapi menggunakan AJAX untuk meminta maklumat daripada pelayan web untuk

Membina contoh SPA menggunakan Python dan React Membina contoh SPA menggunakan Python dan React Jun 17, 2023 pm 12:38 PM

Dengan perkembangan teknologi Internet yang berterusan, semakin banyak laman web mula menggunakan seni bina SPA (SinglePageApplication). SPA merujuk kepada mempersembahkan semua atau kebanyakan kandungan melalui satu halaman dan mengemas kini kandungan halaman secara dinamik melalui pelanggan, dan bukannya menggunakan kaedah berbilang halaman tradisional. Dalam artikel ini, kami akan menggunakan Python dan React untuk membina contoh SPA mudah untuk menunjukkan idea asas dan kaedah pelaksanaan SPA. 1. Persediaan persekitaran Sebelum mula membina, kami

Sepuluh perpustakaan yang biasa digunakan untuk algoritma AI versi Java Sepuluh perpustakaan yang biasa digunakan untuk algoritma AI versi Java Jun 13, 2023 pm 04:33 PM

ChatGPT telah popular selama lebih daripada setengah tahun tahun ini, dan popularitinya tidak jatuh sama sekali. Pembelajaran mendalam dan NLP juga telah kembali kepada perhatian semua orang. Beberapa rakan dalam syarikat bertanya kepada saya, sebagai pembangun Java, bagaimana untuk bermula dengan kecerdasan buatan Sudah tiba masanya untuk mengeluarkan perpustakaan Java tersembunyi untuk mempelajari AI dan memperkenalkannya kepada semua orang. Pustaka dan rangka kerja ini menyediakan pelbagai alat dan algoritma untuk pembelajaran mesin, pembelajaran mendalam, pemprosesan bahasa semula jadi dan banyak lagi. Bergantung pada keperluan khusus projek AI anda, anda boleh memilih perpustakaan atau rangka kerja yang paling sesuai dan mula bereksperimen dengan algoritma yang berbeza untuk membina penyelesaian AI anda. 1.Deeplearning4j Ia adalah perpustakaan pembelajaran mendalam teragih sumber terbuka untuk Java dan Scala. Pembelajaran mendalam

Contoh SPA dibina dengan Django dan Vue.js Contoh SPA dibina dengan Django dan Vue.js Jun 18, 2023 pm 07:27 PM

Dalam beberapa tahun kebelakangan ini, SPA (SinglePageApplication) telah menjadi model popular untuk pembangunan web. Berbanding dengan aplikasi berbilang halaman tradisional, SPA lebih pantas dan lancar, dan ia juga lebih mesra dan mudah untuk pembangun. Artikel ini akan berkongsi contoh SPA yang dibina berdasarkan Django dan Vue.js, dengan harapan dapat memberi anda sedikit rujukan dan inspirasi. Django ialah rangka kerja Web Python yang terkenal dengan keupayaan pembangunan bahagian belakang yang berkuasa. Peraturan Vue.js

Gunakan bahasa Spark in Go untuk mencapai pemprosesan data yang cekap Gunakan bahasa Spark in Go untuk mencapai pemprosesan data yang cekap Jun 16, 2023 am 08:30 AM

Dengan kemunculan era data besar, pemprosesan data menjadi semakin penting. Untuk pelbagai tugas pemprosesan data, teknologi yang berbeza telah muncul. Antaranya, Spark, sebagai teknologi yang sesuai untuk pemprosesan data berskala besar, telah digunakan secara meluas dalam pelbagai bidang. Di samping itu, bahasa Go, sebagai bahasa pengaturcaraan yang cekap, juga telah mendapat lebih banyak perhatian dalam beberapa tahun kebelakangan ini. Dalam artikel ini, kami akan meneroka cara menggunakan bahasa Spark dalam Go untuk mencapai pemprosesan data yang cekap. Mula-mula kami akan memperkenalkan beberapa konsep dan prinsip asas Spark

Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Dec 26, 2023 pm 02:57 PM

Timbunan teknologi data besar Java: Fahami aplikasi Java dalam bidang data besar, seperti Hadoop, Spark, Kafka, dll. Apabila jumlah data terus meningkat, teknologi data besar telah menjadi topik hangat dalam era Internet hari ini. Dalam bidang data besar, kita sering mendengar nama Hadoop, Spark, Kafka dan teknologi lain. Teknologi ini memainkan peranan penting, dan Java, sebagai bahasa pengaturcaraan yang digunakan secara meluas, juga memainkan peranan yang besar dalam bidang data besar. Artikel ini akan memberi tumpuan kepada aplikasi Java secara besar-besaran

Bagaimana untuk menyelesaikan masalah bahawa perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem Bagaimana untuk menyelesaikan masalah bahawa perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem May 16, 2023 pm 07:28 PM

Perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem Penerangan terperinci: Semasa melakukan pemasangan berbilang contoh MySQL sebelum ini, pemasangan berjaya dan Linux boleh dimulakan dengan jayanya, support-files/mysqld_multi.server telah dialihkan ke /etc/init.d; / direktori dan set untuk boot (chkconfigxxxon) gagal penerokaan masalah dan mula menyelesaikannya. Ia didapati bahawa servicexxxstart tidak dapat memulakan beberapa contoh mysql, tetapi mysqld_multisart boleh digunakan mendapati bahawa tetapan /etc/profile boleh dicetak dalam persekitaran biasa m

Bermula dengan PHP: PHP dan Spark Bermula dengan PHP: PHP dan Spark May 20, 2023 am 08:41 AM

PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular kerana ia mudah dipelajari, sumber terbuka dan merentas platform. Pada masa ini, banyak syarikat besar menggunakan bahasa PHP untuk membina aplikasi, seperti Facebook dan WordPress. Spark ialah rangka kerja pembangunan yang pantas dan ringan untuk membina aplikasi web. Ia berdasarkan Java Virtual Machine (JVM) dan berfungsi dengan PHP. Artikel ini akan memperkenalkan cara membina aplikasi web menggunakan PHP dan Spark. Apakah PHP? PH

See all articles