Flink使用之SQL Client
前言
Flink提供了SQL Client端,有了它我们可以像Hive的beeline一样直接在控制台编写SQL并提交作业。这里与FlinkSQL不同的是,虽然FlinkSQL实现了可以在Flink程序中写SQL,但还是需要写一些java和scala代码,Flink提供了SQL Client可以帮助不会写java和scala的程序员快速上手。
如何使用
Flink SQL client支持运行在standalone集群和Yarn集群上。在提交任务的命令有所不同。
SQL client运行于standalone模式:
- 事先启动一个Flink standalone集群
./start-cluster.sh
- 启动sql-client on standalone
1 |
|
注意。如果使用standalone模式运行,需要事先启动一个Flink standalone集群。方法如下
1./start-cluster.sh
默认情况下,这个sql-client上面所跑的任务,会提交到flink的standalone集群上,如果你没有bin/start-cluster.sh启动standalon集群,那么sql-client进程可以启动起来,但是在实际执行sql的时候,会报如下连接拒绝的错误
运行到Yarn集群上:
- 启动一个yarn-session集群
1 |
|
- 启动sql-client on yarn-session
./sql-client.sh embedded -s yarn-session
1 |
|
大家可能会问:SQL slient怎么知道提交到哪个yarn app上?
指定yarn-session
方式启动的时候会看到如下日志:
1 |
|
Flink每次启动yarn-session
,都会创建一个/tmp/.yarn-properties-root
文件(root为用户名,源码位于FlinkYarnSessionCli
)。内容如下:
1 |
|
记录了最近一次提交的yarn session对应的application ID。SQL client如果使用yarn session模式启动,会查找/tmp/.yarn-properties-root
文件中指定的application id,将SQL提交到这个yarn session上运行。
参考:
觉得不错的话,支持一根棒棒糖吧 ୧(๑•̀⌄•́๑)૭
wechat pay
alipay