远程调用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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃辣的嗓子疼怎么办 美团客户更改地址怎么办 忘记steam的账户名称怎么办 重置手机忘了密码怎么办 sp下行短信费扣怎么办 hr公司业务员招不到人怎么办 卖房中介被房倒压房子怎么办 电脑放不了dvd光盘怎么办 股东迟迟不交齐股本金怎么办 wps转pdf就乱了怎么办 被有用分期骗了怎么办 找不到以前有用分期的账号怎么办 打工去韩国不懂韩语怎么办? 想去韩国整容没钱怎么办 专接本没接上怎么办 抄写经文写错了怎么办 在外地修车被宰怎么办 国外汇款公司名称写错了怎么办 增值税专票没有机器编码怎么办 发票右上角的编码打不全怎么办 税票名称开错了怎么办 开票名称开错了怎么办 退休党员不交党费怎么办 cad打不出来字怎么办 用cad打不出来字怎么办 打字总打错字母怎么办 mac做ppt卡住了怎么办 mac的ppt卡住了怎么办 淘宝店铺被屏蔽了怎么办 淘宝申请售后卖家拒绝怎么办 淘宝投诉卖家入口关闭怎么办 遇见最喜欢孩子的父母怎么办 房屋备案表丢了怎么办 淘宝发布商品没有品牌怎么办 电子发票名称写错了怎么办 合同写错了划掉怎么办 进京证日期错了怎么办 买车时谈的协议与合同不一致怎么办 新车上牌找不到流水号怎么办 开票数量比入库数量少怎么办 我贷款的app忘了怎么办