远程调用Spark平台中的程序
来源:互联网 发布:触摸屏软件下载 编辑:程序博客网 时间:2024/06/05 11:45
用scala语言,开发好了在spark平台上可以一直运行的机器学习模型
现在有个需求:
要远程调用该模型的一些方法并获取结果
那么可以使用jetty在服务器端主节点占用一个端口然后对外提供http服务
package com.xxx.rec.basic.ccam.jettyimport javax.servlet.http.{HttpServletRequest, HttpServletResponse}import com.xxx.rec.basic.ccam.CanonicalCorrelationAnalysisModelimport org.mortbay.jetty.{HttpStatus, Request, Server}import org.mortbay.jetty.handler._object CannonicalCorrelationAnalysisModelJerseyServer extends AbstractHandler{ var model: CanonicalCorrelationAnalysisModel = null /** * 处理请求 返回响应 * @param target * @param request * @param response * @param dispatch */ override def handle(target: String, request: HttpServletRequest, response: HttpServletResponse, dispatch: Int): Unit = { val url=request.getRequestURI url.substring(url.lastIndexOf("/")+1,url.length) match { case "recommend" => { //request中的target 用,号分割 val target: Seq[String] = request.getParameter("target").split(",").toSeq val topNum: Int = request.getParameter("topNum").toInt val result = model.recommend(target, topNum) response.setStatus(HttpStatus.ORDINAL_200_OK); response.getWriter().println(result.mkString(",")) request.asInstanceOf[Request].setHandled(true) response.getWriter.close() } case _ => { response.setStatus(HttpStatus.ORDINAL_404_Not_Found); request.asInstanceOf[Request].setHandled(true) } } } def main(args: Array[String]): Unit = { import org.apache.spark.{SparkConf, SparkContext} val sparkConf = new SparkConf().setAppName("CanonicalCorrelationAnalysisModelDemo") val textFilePath = "file:///home/xxx/xxx.txt" val sc = new SparkContext(sparkConf) val data = sc.textFile(textFilePath).map { line => line.split(' ') }.cache() model = CanonicalCorrelationAnalysisModel.createModel(data, 0.3, 5) val server=new Server(9998) server.setHandler(this) server.start() }}
该程序运行后占用了服务器端主节点的9998端口,通过http访问即可
0 0
- 远程调用Spark平台中的程序
- spark远程debug之调试spark on yarn 程序(基于CDH平台,1.6.0版本)
- spark rpc远程调用基础
- Ubuntu远程执行Spark程序
- java中的远程调用
- Spark Pipe调用外部程序
- linux服务器远程调用window平台MySql。
- 浅谈WebService跨平台远程调用技术
- 本地windows跑Scala程序调用Spark
- 本地windows跑Python程序调用Spark
- 一个程序调用另一个程序 linux平台
- Spark安装启动 and 在程序中调用spark服务
- struts2 调用spark程序——java 程序调用脚本启动spark
- JDK的RMI处理远程程序调用
- Java程序调用远程Shell脚本
- Spark MLlib算法调用展示平台及其实现过程
- Spark MLlib算法调用展示平台及其实现过程
- spark java程序入门(三)外部程序调用
- 移除视图
- git 代码库回滚
- Android版本列表
- Notepad++编译C语言代码的配置过程
- 用strace工具跟踪系统调用
- 远程调用Spark平台中的程序
- [LeetCode 258] Add Digits
- 拓扑排序+优先队列
- C语言open()函数:打开文件函数
- Android 时间戳简单转化
- C++ 贪吃蛇穿墙与自定义地图
- WebView自适应
- JavaScript组成
- Activity管理和应用程序的退出(推荐使用stack)