深入浅出 Spark Thrift Sever

一,Spark Thrift Sever是什么

Spark借助Hive的Metadata Service可以实现通过命令行客户端工具执行Sql语句,就像是Hive或者Mysql的命令行工具一样,称之为Spark CLI。

Spark CLI适合做一些简单的测试,如Sql语法验证、查看表结构等等,使用起来比较方便。但其有一个限制,Spark CLI必须和HiveMeta Service在同一台服务器,这就限制了Spark CLI的使用范围,局限于开发人员使用。

Spark SQL有没有提供通过客户端(DBeaver)的方式操作SQL呢,就像Hive、Mysql一样可以通过客户端连接,在客户端执行SQL。

其实,Spark提供了这种方式,这就是Spark Thrift Sever,启动了Spark Thrift Sever后,就可以在客户端比如DBeaver使用用户、密码在指定端口下连接到Spark Thrift Sever,连接之后就可以在客户端执行SQL,客户端会将SQL发送到后台,有SparkSQL生成执行计划,交由Spark Core执行。

二,如何使用Spark Thrift Sever

要使用DBeaver连接SparkSQL连接SQL,按如下步骤:

  • 配置 hive metastore
  • 配置客户端连接用的用户名密码
  • 2,启动Spark Thrift Sever
 ./sbin/start-thriftserver.sh
  • 3,DBeaver使用Hive的驱动连接SparkSql
    在这里插入图片描述

三,Spark Thrift Sever的本质是什么

Spark Thrift Sever的本质是以client模式运行的Spark应用

查看系统进程,发现启动Spark Thrift Sever后,其以SparkSubmit的名称常驻进程中。
在这里插入图片描述

到这里,你就会发现,Spark Thrift Sever本质上就是一个Spark应用,和我们开发的Spark Application一样,只不过这个应用比较特殊:

  • 一是它是一个常驻进程;
  • 二是它本身是一个Server,可以接收Client端的请求。

所以,在启动Spark Thrift Sever时,也可以像启动其他Spark Application一样指定参数,比如指定其基于yarn,指定并行度,指定资源等等。如下,指定该应用有yarn进行资源管理:

 ./start-thriftserver.sh --master yarn

不过,这个应用只能使用client模式,即driver只能运行在本地

四,Spark Thrift Sever的局限

Spark Thrift Sever常驻进程的特点使得其很像Spark Standalone,一旦启动之后,不能动态的扩缩容,这个问题导致其使用受到了很大限制,因为在启动时无法确定该使用多大规模的资源,太大太小都不好。但另一方面,其又可以通过yarn分配资源,只不过是一次分配而已。

这是因为这个特点,使得Spark Thrift Sever并不适合通用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值