在上述源码中,可以看到运行Jar包指定的主类为:org.apache.flink.table.gateway.SqlGateway,我们直接去源码中寻找该类的main方法即可找到SQL gateway的入口 2.2、HiveServer2 SQL gateway 启动流程源码分析 我们进入org.apache.flink.table.gateway.SqlGateway的main()方法内: static void startSqlGateway(PrintStream stre...
本文分为3个部分,即gateway启动、rest api使用和hiveserver2 endpoint。 本文的示例是在Flink 1.17版本中运行。 一、概述 SQL Gateway 是一种使远程多个客户端能够并发执行SQL的服务。它提供了一种提交Flink Job、查找元数据和在线分析数据的简单方法。 SQL Gateway 由可插入endpoints 和SqlGatewayService组成。SqlGatew...
官网SQL Gateway hiveserver2模式相关内容参见https://nightlies.apache.org/flink/flink-docs-release-1.16/zh/docs/dev/table/hive-compatibility/hiveserver2/。 要支持hiveserver2模式要求配置相关的依赖。首先需要添加flink-connector-hive_2.12-1.16.0.jar到Flink的lib目录中。jar下载地址为:https://repo1.maven....
当所有数据都获取完了,SQL Gateway会将resultType的值设置为EOS,并且将获取下一批数据的URI设置为null。 Flink SQL Gateway的使用 目前了解到Flink SQL Gateway支持将作业提交到Session集群,这里使用Standalone集群来做作业提交功能的测试。原生的flink支持Rest EndPoint和HiveServer2 Endpoint两种形式 ,下面分别这两种...
{ // 根据配置文件中配置的sql-gateway端点类型来选择是Rest Sql-gateway还是HiveServer2 Sql-gateway endpoints.addAll( SqlGatewayEndpointFactoryUtils.createSqlGatewayEndpoint( sqlGatewayService, defaultConfig)); for (SqlGatewayEndpoint endpoint : endpoints) { // 启动 endpoint.start(); } } catch (...
Flink SQL Gateway需要Hadoop的一些库来与HiveServer2进行通信。你可以通过检查Flink集群的配置文件来确认Hadoop是否已经正确安装。 如果你使用的是Maven或Gradle来构建Flink项目,你可以尝试添加以下依赖项来解决Hadoop依赖问题: org.apache.hadoop hadoop-client 2.7.3CopyCopy implementation 'org.apache.hadoop:hadoop-...
Flink自带了Flink SQL Gateway,显而易见的好处是平台和组件二开人员不需要去自己写Gateway去Dispatch分发任务了,甚至二级调度都可以省了。 本身后端就可以多租户了,还可以支持多种Cluster,K8S和Yarn或者Docker的Standalone混合云考虑一下? 前端支持Rest和Hive Server2,对Java开发人员和SQL Boy们都很友好。
在Flink 1.16 中,我们还引入了一个非常重要的组件 SQL Gateway。通过 SQL Gateway,以及支持的 HiveServer2,使得 Hive 生态中主流的生态产品可以非常自然的接入 Flink 生态。 在Flink 1.16 SQL Gateway 中,我们支持多租户,兼容 HiveServer2 协议,以及 HiveServer2 带来的 Hive 生态。有了 HiveServer2 的配合,整个...
Flink SQL Gateway 则是受限于 Flink 本身不支持多租户; 最后是 Kyuubi,Kyuubi 是 Server 和 Engine 分离的架构,所以至少能在引擎粒度支持多租户 1.4.2. 水平拓展和高可用 水平拓展和高可用这两个特性通常和分布式的架构绑定,因此分布式架构的 Hive Server2 和 Kyuubi 都是支持的,而 Spark Thrift Server 和 Flink...