阅读 100

使用flink-sql-gateway提交sql查询

确保集群安装Flink

使用版本1.12.1作为例子。

假定flink安装目录 /opt/flink

安装flink-sql-gateway

git 地址 ververica/flink-sql-gateway (github.com)

使用1.12分支,自行编译。

image.png

调整flink模式

vi /opt/flink/conf/flink-conf.yaml

增加配置 execution.target: yarn-per-job

设置flink环境变量

export FLINK_HOME=/opt/flink

启动sql gatway

image.png

使用beeline连接到sql gateway

SeeWei1985/flink-jdbc-driver (github.com)

可以直接下载

image.png

将这个jar包放到hive的lib下。

使用beeline命令

连接到sql gateway

image.png

之后,就可以使用sql命令来查看catalog,database,table等信息,以及使用sql语句。

支持哪些语句,参考 flink-sql-gateway的文档。

image.png

sql-gateway支持hive catalog设置

修改配置文件。注意下gateway启动的配置文件路径

image.png

设置hive的catalog

image.png

保存后,重启gateway,使用beeline再次连接,会提示错误。原因在于缺少jar包。

下载flink源码(注意版本对应)进行编译,编译完毕后,拷贝如下几个jar,原因在于flink默认不提供hive的connector,需要我们自己去编译(这里对flink的编译会出现问题,多google下)

将下列jar包复制到flink安装目录的lib下。

flink编译后的jar包如下:

{flink-home}/flink-connectors/flink-connector-hive/target/flink-connector-hive_2.11-1.9-SNAPSHOT.jar

{flink-home}/flink-connectors/flink-hadoop-compatibility/target/flink-hadoop-compatibility_2.11-1.9-SNAPSHOT.jar

hive本身有的jar包如下复制:

{hive-home}/lib/hive-exec-1.2.1.jar

{hive-home}/lib/hive-common-1.2.1.jar

{hive-home}/lib/hive-metastore-1.2.1.jar

{hive-home}/lib/hive-shims-common-1.2.1.jar

{hive-home}/lib/antlr-runtime-3.4.jar

{hive-home}/lib/datanucleus-api-jdo-3.2.6.jar

{hive-home}/lib/datanucleus-core-3.2.10.jar

{hive-home}/lib/datanucleus-rdbms-3.2.9.jar

{hive-home}/lib/mysql-connector-java-5.1.34.jar

{hive-home}/lib/javax.jdo-3.2.0-m3.jar

{hive-home}/lib/libfb303-0.9.3.jar

{hive-home}/lib/commons-cli-1.3.1.jar

这里,我们看到,只需要flink的两个包,因此,我们可以针对这连个jar包单独编译。

进入到对应的子模块执行

mvn clean package -DskipTests -am

等待中....

期间,编译遇到了问题,

javac-shaded-9+181-r4173-1.jar maven 403问题,不知原因,手动去下载,并使用下面的命令导入到本地的maven

mvn install:install-file -Dfile=javac-shaded-9+181-r4173-1.jar -DgroupId=com.google.errorprone -DartifactId=javac-shaded -Dversion=9+181-r4173-1 -Dpackaging=jar

之后,继续编译即可。

最终重启 sql gateway后,使用beeline连接上,通过show catalog 可以查看到hive的database,在hive中创建表,flink中也可以立刻识别到。

作者:__destory__

原文链接:https://www.jianshu.com/p/920cc5308f2a

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐