DataGrip编写SQL语句操作Spark(Spark ThriftServer)

1.Spark ThriftServer

Spark ThriftServer 相当于一个持续性的Spark on Hive集成模式,可以启动并监听在10000端口,持续对外提供服务,可以使用数据库客户端工具或代码连接上来,操作Spark
在这里插入图片描述
bin/spark-sql 脚本,类似于Hive的 bin/hive脚本
(内部内置了hive的hiveServer2服务或Spark执行引擎,每次脚本执行,都会启动内内置的hiveServer2或Spark引擎),
一旦退出客户端,服务端也就停止。

而, Spark的分布式执行引擎,也即Spark ThriftServer服务,是一个持续性的Spark on Hive集成模式,一旦启动,持续对外提供服务。

可以使用DagaGrip、Pycharm、Navicat等数据库客户端产品,或代码JDBC方式、或Beeline脚本,连接Spark ThriftServer服务,直接编写SQL语句,操作Spark。

2.启动 Spark ThriftServer

SPARK_HOME=/export/server/spark
$SPARK_HOME/sbin/start-thriftserver.sh \
--hiveconf hive.server2.thrift.port=10000 \
--hiveconf hive.server2.thrift.bind.host=node1 \
--master local[2]

local[2]:指定线程并行度,一般是CPU核数2-3倍
master local, 每一条SQL在Local本地运行
master yarn,  每一条SQL在Yarn集群中运行

3.Beeline方式连接

cd /export/server/spark/bin
./beeline
输入:
!connect jdbc:hive2://node1:10000
在这里插入图片描述

4.DataGrip方式连接

单击"+"号,或右键单击 -> 选择数据元 -> 选中 Other -> 选中 Apache Spark
在这里插入图片描述
新建数据源,填写Spark ThriftServer机器地址、监听端口、访问用户
在这里插入图片描述
添加驱动

在这里插入图片描述
配置成功,console窗口就可以直接写SQL
在这里插入图片描述

5. 代码方式

 spark = SparkSession.builder \
        .appName('spark on hive') \
        .master('local[*]') \
        .config('spark.sql.shuffle.partitions', 4) \
        .config('hive.metastore.uris', 'thrift://node1:9083') \
        .config('spark.sql.warehouse.dir', 'hdfs://node1:8020/user/hive/warehouse') \
        .enableHiveSupport() \
        .getOrCreate()

    # 2. 执行相关的操作
    spark.sql("select * from pyspark_hive.stu; ").show()

6. SparkSQL运行方式

thrift server服务出现, 只是提供了新的方式来书写SQL: .
beeline方式 或者 图形化界面方式

适用于: 纯 SQL的开发工作, 开发后, 形成一个个的SQL的脚本, 在部署上线的时候, 采用spark-sql提交运行
.
./spark-sql -f 脚本
./spark-sql -e 'SQL语句‘
./spark-submit py文件或scala文件

7.参考文章

Spark On Hive:即Spark使用Hive的Metastore服务作为元数据管理服务

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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进行数据处理和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值