深入浅出 Spark Thrift Sever

2023-11-09

一,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并不适合通用场景。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入浅出 Spark Thrift Sever 的相关文章

随机推荐

  • 多态的概念

    一 多态的概念 多态 Polymorphism 按字面的意思就是 多种状态 是面向对象的序设计语言最核心的特征 具体点就是去完成某个行为 当不同的对象去完成时会产生出不同的状态 多态建立在继承和封装的基础上 二 多态的分类 编译时多态 设计
  • 静态成员变量的初始化,以及可能引发的multiple define问题

    静态成员变量的初始化 以及可能引发的multiple define问题 先说个人问题的解决方式 不要再头文件中定义静态成员变量 示例 test h ifndef TEST H define TEST H class hh static in
  • 网络协议的三个要素是什么?各有什么含义?

    网络协议的三个要素是什么 各有什么含义 网络协议 为进行网络中的数据交换而建立的规则 标准或约定 由以下三个要素组成 1 语法 即数据与控制信息的结构或格式 2 语义 即需要发出何种控制信息 完成何种动作以及做出何种响应 3 规则 即事件实
  • 删除tomcat日志

    1 df 查看磁盘空间 2 对应用户进去删掉对应日志 3 重启tomcat 重新生成文件 或者 4 lsof grep deleted发现有大量刚刚删除文件的进程存在 kill掉进程 5 使用df 查看磁盘空间 发现已经回收 最好重启下to
  • 二叉搜索树的中序遍历为 递增序列_Go 刷 Leetcode 系列:恢复二叉搜索树

    二叉搜索树中的两个节点被错误地交换 请在不改变其结构的情况下 恢复这棵树 示例 1 输入 1 3 null null 2 1 3 2输出 3 1 null null 2 3 1 2 示例 2 输入 3 1 4 null null 2 3 1
  • 一维连续型随机变量的函数分布

    目录 a b N 2 a b N 0 1 2 N 2 e sin a b N 2 a b N 0 1 2 N 2 e sin
  • LoadRunner脚本测试——登录实践

    实习公司最近在做一款会计项目的财政管理系统 跟着测试组在做登录响应测试时 学到了不少实践经验 本文作以简单阐述和分享 通过代理服务器录制脚本 测试系统的门户必须用Chrome打开 然而测试环境lr11似乎只对IE浏览器兼容 事实上 lr与浏
  • Java入门(2) —— 变量详解、运算符、定义类和定义方法以及方法的调用

    1 变量 1 定义变量 1 声明的同时直接赋值 数据类型 变量名 值 2 先声明 后赋值 声明 数据类型 变量名 赋值 变量名 值 2 数据类型 基本数据类型 4类8种 整数 gt 直接写整数 默认就是 int byte 1个字节 shor
  • 喷水装置(一)贪心算法

    听说这是 贪心算法 的一个简单应用 虽说是简单 但是对我来说 确实不简单 说下面说有用的 题目描述 现有一块草坪 长为20米 宽为2米 要在横中心线上放置半径为Ri的喷水装置 每个喷水装置的效果都会让以它为中心的半径为实数Ri 0
  • Fire-YOLO:一种用于火灾检测的小目标检测方法

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨CY 来源丨当交通遇上机器学习 编辑丨极市平台 极市导读 本次介绍的文章是太原理工大学团队在2022年发表在 Sustainability 的关于火灾检测的小目标实
  • qiankun 常见问题集合(一)

    qiankun 常见问题集合 一 1 loader js 220 Uncaught in promise Error qiankun You need to export lifecycle functions in app4 entry
  • 在使用localstorage的时候发生了报错的解决办法

    在使用localstorage的时候 发生了报错 提示是传入的格式不正确 但是传入的是json格式 为什么不正确呢 1 在localStorage setItem 过程中 传进的参数需使用JSON tringfy 方法转成json格式的字符
  • 用链式线性表实现两个一元多项式相加

    include
  • springboot+vue跨域(草稿箱中翻出来的)

    第一种 新建 GlobalCorsConfig 类 import org springframework context annotation Bean import org springframework context annotati
  • Copilot是GPT的理想应用模式吗?

    自OpenAI发布ChatGPT以来 LLM持续火热 各大公司纷纷入场 但近一段时间以来 我观测到的LLM应用场景 基本都是Copilot的形式 即以对话为基础的辅助应用 尽管体验起来十分的高大上 但我能明确感受到 这种Copilot的形式
  • pyspark中文api

    内容基于官网pyspark SparkSQL官方文档翻译及拓展 官方文档 https spark apache org docs latest api python reference pyspark sql index html 具体使用
  • Eclipse上的HTML/JSP/XML编辑器插件Eclipse HTML Editor

    官网 http amateras sourceforge jp cgi bin fswiki en wiki cgi page EclipseHTMLEditor Eclipse HTML Editor is an Eclipse plug
  • js的三种弹窗

    1 alert 提示框 用途 一般用于提示信息或者警告信息的展示 2 confirm option 确认 或 取消 消息框 用途 用户点击 确定 或 取消 按钮时 弹窗会返回一个布尔值 确认返回true 取消返回false 由此可以判断用户
  • adb shell 执行sh脚本_程序开发——Shell脚本

    Shell 是一个用 C 语言编写的程序 它是用户使用 Linux 的桥梁 Shell 既是一种命令语言 又是一种程序设计语言 Shell 是指一种应用程序 这个应用程序提供了一个界面 用户通过这个界面访问操作系统内核的服务 Ken Tho
  • 深入浅出 Spark Thrift Sever

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