首先说一下想要达到的效果,就是网页有一个按钮,用户可以通过按钮提交任务到spark,spark集群运行并得出结果,结果能够返回给页面或者服务器。主要就是有两个问题。第一:如何通过服务器提交spark任务,让spark跑起来,第二:获取spark得出结果,能够在页面显示,或者我能通过程序获取到,有经验的或者有思路的大牛们帮忙解答一下,必有重谢!!!!
刚好最近我也刚做完这方面的开发
一:启动集群可以用JSch连接集群master节点,从java端直接输入命令行启动集群
二:Spark实时监听http请求:在spark程序main函数启动sc,紧接着启动jetty的Server,监听自定义端口,我这里使用9998.然后启动集群后就可以通过master:9998/url?params去控制集群,这样节省了集群启动时间,同时也可以把多个计算程序写入一个文件,通过url执行不同程序。
做个web service服务,里面起个sparkContext,平时没任务就闲着
有任务了,也就是页面点按钮了,就通过web service接口将请求发送到服务端。服务端就有sparkContext,可以执行任务
执行完以后结果就可以通过web service接口异步回传回去**