返回顶部
首页 > 资讯 > 数据库 >理解Spark SQL(一)—— CLI和ThriftServer
  • 726
分享到

理解Spark SQL(一)—— CLI和ThriftServer

理解SparkSQL(一)——CLI和ThriftServer 2017-01-02 16:01:26 726人浏览 猪猪侠
摘要

spark sql主要提供了两个工具来访问Hive中的数据,即CLI和ThriftServer。前提是需要Spark支持Hive,即编译Spark时需要带上hive和hive-thriftserver选项,同时需要确保在$SPARK_HOM

spark sql主要提供了两个工具来访问Hive中的数据,即CLI和ThriftServer。前提是需要Spark支持Hive,即编译Spark时需要带上hive和hive-thriftserver选项,同时需要确保在$SPARK_HOME/conf目录下有hive-site.xml配置文件(可以从hive中拷贝过来)。在该配置文件中主要是配置hive metastore的URI(Spark的CLI和ThriftServer都需要)以及ThriftServer相关配置项(如hive.server2.thrift.bind.host、hive.server2.thrift.port等)。注意如果该台机器上同时运行有Hive ThriftServer和Spark ThriftServer,则hive中的hive.server2.thrift.port配置的端口与spark中的hive.server2.thrift.port配置的端口要不一样,避免同时启动时发生端口冲突。

启动CLI和ThriftServer之前都需要先启动hive metastore。执行如下命令启动:

[root@BruceCentos ~]# nohup hive --service metastore &

成功启动后,会出现一个Runjar的进程,同时会监听端口9083(hive metastore的默认端口)。

 

 

 先来看CLI,通过spark-sql脚本来使用CLI。执行如下命令:

[root@BruceCentOS4 spark]# $SPARK_HOME/bin/spark-sql --master yarn

上述命令执行后会启动一个yarn client模式的Spark程序,如下图所示:

  同时它会连接到hive metastore,可以在随后出现的spark-sql>提示符下运行hive sql语句,比如:

  其中每输入并执行一个SQL语句相当于执行了一个Spark的Job,如图所示:

  也就是说执行spark-sql脚本会启动一个yarn clien模式的Spark Application,而后出现spark-sql>提示符,在提示符下的每个SQL语句都会在Spark中执行一个Job,但是对应的都是同一个Application。这个Application会一直运行,可以持续输入SQL语句执行Job,直到输入“quit;”,然后就会退出spark-sql,即Spark Application执行完毕。

 

另外一种更好地使用Spark SQL的方法是通过ThriftServer,首先需要启动Spark的ThriftServer,然后通过Spark下的beeline或者自行编写程序通过JDBC方式使用Spark SQL。

通过如下命令启动Spark ThriftServer:

[root@BruceCentOS4 spark]# $SPARK_HOME/sbin/start-thriftserver.sh --master yarn

执行上面的命令后,会生成一个SparkSubmit进程,实际上是启动一个yarn client模式的Spark Application,如下图所示:

  而且它提供一个JDBC/ODBC接口,用户可以通过JDBC/ODBC接口连接ThriftServer来访问Spark SQL的数据。具体可以通过Spark提供的beeline或者在程序中使用JDBC连接ThriftServer。例如在启动Spark ThriftServer后,可以通过如下命令使用beeline来访问Spark SQL的数据。

[root@BruceCentOS3 spark]# $SPARK_HOME/bin/beeline -n root -u jdbc:hive2://BruceCentOS4.hadoop:10003

 上述beeline连接到了BruceCentOS4上的10003端口,也就是Spark ThriftServer。所有连接到ThriftServer的客户端beeline或者JDBC程序共享同一个Spark Application,通过beeline或者JDBC程序执行SQL相当于向这个Application提交并执行一个Job。在提示符下输入“!exit”命令可以退出beeline。

最后,如果要停止ThriftServer(即停止Spark Application),需要执行如下命令:

[root@BruceCentOS4 spark]# $SPARK_HOME/sbin/stop-thriftserver.sh

 

 综上所述,在Spark SQL的CLI和ThriftServer中,比较推荐使用后者,因为后者更加轻量,只需要启动一个ThriftServer(对应一个Spark Application)就可以给多个beeline客户端或者JDBC程序客户端使用SQL,而前者启动一个CLI就启动了一个Spark Application,它只能给一个用户使用。

 

 

 

 

您可能感兴趣的文档:

--结束END--

本文标题: 理解Spark SQL(一)—— CLI和ThriftServer

本文链接: https://lsjlt.com/news/2413.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 理解Spark SQL(一)—— CLI和ThriftServer
    Spark SQL主要提供了两个工具来访问hive中的数据,即CLI和ThriftServer。前提是需要Spark支持Hive,即编译Spark时需要带上hive和hive-thriftserver选项,同时需要确保在$SPARK_HOM...
    99+
    2017-01-02
    理解Spark SQL(一)—— CLI和ThriftServer
  • 理解Spark SQL(二)—— SQLContext和HiveContext
    使用Spark SQL,除了使用之前介绍的方法,实际上还可以使用SQLContext或者HiveContext通过编程的方式实现。前者支持SQL语法解析器(SQL-92语法),后者支持SQL语法解析器和HiveSQL语法解析器,默认为Hiv...
    99+
    2017-07-25
    理解Spark SQL(二)—— SQLContext和HiveContext
  • 理解Spark SQL(三)—— Spark SQL程序举例
    上一篇说到,在Spark 2.x当中,实际上SQLContext和HiveContext是过时的,相反是采用SparkSession对象的sql函数来操作SQL语句的。使用这个函数执行SQL语句前需要先调用DataFrame的createO...
    99+
    2020-09-04
    理解Spark SQL(三)—— Spark SQL程序举例
  • 理解Spark运行模式(一)(Yarn Client)
    Spark运行模式有Local,STANDALONE,YARN,MESOS,KUBERNETES这5种,其中最为常见的是YARN运行模式,它又可分为Client模式和Cluster模式。这里以Spark自带的SparkPi来说明这些运行模式...
    99+
    2021-12-17
    理解Spark运行模式(一)(Yarn Client)
  • 如何理解Spark Streaming的数据可靠性和一致性
    如何理解Spark Streaming的数据可靠性和一致性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。眼下大数据领域最热门的词汇之一便是流计算了,其中最耀眼的项目无疑是来自S...
    99+
    2023-06-19
  • 怎么理解spark的自定义分区和排序及spark与jdbc
    这篇文章将为大家详细讲解有关怎么理解spark的自定义分区和排序及spark与jdbc,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。//自定义分区import org.apache...
    99+
    2023-06-02
  • 如何解析Apache Spark 统一内存管理模型
    今天就跟大家聊聊有关如何解析Apache Spark 统一内存管理模型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Apache Spark 统一内存管理模型详解下面将对 Spark...
    99+
    2023-06-02
  • 使用Spark时的一些常见问题和解决办法
    这篇文章主要讲解了“使用Spark时的一些常见问题和解决办法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用Spark时的一些常见问题和解决办法”吧!首先来说说spark任务运行完后查错最...
    99+
    2023-06-02
  • 详解Unique SQL原理和应用
    目录1、什么是Unique SQL2、Unique SQL如何统计3、如何使用Unique SQL4、用Unique SQL辅助定位问题4.1查询异常的行活动导致的磁盘争用4.2查询...
    99+
    2024-04-02
  • LINQ To SQL和ORM怎么理解
    这篇文章主要讲解了“LINQ To SQL和ORM怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ To SQL和ORM怎么理解”吧!LINQ To SQL和ORM的理解1、没...
    99+
    2023-06-17
  • 一篇文章教你如何理解SQL
    这篇文章主要介绍了一篇文章教你如何理解SQL,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SQL 是一种为数不多的声明性语言,它的运行方式完...
    99+
    2024-04-02
  • 理解sql中的group by和having
    下面通过一个例子,来简单解释group by的原理。 1. GROUP BY 假设我们有表1,表名为test: 如果我们执行如下SQL语句: SELECT name FROM test GROUP BY name 我们很容易可以...
    99+
    2019-09-16
    理解sql中的group by和having
  • 如何理解sql注入和xss攻击
    SQL注入攻击是指通过构建特殊的输入作为参数传入Web应用程序,一般是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作;而Xss攻击称为跨站脚本攻击,它是一种经常出现在web应用中的计算机安全漏洞,因Web应用程序对用户的...
    99+
    2024-04-02
  • SQL Server权限管理和数据恢复详解
    Microsoft公司的SQL Server是企业中广泛使用的数据库,现在很多的电子商务网站、企业信息化等都是基于SQL Server进行搭建部署的。随着网络的不断发展,非法用户技术的日益增长,针对SQL ...
    99+
    2024-04-02
  • Spring(一):IOC如何推导和理解
    目录IOC的推导1.1、模拟一个正常查询信息的业务流程:1.2、多个种类的查询1.3、优化查询方式1.4、IOC本质IOC的推导 1.1、模拟一个正常查询信息的业务流程: ①mapp...
    99+
    2024-04-02
  • 解析Mybatis Porxy动态代理和sql解析替换问题
    目录JDK常用核心原理概述过程详解JDK动态代理sql语句解析替换JDK常用核心原理 概述 在 Mybatis 中,常用的作用就是讲数据库中的表的字段映射为对象的属性,在进入Myba...
    99+
    2024-04-02
  • 如何理解Oracle和MySQL中短小精悍的SQL
    这篇文章将为大家详细讲解有关如何理解Oracle和MySQL中短小精悍的SQL,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 如果让你写一个简单牛叉的SQ...
    99+
    2024-04-02
  • 如何理解ABAP的OPEN SQL和Hybris Commerce的Flexible Search
    如何理解ABAP的OPEN SQL和Hybris Commerce的Flexible Search,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在ABAP应用里...
    99+
    2023-06-04
  • Mybatis一对多和多对一处理的深入讲解
    目录建表 多对一处理 mapper实体类按照查询嵌套处理按照结果嵌套处理回顾Mysql多对一查询方式一对多处理mapper实体类按照查询嵌套处理按照查询嵌套处理结果映射面试高频点总结...
    99+
    2024-04-02
  • 一文读懂Hadoop-正确认识和理解
    一.什么是hadoop? Hadoop是Apache旗下的一套开源软件平台,是用来分析和处理大数据的软件平台。 Hadoop提供的功能:利用服务器集群,根据用户的自定义业务逻辑, 对海量数据进行分布式处理。3.Hadoop的核心组...
    99+
    2016-06-09
    一文读懂Hadoop-正确认识和理解
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作