理解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数据分析实战

    Python数据分析实战Python数据分析是一项重要的计算机技术,它通过使用Python编程语言和相关软件工具来处理和分析数据。在当今信息爆炸的时代,数据已经成为企业和组织获取价值和洞察力的最重要资产。Python是一种通用编程语言,有着丰富的工具集和库,可以快速处理、分析和可视化数据。Python数据分析已经成为各种行业的必备技能,很多公司招聘数据分析人员时也纷纷强制要求应聘者必须熟悉Python。因此,作为数据分析人员,学习Python数据分析是必不可少的。

    2023-12-10
    118
  • sqlserver2014部署安装[通俗易懂]

    sqlserver2014部署安装[通俗易懂]百度云网址链接: https://pan.baidu.com/s/1BwgdnESI8Fqlos9EIOLv1A 提取码: wsy5 1.解压ISO镜像文件,点击setup安装程序 2.进入安装界面

    2022-12-29
    146
  • Python中的数据:为编程提供变量与值

    Python中的数据:为编程提供变量与值Python是一种解释型的高级编程语言,具有简单易学、可扩展性强、具有丰富的第三方库等特点,广泛用于Web开发、数据分析、人工智能等领域。在Python编程中,数据是非常重要的一部分,它为程序提供了存储信息的容器,同时也是程序中流程控制的基础。

    2023-12-09
    113
  • mysql-5.7.21

    mysql-5.7.211 、 下载对用的版本信息 地址是:https://dev.mysql.com/downloads/mysql/ 2 、 解压到目录 D: oolsmysqlmysql-5.7.21-winx6

    2022-12-28
    165
  • 阿里数据库开发规范:谁还敢说你的数据库设计的“烂”[亲测有效]

    阿里数据库开发规范:谁还敢说你的数据库设计的“烂”[亲测有效]数据库设计几个规范: 数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发规范、数据库操作行为规范 数据库命名规范 1、所有数据库对象名称必须使用小写字母并用…

    2023-03-14
    141
  • Python循环语句:重复执行指定的代码块

    Python循环语句:重复执行指定的代码块a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-03-04
    77
  • 如何使用Photoshop套索工具

    如何使用Photoshop套索工具Adobe Photoshop是一款功能强大的图像处理软件,它提供了许多工具来对图像进行编辑和处理。其中一个最实用的工具就是Photoshop的套索工具,这个工具可以让用户根据需要对图像进行选择和裁剪操作。在本文中,我们将深入探讨如何使用Photoshop的套索工具。

    2024-07-06
    36
  • 利用Python defaultdict提高字典操作效率

    利用Python defaultdict提高字典操作效率
    Python字典是一种类似于映射的数据结构,由一系列键值对组成。字典中的键必须是唯一的、不可变的类型,例如字符串、整数或元组,而值可以是任意类型的Python对象。对于许多应用程序来说,Python字典是一种最方便的数据结构,它允许快速访问、插入和删除元素,并支持非常快速的查找操作。

    2024-01-09
    114

发表回复

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