C*********r 发帖数: 21 | 1 一般单机的程序可以用autosys或者cron这种类型的工具指定在某个时间或者某个
dependency满足的情况下,在固定某台机器上面kickoff固定的程序运行,然后可以设
置一些最长跑多长时间,log位置等参数。
如果我有一个跑在hdfs cluster上面的spark程序,那我怎么类似的实现schedule
spark程序呢 (最好是整个cluster对我的scheduler都是透明的,不需要知道具体需要
跑在那台机器上面)。有什么工具或者系统推荐的么?
再一个问题是如果我想把spark程序做成一个service,通过外部的request来进行调用
,例如gui,其他web service等,这样我通过什么来和spark程序或者hdfs cluster进
行通信。大家有什么推荐的么。
刚开始学习spark,好多不懂的地方,先谢谢大家啦 |
p*****2 发帖数: 21240 | 2 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,好多不懂的地方,先谢谢大家啦
|
z*******3 发帖数: 13709 | 3 都是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,好多不懂的地方,先谢谢大家啦
|
J****R 发帖数: 373 | 4 我也想问这个问题来着。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的话,可以选的余地也大,这个不行,就换另外一个 : 实在不行自己裸写
|
p*****2 发帖数: 21240 | 5 spark一样吧?
【在 J****R 的大作中提到】 : 我也想问这个问题来着。spark看了一些,但还没有理清头绪。 : 比如说我backend 是java,要是用mysql的话,直接jdbc driver连数据库,发个sql : query, driver 会返回个resultset。 : 那spark呢?难道是spark把数据写进磁盘,java看到文件了再去读么?
|
d******e 发帖数: 2265 | 6 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,好多不懂的地方,先谢谢大家啦
|
z*******3 发帖数: 13709 | 7
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看到文件了再去读么?
|
t**********8 发帖数: 15 | 8 两个问题:
(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,好多不懂的地方,先谢谢大家啦
|
C*********r 发帖数: 21 | 9 那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调
用了
【在 z*******3 的大作中提到】 : 都是java的问题 : schedule -> spring scheduler : service -> vert.x : 会java的话,随便玩 : spark重点不是web service,也不是scheduler : 可能有,也可能没有,但是重点不是做这些的 : 不可能指望所有的东西都由一个framework搞定 : 会java的话,可以选的余地也大,这个不行,就换另外一个 : 实在不行自己裸写
|
N*****m 发帖数: 42603 | 10 这是胡搞
【在 C*********r 的大作中提到】 : 那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调 : 用了
|
|
|
z*******3 发帖数: 13709 | 11
当然可以,service是你自己定义的
你想定义成什么就定义成什么
【在 C*********r 的大作中提到】 : 那我是不是可以把spark的driver program用vert.x封装成service,这样别人就可以调 : 用了
|
z*******3 发帖数: 13709 | 12
我觉得不是胡搞,相反,我觉得她做得很对
把main program包装成web service,然后给其他人(比如gui)调用
这就是soa,楼主天生就是一个构架师
我就是这么干的
【在 N*****m 的大作中提到】 : 这是胡搞
|
g*******o 发帖数: 156 | 13 这个是你需要的?
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,好多不懂的地方,先谢谢大家啦
|
N*****m 发帖数: 42603 | 14 懒得跟你说
【在 z*******3 的大作中提到】 : : 我觉得不是胡搞,相反,我觉得她做得很对 : 把main program包装成web service,然后给其他人(比如gui)调用 : 这就是soa,楼主天生就是一个构架师 : 我就是这么干的
|
N*****m 发帖数: 42603 | 15 这个,mesos, yarn都可以
【在 g*******o 的大作中提到】 : 这个是你需要的? : https://github.com/spark-jobserver/spark-jobserver
|
z*******3 发帖数: 13709 | 16
你楼上给了你另外一个例子,看来不止一个人这么搞
【在 N*****m 的大作中提到】 : 懒得跟你说
|
z*******3 发帖数: 13709 | 17
这个level只能处理数据本身
并不能把mllib做成web service
你应该把别人给你的link好好看看
表急于下结论
【在 N*****m 的大作中提到】 : 这个,mesos, yarn都可以
|
N*****m 发帖数: 42603 | 18 说的就是那样,人都给你搞好轮子
让楼主自己搞,不是害人么
【在 z*******3 的大作中提到】 : : 这个level只能处理数据本身 : 并不能把mllib做成web service : 你应该把别人给你的link好好看看 : 表急于下结论
|
z*******3 发帖数: 13709 | 19
ft
vert.x就是一个web service的轮子啊
只不过没有明确写出来而已,json的处理用jackson
这个vert.x核心类库里面有
传输协议随便选一个,比如http
这就是一个web service呀
只不过vert.x没写出来说,这个是web service罢了
除非你想用soap,这个也不难就是了
【在 N*****m 的大作中提到】 : 说的就是那样,人都给你搞好轮子 : 让楼主自己搞,不是害人么
|
N*****m 发帖数: 42603 | 20 在说web service吗?
在说scheduling的轮子,web service有个球难度
确实不应该接你的茬
【在 z*******3 的大作中提到】 : : ft : vert.x就是一个web service的轮子啊 : 只不过没有明确写出来而已,json的处理用jackson : 这个vert.x核心类库里面有 : 传输协议随便选一个,比如http : 这就是一个web service呀 : 只不过vert.x没写出来说,这个是web service罢了 : 除非你想用soap,这个也不难就是了
|
|
|
z*******3 发帖数: 13709 | 21
我哭了
你都没看人家在说什么,那你回的是什么?
发信人: Nehalem (Nehalem), 信区: Programming
标 题: Re: 怎样schedule spark application
发信站: BBS 未名空间站 (Thu Jun 25 13:04:34 2015, 美东)
这是胡搞
【在 N*****m 的大作中提到】 : 在说web service吗? : 在说scheduling的轮子,web service有个球难度 : 确实不应该接你的茬
|
N*****m 发帖数: 42603 | 22 只封装driver有球用
算了,最后一贴了
【在 z*******3 的大作中提到】 : : 我哭了 : 你都没看人家在说什么,那你回的是什么? : 发信人: Nehalem (Nehalem), 信区: Programming : 标 题: Re: 怎样schedule spark application : 发信站: BBS 未名空间站 (Thu Jun 25 13:04:34 2015, 美东) : 这是胡搞
|
z*******3 发帖数: 13709 | 23
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有球用 : 算了,最后一贴了
|
f********r 发帖数: 304 | 24 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. |
N*****m 发帖数: 42603 | 25 这个也不错
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.
|
C*********r 发帖数: 21 | 26 不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的
spark都已经封装好了不是么
【在 N*****m 的大作中提到】 : 只封装driver有球用 : 算了,最后一贴了
|
z*******3 发帖数: 13709 | 27
你是对的,他搞错了,你看他后来急了都转进到scheduler那边去了
想当然地以为driver program的driver就是jdbc那些drivers了
你如果不懂他说啥,把jdbc driver看一看,就知道他在想什么了
【在 C*********r 的大作中提到】 : 不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的 : spark都已经封装好了不是么
|
N*****m 发帖数: 42603 | 28 我说的是只封装driver不行,standalone spark application你把sparkcontext放在
main()里面,做成jar;然后呢?
一般简单的模式是run spark-submit来提交你的job,高级点就是楼上很多说的那些应用
没有scheduling,你就把这个driver就用个main()一包,你怎么run这个job?怎么
monitoring job的进度?
【在 C*********r 的大作中提到】 : 不是很懂,如果想做一个calculation service不封装driver,那封装什么呢?其他的 : spark都已经封装好了不是么
|
z*******3 发帖数: 13709 | 29
应用
所以要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的进度?
|
z*******3 发帖数: 13709 | 30 顺便说一下,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 |
|
|
z*******3 发帖数: 13709 | 31 作为学习
楼主可以通过用vert.x等手段来解决某人说的
“没有scheduling,你就把这个driver就用个main()一包,
你怎么run这个job?怎么monitoring job的进度?”
这就是日常工作中经常遇到的问题
其实说到底就是找到合适的api
自然就可以搞定了,其实不难
第一个超容易做,第二个你需要找到合适的api
这个你可以参考:
https://spark.apache.org/docs/latest/monitoring.html
难度不算低,但是也不是做不出来哈哈 |
g*******o 发帖数: 156 | 32 最近在搞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,好多不懂的地方,先谢谢大家啦
|