深入浅出 Spark Thrift Sever

深入浅出 Spark Thrift Sever,第1张

深入浅出 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,按如下步骤:

  • 1,在spark的conf目录下,创建hive-site.xml(见另一篇文章)
  • 配置 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并不适合通用场景。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5676463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存