使用Spark SQL构建交互式查询引擎

简介: StreamingPro目前已经涵盖流式/批处理,以及交互查询三个领域,实现配置和SQL化

前言

StreamingPro 原来仅仅是用来作为Spark Streaming的一个配置化+SQL封装,然而不经意间,已经涵盖了批处理,交互式查询等多个方面。今天就讲讲如何使用StreamingPro构建一个交互式查询引擎。

准备工作

  • 下载StreamingPro
如果你使用了 Spark 2.0 版本,则要下载对应页面上的Spark 安装包。因为目前Spark 2.0 默认支持Scala 2.11。我提供了一个机遇Scala 2.10版本的。
 我们假设您将文件放在了/tmp目录下。
  • 启动StreamingPro
Local模式:
cd  $SPARK_HOME

./bin/spark-submit   --class streaming.core.StreamingApp \
--master local[2] \
--name sql-interactive \
/tmp/streamingpro-0.2.1-SNAPSHOT-dev-1.6.1.jar    \
-streaming.name sql-interactive    \
-streaming.platform spark   \
-streaming.rest true   \
-streaming.driver.port 9004   \
-streaming.spark.service true
AI 代码解读

访问

http://127.0.0.1:9004/sqlui
AI 代码解读

后可进入查询界面:
b3213b10e8c5cebc48d334501f03a8cf29d0cead
Snip20160709_5.png

目前支持elasticsearch 索引,HDFS Parquet 等的查询,并且支持多表查询。
除了交互式界面以外,也支持接口查询:
http://127.0.0.1:9004/runtime/spark/sql
AI 代码解读
参数支持:
2fea15a29bc9ec92a88ba1163829e0f8ce791428
上面的参数都是成套出现,你可以配置多套,从而映射多张表。
集群模式:
cd  $SPARK_HOME

./bin/spark-submit   --class streaming.core.StreamingApp \
--master yarn-cluster \
--name sql-interactive \
/tmp/streamingpro-0.2.1-SNAPSHOT-dev-1.6.1.jar    \
-streaming.name sql-interactive    \
-streaming.platform spark   \
-streaming.rest true   \
-streaming.driver.port 9004   \
-streaming.spark.service true
AI 代码解读
接着进入spark-ui界面获取driver的地址,就可以访问了。

服务发现

因为集群模式,driver的地址是变化的,所以一旦集群启动后我们需要注册到某个地方,从而能然前端知道。目前支持zookeeper的方式,在启动命令行中添加如下几个参数:
-streaming.zk.servers 127.0.0.1:2181 \
-streaming.zk.conf_root_dir  /streamingpro/jack
AI 代码解读
之后前端程序只要访问
/streamingpro/jack/address
AI 代码解读
就能获取IP和端口了。
目录
打赏
0
0
0
0
110
分享
相关文章
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
日志服务 SQL 引擎全新升级
SQL 作为 SLS 基础功能,每天承载了用户大量日志数据的分析请求,既有小数据量的快速查询(如告警、即席查询等);也有上万亿数据规模的报表级分析。SLS 作为 Serverless 服务,除了要满足不同用户的各类需求,还要兼顾性能、隔离性、稳定性等要求。过去一年多的时间,SLS SQL 团队做了大量的工作,对 SQL 引擎进行了全新升级,SQL 的执行性能、隔离性等方面都有了大幅的提升。
190 14
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
229 0
SQL在构建系统中的应用:关键要素与编写技巧
在构建基于数据库的系统时,SQL(Structured Query Language)扮演着至关重要的角色
【赵渝强老师】Spark SQL的数据模型:DataFrame
本文介绍了在Spark SQL中创建DataFrame的三种方法。首先,通过定义case class来创建表结构,然后将CSV文件读入RDD并关联Schema生成DataFrame。其次,使用StructType定义表结构,同样将CSV文件读入RDD并转换为Row对象后创建DataFrame。最后,直接加载带有格式的数据文件(如JSON),通过读取文件内容直接创建DataFrame。每种方法都包含详细的代码示例和解释。
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
181 0
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
139 0
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
140 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等