spark3.0教程:配置、启动Thrift JDBC Server

介绍

Thrift JDBC Server 的作用是取代 HiveServer2,接口和协议都和 HiveServer2 完全一致,可以和 Hive Metastore进行交互,获取到hive的元数据

Thrift JDBC Server默认监听端口是10000,与 HiveServer2 相同

一句话理解

JAVA程序可以通过 JDBC 连接 Thrift JDBC Server,以 Spark on Hive 的方式 查询 Hive 中的表
使用 spark 执行 SQL,提高执行效率

提示:比 hive 执行 SQL快很多(底层转换成 MapReduce)

应用场景

  • springboot工程,通过 JDBC 调用 spark,执行 sql,显示查询结果,或者显示图表

  • dbeaver 通过 JDBC 调用 spark,执行 sql,方便、快速调试 SQL

部署关键

  • 尽量使用 spark with hadoop 版本,因为用 spark without hadoop,需要复制很多jar包

  • 不要启动 hive 的 hiveserver2 服务,Spark Thrift JDBC Server 就是替代 hiveserver2 的,所以这两个服务不能同时启动

配置

将 hive-site.xml 复制到 /program/spark-3.0.0/conf 目录下

cp /program/hive-3.1.2/conf/hive-site.xml  /program/spark-3.0.0/conf/

启动

启动 hive metastore 服务

前台方式启动:

hive --service metastore

后台方式启动:

nohup hive --service metastore 2>&1 &

详见:https://www.malaoshi.top/show_1IXjyrb5E3w.html

不要启动 hiveserver2

Spark Thrift JDBC Server 服务 代替 hiveserver2,所以不要启动 hiveserver2

关闭 hiveserver2

根据 10000 端口号查找进程

netstat -nltp | grep 10000

执行结果如下:

tcp6       0      0 :::10000                :::*                    LISTEN      2505/java

结束进程:

kill -9 2505

启动 spark thriftserver服务

单机启动

执行下面命令(启动较慢):

/program/spark-3.0.0/sbin/start-thriftserver.sh

执行 jps 命令,查看进程,显示如下:

2598 SparkSubmit

yarn 启动

/program/spark-3.0.0/sbin/start-thriftserver.sh --master yarn

通过 http://hadoop2:8088 可查看进程

测试

通过 jdbc 可直接连接,查询速度非常快,

用 dbeaver 连接,连接方式如下:

url:jdbc:hive2://hadoop1:10000
用户名:root
密码:无

执行下面sql:

select id as a, sum(ele_num) as sum 
from t_cdz 
where ele_num > 100 
group by id

查询速度非常快

关闭服务

/program/spark-3.0.0/sbin/stop-thriftserver.sh

参考:
https://www.jianshu.com/p/36b71cdc1453


原文出处:/show_1IX4LcrvfTiW.html