TOP

Spark SQL的ThriftServer服务和图形化客户端
2018-12-29 13:23:52 】 浏览:487
Tags:Spark SQL ThriftServer 服务 图形 客户端

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinadrew/article/details/80458442

通常我们是在控制台输入命令: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。

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


Spark SQL的ThriftServer服务和图形化客户端 https://www.cppentry.com/bencandy.php?fid=116&id=201250

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark性能调优-数据本地性 下一篇使用Intellij Idea搭建Spark开发..