利用Spark进行数据的处理之后,需要将结果返回给客户端,一种办法就是将处理得结果保存起来,客户端去访问这个结果。这种模式比较适合计算量比较大,结果相对比较稳定,实时性不高的情况。另外一种办法就是直接在SparkContext提供服务给客户端,用JavaWeb进行是一种选项,这里采用利用Scala编程,对外提供http服务,返回的结果是Json格式,下面是代码:
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
import org.apache.tools.ant.taskdefs.Java
import org.mortbay.jetty.{HttpStatus, Request}
import org.mortbay.jetty.{HttpStatus, Request, Server}
import org.mortbay.jetty.handler._
import org.apache.spark.sql.hive._
import org.apache.spark.{SparkContext,SparkConf}
/**
* Created by tsq on 2016-10-04.
*/
object MainThread extends AbstractHandler {
var _server: Server = null
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 "getData" => {

本文介绍如何在Spark中通过Scala创建Http服务,返回Json格式的数据,适用于实时性要求较高的场景。该方法本质是利用Java实现Http服务,但在Scala中更便捷。
最低0.47元/天 解锁文章
5492

被折叠的 条评论
为什么被折叠?



