Spark SQL的ThriftServer服务和图形化客户端

通常我们是在控制台输入命令:spark-sql进入命令行界面:

这是大多数人最喜欢用的,也最熟悉的界面。除了这种方式,还可以借助第三方的客户端来接入Spark SQL,常用的windows下图形客户端有:SQuirreL SQL ClientDbVisualizerOracle SQL Developer等。


那么这三个图形界面都是用的ThriftServer作为服务端,而客户端的SQL请求实际是通过它中转给Spark集群的。ThriftServer是主流的RPC框架,spark中已经嵌入了它,所以只需要启动它即可。

sh $SPARK_HOME/sbin/start-thriftserver.sh     

  --本地运行

sh $SPARK_HOME/sbin/start-thriftserver.sh  

--masterspark://lyy1:7077 

 --集群运行

spark-sql命令一样,也可以加很多控制参数的。

启动之后可以看到:


顺便说一下远程调用服务(RPC)和消息队列(Message Queue)对比

RPC系统结构:Consumer <=>  Provider

即:Consumer调用的Provider提供的服务。RPC是面向动作的请求响应模式。

 

MessageQueue系统结构:Sende <=>  Queue  <=> Receiver

即:Sender发送消息给QueueReceiverQueue拿到消息来处理。MQ是面向数据的生产者消费者模式。

 

主流RPC框架:

thrift(Facebook 开源的一个 RPC 框架)

dubbo(淘宝开源的基于TCPRPC框架)

RMI(JAVA自带的远程方法调用工具)

 

主流MQ框架:

ZeroMQ

Jafka/Kafka

Redis

 

    继续说ThriftServer,由于Spark SQL中自带了thrift,所以可以很方便的通过thrift来查询SQL语句。

在命令行下通过beeline连接ThriftServer

$SPARK_HOME/bin/beeline

进入后连接命令:

!connect jdbc:hive2://master:10000

Enter username for jdbc:hive2:// master:10000:aaa

Enter password for jdbc:hive2:// master:10000:***

然后就连上了SparkSQL,与Spark SQL客户端是一样的,但是速度慢一点。

 

同时也可以通过代码连接ThriftServer,代码如下,直接运行即可。

    但是需要注意的是运行改程序所需的依赖包很容易出错,最简单的方式是使用spark的依赖包:$SPARK_HOME/jars/*,当然其中有用的仅仅是如下几个包

    接下来再讲三个图形界面,最关键的就是导入上图这14个依赖包,就能成功连上spark。至于安装教程,网上很多,但是最关键的还是所依赖的包。它们本质上是以JDBC的方式远程连接spark sql,而spark sql继承自hive,所以连接方式和hive完全一样:

org.apache.hive.jdbc.HiveDriver

jdbc:hive2://master:10000

因此本方法同样适用于hive。

------完-----

### 回答1: Spark SQL是一个用于处理结构化数据的模块,它提供了一种基于SQL的编程接口,可以让用户使用SQL语句来查询数据。ThriftServerSpark SQL的一个组件,它提供了一个基于Thrift协议的服务,可以让用户通过网络连接到Spark SQL,并使用SQL语句来查询数据。Beeline是一个用于连接到ThriftServer的命令行工具,它可以让用户通过命令行界面来执行SQL语句。 使用ThriftServer和Beeline可以让用户通过网络连接到Spark SQL,并使用SQL语句来查询数据。首先需要启动ThriftServer,可以使用以下命令: ``` ./sbin/start-thriftserver.sh ``` 启动成功后,可以使用Beeline连接到ThriftServer,可以使用以下命令: ``` ./bin/beeline -u jdbc:hive2://localhost:10000 ``` 连接成功后,就可以使用SQL语句来查询数据了。例如,可以使用以下命令查询表格: ``` SELECT * FROM table_name; ``` 使用ThriftServer和Beeline可以方便地查询Spark SQL中的数据,特别是在需要远程访问数据时非常有用。 ### 回答2: ThriftServer(又称HiveServer2)和Beeline都是Spark SQL中常用的工具,用于连接和操作Spark SQLThriftServer是一个支持Hive/Spark SQL服务,它允许用户通过多种编程语言(如Java、Python等)来访问和查询数据。ThriftServer通过Thrift协议提供了基于网络的服务,允许远程客户端连接到Spark集群并执行Spark SQL查询。ThriftServer可以通过配置来启用或禁用Kerberos身份验证,以实现安全连接。 Beeline是一个基于命令行的工具,它是Hive和Spark SQL的原生客户端。可以使用Beeline连接到ThriftServer,并通过命令行界面执行Spark SQL查询。Beeline支持多种连接方式,例如通过JDBC连接到ThriftServer、通过Kerberos进行身份验证等。用户可以通过Beeline执行SQL语句、管理数据库、查看查询结果等。 使用ThriftServer和Beeline的步骤如下: 1. 首先,确保Spark集群已经启动,并且ThriftServer已经启动。可以通过spark-sqlspark-sql2启动ThriftServer,默认情况下会监听端口10000。 2. 使用Beeline连接到ThriftServer。可以通过命令beeline -u jdbc:hive2://hostname:port进行连接,其中hostname是ThriftServer所在的主机名或IP地址,port是ThriftServer监听的端口号。此外,还需要提供用户名和密码进行身份验证。 3. 连接成功后,可以在Beeline中执行SQL语句。输入SQL语句后,按下回车键即可执行。查询结果会显示在命令行界面上。还可以使用Beeline提供的命令来管理数据库、查看表、导入导出数据等操作。 ThriftServer和Beeline的使用简单而方便,能够有效地连接和操作Spark SQL。它们为用户提供了一种灵活的方式来查询和管理数据,便于开发人员和数据分析师使用Spark SQL进行数据处理和分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值