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

理解Spark SQL(一)—— CLI和ThriftServerSpark SQL主要提供了两个工具来访问hive中的数据,即CLI和ThriftServer。前提是需要Spark支持Hive,即编译Spark时需要带上hive和hive-thriftserver

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的默认端口)。

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

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

 

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

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

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

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

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

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

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

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

  也就是说执行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,如下图所示:

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

  而且它提供一个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

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

 上述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

 

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

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10882.html

(0)
上一篇 2022-12-20
下一篇 2022-12-20

相关推荐

  • 用Python splitext方法轻松实现文件扩展名分割

    用Python splitext方法轻松实现文件扩展名分割splitext是Python中的一个内置函数,用于将文件名与文件扩展名分离,返回一个元组。splitext方法可以轻松实现文件扩展名的分割,方便用户对文件进行处理,也是Python文件处理中常用的一个方法。

    2024-03-10
    33
  • select语句的含义_数据库select语句

    select语句的含义_数据库select语句第03章 MySQL基本的SELECT语句 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业

    2023-04-29
    98
  • 使用Python正则表达式匹配字符串

    使用Python正则表达式匹配字符串正则表达式是一种强大的工具,可以在文本中搜索、匹配、替换特定的模式。Python的re模块提供了处理正则表达式的基本方法,使得我们能够高效地使用正则表达式进行字符串匹配。

    2024-05-08
    11
  • MySQL 聚集索引和二级索引「建议收藏」

    MySQL 聚集索引和二级索引「建议收藏」Clustered and Secondary Indexes(聚集索引和二级索引) Every InnoDB table has a special index called the cluster

    2023-02-06
    87
  • 用Navicat创建MySQL存储过程

    用Navicat创建MySQL存储过程1.使用Navicat for MySQL工具创建存储过程步骤: 点击函数右键新建: 点击下一步 最后点击完成以后弹出以下界面 在此处编写自己的sql语句,编写完成以后点击保存 最后测试一下自己的存…

    2023-03-10
    105
  • SQL Server 连接数据库报错 (ObjectExplorer)

    SQL Server 连接数据库报错 (ObjectExplorer)报错信息 无法访问数据库 ReportServer。 (ObjectExplorer) 具体错误信息: 程序位置: 在 Microsoft.SqlServer.Management.UI.VSInte

    2023-03-27
    120
  • 使用PyCharm进行Python开发

    使用PyCharm进行Python开发Python是一种高级编程语言,广泛应用于各种领域,如Web开发、数据科学、人工智能等。而PyCharm是一款功能强大的Python集成开发环境(IDE),具有强大的代码编辑、调试、测试和版本控制等功能,是Python程序员必不可少的工具之一。

    2024-04-25
    11
  • SQL 谓词简介_sql 谓词

    SQL 谓词简介_sql 谓词学习重点 谓词就是返回值为真值的函数。 掌握 LIKE 的三种使用方法(前方一致、中间一致、后方一致)。 需要注意 BETWEEN 包含三个参数。 想要取得 NULL 数据时必须使用 IS NULL。

    2023-04-29
    93

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注