spark-shell、spark-sql 都是是一个独立的 spark application,启动几个就是几个 spark application每次都要重新启动申请资源。
用thriftserver,无论启动多少个客户端(beeline),只要是连在一个thriftserver上,它都是一个spark application,后面不用在重新申请资源。能数据共享(上一个beeline做了缓存,下一个beeline能用)
用thriftserver,在UI中能直接看到sql的执行计划,方便优化。
启动 thriftserver
开启多个 beeline 客户端连接
在第一个 beeline 中执行 关联查询,发现花费 4S
第二个 beeline 中执行同样的 关联查询,只用了 0.7S
thriftserver 在 WebUI 中可以方便的查看 执行计划