![Flink与Kylin深度实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/467/37323467/b_37323467.jpg)
上QQ阅读APP看书,第一时间看更新
2.7 shell命令行代码调试
Flink支持通过shell命令行的方式来运行代码,类似于Spark的shell命令行代码调试,以便开发人员对代码执行结果进行跟踪调试,查验代码问题所在。
Flink shell方式支持流式处理和批量处理,启动shell命令行之后,两个不同的Execu-tionEnvironments会被自动创建,然后通过senv变量和benv变量分别处理流式处理和批量处理程序(类似于spark-shell中的sc变量)。
2.7.1 批量处理代码调试
接下来先尝试一下批量处理代码调试功能,使用benv变量来实现代码的使用与开发。
(1)进入Flink的scala-shell
在node01上执行以下命令进入scala-shell。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_02.jpg?sign=1739410121-OrpQYySVMYZ1RReNGwoIWGyHXYsjUJqX-0-217c34900dcdf64b45d99e0570e8a959)
也可以启动Flink的集群,然后进入Flink的shell客户端,将任务提交到Flink集群上。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_03.jpg?sign=1739410121-3eeokcXZKe0NkIWMau9kJ78ZRku59B37-0-a249906058f06ed3ab877a305c48cb4f)
(2)使用benv变量执行批量处理
在scala-shell下,使用批量处理来调试代码。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_04.jpg?sign=1739410121-CIHHM49LwfiqGmuLP3N0y1YcGutz3PQT-0-d59d8ca83e78923f35ddca0878bdee30)
2.7.2 实时处理代码调试
通过senv变量实现代码调试。
1)在node01上启动Socket服务端。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_05.jpg?sign=1739410121-QiPenNwFeZgdfgLXpLadD00BnNLg43jW-0-0ff7ddef0dbbbf3eed8d4792c5418087)
2)进入scala-shell客户端。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/43_01.jpg?sign=1739410121-ZhfE67ge9txcCrTBOCexEJch0UCuTLQT-0-e953c4228309290a5c59ba292b9aecce)
3)使用senv变量来统计单词出现的次数。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/43_02.jpg?sign=1739410121-6wfTZAAwX3eXK5nb4gHdESq25ClGRrdc-0-b2b0f63d65990dccee774226a3226478)
4)node01服务器发送单词。在节点执行“nc-lk 9000”命令后,在控制台输入单词即可。