查看原文
其他

Spark Thrift Server快速入门

alitrack alitrack 2022-10-01


经常有初学Spark的朋友问我,"没有合适的环境让我方便学习SQL,我熟悉MySQL(或者Postgres,MSSQL),我不喜欢命令行的方式(spark-sql),推荐一个好用的客户端吧", 我回答到,你需要Spark Thrift Server 和Dbeaver或者SQuirreL SQL Client。

Spark Thrift JDBC/ODBC Server (简称 Spark Thrift Server 或者 STS)是Spark SQL的Apache Hive HiveServer2的端口(默认10000),通过这个端口可以允许用户使用JDBC/ODBC端口协议来执行SQL查询。 通过使用STS,用户就可以用使用一些炫目的BI工具,比如Superset来连接Spark进行基于大数据量的报表制作。当然也可以使用支持JDBC的客户端,比如我今天推荐的客户端Dbeaver,

DBeaver是一个SQL客户端和数据库管理工具。对于关系数据库,它使用JDBC API通过JDBC驱动程序与数据库交互。对于其他数据库(NoSQL),它使用专有数据库驱动程序。它提供了一个编辑器,支持代码完成语法突显。它提供了一种插件体系结构(基于Eclipse插件体系结构),允许用户修改应用程序的大部分行为,以提供与数据库无关的针对数据库的功能或特性。这是一个用Java编写的基于Eclipse平台的桌面应用程序。

本次依然以Windows环境为例(Linux和Mac下相对更加简单),

  • 准备工作:

    • 下载Dbeaver,并解压缩

    • 下载winutils,并解压缩

    • 下载Spark, 解压缩即可

    • 下载安装JDK,推荐Amazon Corretto, 只需要下载解压缩即可

  • 启动Spark Thrift Server假设JDK,winutils,Spark均解压缩到了c:\spark目录下,具体可以看下代码的路径信息(可以根据具体需要修改),

@rem start-thriftserver.cmd@rem 设置基础环境变量set HADOOP_HOME=c:\spark\winutils-master\hadoop-2.7.1set JAVA_HOME=c:\spark\jdk1.8.0_202set PATH=%JAVA_HOME%\bin;%PATH%set SPARK_HOME=c:\spark\spark-2.4.2-bin-hadoop2.7@运行Spark ThriftServerjava -cp %SPARK_HOME%/conf/*;%SPARK_HOME%/jars/* -Xmx1g org.apache.spark.deploy.SparkSubmit --master local[*] --class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 --name "Thrift JDBC/ODBC Server" spark-internalpause

  • Dbeaver设置Spark的连接


  • 更多练习

SHOW DATABASES
SHOW TABLES
DROP TABLE irisDROP table iris_extselect * from csv.`c:\\spark\\data\\iris.csv`
CREATE TABLE irisUSING csvOPTIONS (path "c:\\spark\\data\\iris.csv", header "true", inferSchema "true")
show create table irisSELECT * from iris
CREATE EXTERNAL TABLE iris_ext STORED AS PARQUET LOCATION 'c:\\spark\\data\\iris'select * from iris
show tables
SELECT * from iris_ext
DESCRIBE iris_ext
show CREATE table iris_ext
SELECT count(*) from iris
SELECT Species, count(*) as cnt from iris group by 1
  • 下面顺便提下spark-sql和beelin的访问方式,

    • 直接使用Spark SQL

      set HADOOP_HOME=c:\spark\winutils-master\hadoop-2.7.1set JAVA_HOME=c:\spark\jdk1.8.0_202set SPARK_HOME=c:\spark\spark-2.4.2-bin-hadoop2.7%SPARK_HOME%/bin/spark-sql.cmd
    • 使用beelin连接Spark Thrift Server

      set HADOOP_HOME=c:\spark\winutils-master\hadoop-2.7.1set JAVA_HOME=c:\spark\jdk1.8.0_202set SPARK_HOME=c:\spark\spark-2.4.2-bin-hadoop2.7%SPARK_HOME%/bin/beelin.cmd!connect jdbc:hive2://localhost:10000

       

  • 视频

  • 参考资料

    • https://github.com/alitrack/pyspark/blob/master/iris.csv

    • https://dbeaver.io/download/

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存