Spark 学习(在master节点提供向外服务)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用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" => {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值