Flink SQL Client配置与应用

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 笔记

(1)Flink SQL Client介绍


SQL 客户端 的目的是提供一种简单的方式来编写、调试和提交表程序到 Flink 集群上,而无需写一行 Java 或 Scala 代码。SQL 客户端命令行界面(CLI) 能够在命令行中检索和可视化分布式应用中实时产生的结果。

1.gif

Flink SQL Client架构

2.png

SQL Client可视化模式


CLI 为维护和可视化结果提供三种模式。


表格模式(table mode) 在内存中实体化结果,并将结果用规则的分页表格可视化展示出来。执行如下命令启用:

SET execution.result-mode=table;

变更日志模式(changelog mode) 不会实体化和可视化结果,而是由插入(+)和撤销(-)组成的持续查询产生结果流。

SET execution.result-mode=changelog;

Tableau模式(tableau mode) 更接近传统的数据库,会将执行的结果以制表的形式直接打在屏幕之上。具体显示的内容会取决于作业 执行模式的不同(execution.type):

SET execution.result-mode=tableau;


(2)解决Hive的坑


在配置HiveCatalog之前需要确保hive的安装,见博客:


https://blog.csdn.net/weixin_45366499/article/details/107299478

hive安装完成之后要启动hive metastore

bin/hive --service metastore

在启动的同时会出现两处问题,没有请跳过!

第一个坑:

Caused by: MetaException(message:Version information not found in metastore. )


3.png

解决方法:

修改 conf/hive-site.xml 中的 “hive.metastore.schema.verification”改为 false

<property>
       <name>hive.metastore.schema.verification</name>
        <value>false</value>
</property>

第二个坑:

Caused by: MetaException(message:Required table missing : "`DBS`" in Catalog "" Schema "".

4.png

解决方法:

在conf下的hive-site.xml添加

<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
</property>

没有问题之后即hive的metastore启动成功!


(3)配置Hive与Flink的集成


在配置HiveCatalog之前要先确保Hive与Flink的集成没有问题!

第一步:配置HADOOP_CLASSPATH,需要在/etc/profile文件中配置如下的环境变量

export HADOOP_CLASSPATH=`hadoop classpath`

第二步:将hive的jar包复制到flink的lib目录下


flink-connector-hive_2.11-1.12.1.jar

hive-exec-2.3.4.jar

flink-connector-hive_2.11-1.12.1.jar这个包在maven仓库下载:


https://mvnrepository.com/artifact/org.apache.flink/flink-connector-hive_2.11/1.12.1


(4)配置HiveCatalog


配置sql-client-defaults.yaml,修改catalogs,需要更改两个地方


第一个地方:

catalogs:  # empty list
# A typical catalog definition looks like:
   - name: myhive
     type: hive
     hive-conf-dir: /opt/modules/hive/conf
     default-database: flink
     hive-version: 2.3.4

注意要把[ ]这个中括号去掉

第二个地方:

6.png


(5)启动测试


启动Flink集群:

bin/start-cluster.sh

启动Hadoop集群

start-all.sh

启动hive metastore(重要)

bin/hive --service metastore

最后启动SQL client

bin/sql-client.sh embedded

到这里可能还会出现一个问题,没有请跳过!

Caused by: java.lang.IllegalArgumentException: Embedded metastore is not allowed. Make sure you have set a valid valu

image.png

解决方法:在hive-site.xml下配置

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://bigdata-pro-m07:9083</value>
</property>

经过种种挫折最终测试成功,但并不意味着所有的坑都已经踩完

8.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
3月前
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
103 0
|
21天前
|
SQL 存储 缓存
Flink SQL Deduplication 去重以及如何获取最新状态操作
Flink SQL Deduplication 是一种高效的数据去重功能,支持多种数据类型和灵活的配置选项。它通过哈希表、时间窗口和状态管理等技术实现去重,适用于流处理和批处理场景。本文介绍了其特性、原理、实际案例及源码分析,帮助读者更好地理解和应用这一功能。
97 14
|
2月前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
128 9
|
2月前
|
SQL 数据库
如何应用SQL约束条件?
【10月更文挑战第28天】如何应用SQL约束条件?
88 11
|
3月前
|
SQL Oracle 关系型数据库
SQL语言的主要标准及其应用技巧
SQL(Structured Query Language)是数据库领域的标准语言,广泛应用于各种数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等
|
2月前
|
SQL 监控 安全
员工上网行为监控软件:SQL 在数据查询监控中的应用解析
在数字化办公环境中,员工上网行为监控软件对企业网络安全和管理至关重要。通过 SQL 查询和分析数据库中的数据,企业可以精准了解员工的上网行为,包括基础查询、复杂条件查询、数据统计与分析等,从而提高网络管理和安全防护的效率。
33 0
|
3月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
3月前
|
SQL 存储 数据库
SQL在构建系统中的应用:关键要素与编写技巧
在构建基于数据库的系统时,SQL(Structured Query Language)扮演着至关重要的角色
|
3月前
|
SQL 数据库 索引
内连接(INNER JOIN)在SQL中的简单应用与技巧
在SQL查询中,内连接(INNER JOIN)是一种基本且常用的连接类型,用于从两个或多个表中检索匹配的记录
|
3月前
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
64 0