Redian新闻
>
怎样schedule spark application
avatar
怎样schedule spark application# Programming - 葵花宝典
b*e
1
看了一下精华区没有找到。想知道全过程,需要准备的材料,和入境需要注意的地方。
谢谢
avatar
C*r
2
一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
置一些最长跑多长时间,log位置等参数。
如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
跑在那台机器上面)。有什么工具或者系统推荐的么?
再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
行通信。大家有什么推荐的么。
刚开始学习spark,好多不懂的地方,先谢谢大家啦
avatar
m*s
3
先去美领馆官网把B2签证的要求认真完整的读三遍。
我当时就是这样做的。

【在 b****e 的大作中提到】
: 看了一下精华区没有找到。想知道全过程,需要准备的材料,和入境需要注意的地方。
: 谢谢

avatar
p*2
4
spark需要一个driver 这个driver跟普通程序差不多

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

avatar
z*3
5
都是java的问题
schedule -> spring scheduler
service -> vert.x
会java的话,随便玩
spark重点不是web service,也不是scheduler
可能有,也可能没有,但是重点不是做这些的
不可能指望所有的东西都由一个framework搞定
会java的话,可以选的余地也大,这个不行,就换另外一个
实在不行自己裸写

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

avatar
J*R
6
我也想问这个问题来着。spark看了一些,但还没有理清头绪。
比如说我backend 是java,要是用mysql的话,直接jdbc driver连数据库,发个sql
query, driver 会返回个resultset。
那spark呢?难道是spark把数据写进磁盘,java看到文件了再去读么?

【在 z*******3 的大作中提到】
: 都是java的问题
: schedule -> spring scheduler
: service -> vert.x
: 会java的话,随便玩
: spark重点不是web service,也不是scheduler
: 可能有,也可能没有,但是重点不是做这些的
: 不可能指望所有的东西都由一个framework搞定
: 会java的话,可以选的余地也大,这个不行,就换另外一个
: 实在不行自己裸写

avatar
p*2
7
spark一样吧?

【在 J****R 的大作中提到】
: 我也想问这个问题来着。spark看了一些,但还没有理清头绪。
: 比如说我backend 是java,要是用mysql的话,直接jdbc driver连数据库,发个sql
: query, driver 会返回个resultset。
: 那spark呢?难道是spark把数据写进磁盘,java看到文件了再去读么?

avatar
d*e
8
https://spark.apache.org/docs/1.2.0/job-scheduling.html

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

avatar
z*3
9

spark sql的话,应该是一样的
你说的是异步吧?
异步的话,塞入lambda做completion后的回调函数
这样会导致金字塔,用rx模式,subscribe, publish,这样就可以避开金字塔
对vert.x熟悉的话,就比较清楚了
akka也行,但是akka偏复杂难用
spark和flink这些对于akka的封装稍微有些高级了

【在 J****R 的大作中提到】
: 我也想问这个问题来着。spark看了一些,但还没有理清头绪。
: 比如说我backend 是java,要是用mysql的话,直接jdbc driver连数据库,发个sql
: query, driver 会返回个resultset。
: 那spark呢?难道是spark把数据写进磁盘,java看到文件了再去读么?

avatar
t*8
10
两个问题:
(1) 如何schedule Spark Jobs
你可以使用YARN mode来管理你的cluster.对于scheduler来说, Spark对于你来说,就是
一个master node,并行cluster计算对于你来说就是一个黑箱, 不需关心,scheduler可
以使任何常见的如cron jobs
(2) 如何数据交换,和Spark
对于输入来说, 和java main一个道理,可以使用main(String [] args)来接受参数,输
出可能会有些问题,因为Spark是基于RDD的,一般是把结果RDD写入files 来读取的.
两个问题:
(1) 如何schedule Spark Jobs
你可以使用YARN mode来管理你的cluster.对于scheduler来说, Spark对于你来说,就是
一个master node,并行cluster计算对于你来说就是一个黑箱, 不需关心,scheduler可
以使任何常见的如cron jobs
(2) 如何数据交换,和Spark
对于输入来说, 和java main一个道理,可以使用main(String [] args)来接受参数,输
出可能会有些问题,因为Spark是基于RDD的,一般是把结果RDD写入files 来读取的.

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

avatar
C*r
11
那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调
用了

【在 z*******3 的大作中提到】
: 都是java的问题
: schedule -> spring scheduler
: service -> vert.x
: 会java的话,随便玩
: spark重点不是web service,也不是scheduler
: 可能有,也可能没有,但是重点不是做这些的
: 不可能指望所有的东西都由一个framework搞定
: 会java的话,可以选的余地也大,这个不行,就换另外一个
: 实在不行自己裸写

avatar
N*m
12
这是胡搞

【在 C*********r 的大作中提到】
: 那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调
: 用了

avatar
z*3
13

当然可以,service是你自己定义的
你想定义成什么就定义成什么

【在 C*********r 的大作中提到】
: 那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调
: 用了

avatar
z*3
14

我觉得不是胡搞,相反,我觉得她做得很对
把main program包装成web service,然后给其他人(比如gui)调用
这就是soa,楼主天生就是一个构架师
我就是这么干的

【在 N*****m 的大作中提到】
: 这是胡搞
avatar
g*o
15
这个是你需要的?
https://github.com/spark-jobserver/spark-jobserver

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

avatar
N*m
16
懒得跟你说

【在 z*******3 的大作中提到】
:
: 我觉得不是胡搞,相反,我觉得她做得很对
: 把main program包装成web service,然后给其他人(比如gui)调用
: 这就是soa,楼主天生就是一个构架师
: 我就是这么干的

avatar
z*3
18

你楼上给了你另外一个例子,看来不止一个人这么搞

【在 N*****m 的大作中提到】
: 懒得跟你说
avatar
z*3
19

这个level只能处理数据本身
并不能把mllib做成web service
你应该把别人给你的link好好看看
表急于下结论

【在 N*****m 的大作中提到】
: 这个,mesos, yarn都可以
avatar
N*m
20
说的就是那样,人都给你搞好轮子
让楼主自己搞,不是害人么

【在 z*******3 的大作中提到】
:
: 这个level只能处理数据本身
: 并不能把mllib做成web service
: 你应该把别人给你的link好好看看
: 表急于下结论

avatar
z*3
21

ft
vert.x就是一个web service的轮子啊
只不过没有明确写出来而已,json的处理用jackson
这个vert.x核心类库里面有
传输协议随便选一个,比如http
这就是一个web service呀
只不过vert.x没写出来说,这个是web service罢了
除非你想用soap,这个也不难就是了

【在 N*****m 的大作中提到】
: 说的就是那样,人都给你搞好轮子
: 让楼主自己搞,不是害人么

avatar
N*m
22
在说web service吗?
在说scheduling的轮子,web service有个球难度
确实不应该接你的茬

【在 z*******3 的大作中提到】
:
: ft
: vert.x就是一个web service的轮子啊
: 只不过没有明确写出来而已,json的处理用jackson
: 这个vert.x核心类库里面有
: 传输协议随便选一个,比如http
: 这就是一个web service呀
: 只不过vert.x没写出来说,这个是web service罢了
: 除非你想用soap,这个也不难就是了

avatar
z*3
23

我哭了
你都没看人家在说什么,那你回的是什么?
发信人: Nehalem (Nehalem), 信区: Programming
标 题: Re: 怎样schedule spark application
发信站: BBS 未名空间站 (Thu Jun 25 13:04:34 2015, 美东)
这是胡搞

【在 N*****m 的大作中提到】
: 在说web service吗?
: 在说scheduling的轮子,web service有个球难度
: 确实不应该接你的茬

avatar
N*m
24
只封装driver有球用
算了,最后一贴了

【在 z*******3 的大作中提到】
:
: 我哭了
: 你都没看人家在说什么,那你回的是什么?
: 发信人: Nehalem (Nehalem), 信区: Programming
: 标 题: Re: 怎样schedule spark application
: 发信站: BBS 未名空间站 (Thu Jun 25 13:04:34 2015, 美东)
: 这是胡搞

avatar
z*3
25

ft,spark的driver program意思是main program
就是你写的那个东西,driver其实是spark context,跟ejb context一样
你对这个eco很不熟悉啊
Spark applications run as independent sets of processes on a cluster,
coordinated by the SparkContext object in your main program (called the
driver program).

【在 N*****m 的大作中提到】
: 只封装driver有球用
: 算了,最后一贴了

avatar
f*r
26
We use Netflix/Genie (credit to Netflix) to manage all our spark jobs. The
Genie node will be the driver node. All the spark jobs are running in yarn-
client mode. Genie will control the which physical cluster the job will be
executed. Genie has a set of comprehensive REST API to let you define
abstract cluster (which is mapped to a physical cluster) and submit jobs,
etc. All you need is your spark job jars or python files, everything will be
as easy as making a HTTP request.
avatar
N*m
27
这个也不错

be

【在 f********r 的大作中提到】
: We use Netflix/Genie (credit to Netflix) to manage all our spark jobs. The
: Genie node will be the driver node. All the spark jobs are running in yarn-
: client mode. Genie will control the which physical cluster the job will be
: executed. Genie has a set of comprehensive REST API to let you define
: abstract cluster (which is mapped to a physical cluster) and submit jobs,
: etc. All you need is your spark job jars or python files, everything will be
: as easy as making a HTTP request.

avatar
C*r
28
不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的
spark都已经封装好了不是么

【在 N*****m 的大作中提到】
: 只封装driver有球用
: 算了,最后一贴了

avatar
z*3
29

你是对的,他搞错了,你看他后来急了都转进到scheduler那边去了
想当然地以为driver program的driver就是jdbc那些drivers了
你如果不懂他说啥,把jdbc driver看一看,就知道他在想什么了

【在 C*********r 的大作中提到】
: 不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的
: spark都已经封装好了不是么

avatar
N*m
30
我说的是只封装driver不行,standalone spark application你把sparkcontext放在
main()里面,做成jar;然后呢?
一般简单的模式是run spark-submit来提交你的job,高级点就是楼上很多说的那些应用
没有scheduling,你就把这个driver就用个main()一包,你怎么run这个job?怎么
monitoring job的进度?

【在 C*********r 的大作中提到】
: 不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的
: spark都已经封装好了不是么

avatar
z*3
31

应用
所以要vert.x包装成service嘛,你根本没看别人在说什么
而且人家根本就没有说“只”包装driver,这个是你自己想当然
driver program包括开发人员自己实现的部分,比如楼主要做的calculation service
可不仅仅是driver

【在 N*****m 的大作中提到】
: 我说的是只封装driver不行,standalone spark application你把sparkcontext放在
: main()里面,做成jar;然后呢?
: 一般简单的模式是run spark-submit来提交你的job,高级点就是楼上很多说的那些应用
: 没有scheduling,你就把这个driver就用个main()一包,你怎么run这个job?怎么
: monitoring job的进度?

avatar
z*3
32
顺便说一下,run 什么来submit jobs这种属于手动
这种东西完全可以自动化起来
cloud一天到晚忙活的就是自动化这些东西
所以cloud开发经常用python这些东西
因为wrapper容易做
但是一般运行时候,这种东西尽量做成自动化操作
就是service,楼主的思路很正确
一般通过run什么script来提交的,这种要么就是开发时候用
因为测试时候直接run比较容易搞,大部分qa都有自己的脚本
但是prod.一般都是自动化,所以一般需要看programmatically blablabla
这个如果多做点vert.x的项目,就很容易想到
因为vert.x的verticles的安装,就是run script和programmatically两种方式
一般测试用前者,prod.用后者
楼主可以搜索一下programmatically run spark jobs,可以看到很多人在问类似的问题
然后前面其他人推荐的jobserver也是一个solution
avatar
z*3
33
作为学习
楼主可以通过用vert.x等手段来解决某人说的
“没有scheduling,你就把这个driver就用个main()一包,
你怎么run这个job?怎么monitoring job的进度?”
这就是日常工作中经常遇到的问题
其实说到底就是找到合适的api
自然就可以搞定了,其实不难
第一个超容易做,第二个你需要找到合适的api
这个你可以参考:
https://spark.apache.org/docs/latest/monitoring.html
难度不算低,但是也不是做不出来哈哈
avatar
g*o
34
最近在搞oozie,有几个组已经在用了。

【在 C*********r 的大作中提到】
: 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
: dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
: 置一些最长跑多长时间,log位置等参数。
: 如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
: spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
: 跑在那台机器上面)。有什么工具或者系统推荐的么?
: 再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
: ,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
: 行通信。大家有什么推荐的么。
: 刚开始学习spark,好多不懂的地方,先谢谢大家啦

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。