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。

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值