续上一篇Spark as a Service之jobServer部署使用开发者模式来测试,本文正式部署并使用jobserver,当前版本有很多BUG和不完善的地方,期待后续的版本修复。
部署
复制config/local.sh.template到local.sh ,并且设置相关参数。 可以在多个主机上配置jobserver,并指定安装路径,Spark Home, Spark Conf等参数。
1
2
3
4
5
6
7
8
9
10
11
|
cd
/
root
/
spark
-
jobserver
/
config
cp
local
.
sh
.
template
local
.
sh
vim
local
.
sh
DEPLOY_HOSTS
=
"hdp01"
APP_USER
=
spark
APP_GROUP
=
spark
INSTALL_DIR
=
/
var
/
lib
/
spark
LOG_DIR
=
/
var
/
lib
/
spark
/
log
PIDFILE
=
spark
-
jobserver
.
pid
SPARK_HOME
=
/
usr
/
lib
/
spark
SPARK_CONF_HOME
=
/
etc
/
spark
/
conf
|
然后修改project/Dependencies.scala,修改spark依赖的版本(修改为1.1.0会报错,可能是akka版本匹配的问题),否则会出现一些API找不到的情况。(参考:https://github.com/ooyala/spark-jobserver/issues/29)
将其中
1
2
|
lazy
val
sparkDeps
=
Seq
(
"org.apache.spark"
%
%
"spark-core"
%
"1.0.0"
.
.
.
.
.
.
|
此处一定修改为当前spark的版本。
部署jobserver,需要漫长的等待。这个过程如果没有配置SSH互信,还需要输入操作系统用户的密码。为了方面部署,先创建一个key并复制到spark用户中。
1
2
3
4
5
6
|
ssh
-
keygen
-
t
rsa
ssh
-
copy
-
id
spark
@
hdp01
cp
local
.
sh
/
root
/
spark
-
jobserver
/
bin
/
config
/
/
root
/
spark
-
jobserver
/
bin
/
server_deploy
.
sh
local
.
.
.
.
.
.
.
cp
/
root
/
spark
-
jobserver
/
config
/
local
.
conf
/
var
/
lib
/
spark
/
|
部署完成后,在INSTALL_DIR下可以看到相关文件
1
2
|
ls
log
log4j
-
server
.properties
server_start
.sh
server_stop
.sh
settings
.sh
spark
-
job
-
server
.jar
|
启动JobServer
进入服务器指定目录,运行server_start.sh
需要把config下的local.conf复制到INSTALL_DIR下面,改名为local.conf,并修改其中的master以及两个路径。
1
2
|
jar
-
store
-
rootdir
=
/
var
/
lib
/
spark
/
jars
rootdir
=
/
var
/
lib
/
spark
/
filedao
|
完成后可以启动jobServer,并执行测试。
1
2
3
4
5
6
7
8
9
10
|
SHELL
>
.
/
server_start
.sh
SHELL
>
curl
--
data
-
binary
@
job
-
server
-
tests
-
0.4.0.jar
localhost
:
8090
/
jars
/
test
SHELL
>
curl
-
d
"input.string = hello job server"
'hdp01:8090/jobs?appName=test&classPath=spark.jobrver.WordCountExample'
{
"status"
:
"STARTED"
,
"result"
:
{
"jobId"
:
"e20162ce-f710-4665-896c-3dd6c04a02a9"
,
"context"
:
"e2fa0372-spark.jobserver.WordCountExample"
}
}
|