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服务作为元数据管理服务

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值