![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=1739511886-4i1oPHAqF0L1gzPo9tjlMZxmgpbRMcSo-0-7e89898c25205d5941804220d6afa70e)
也可以启动Flink的集群,然后进入Flink的shell客户端,将任务提交到Flink集群上。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_03.jpg?sign=1739511886-vTiGGeOcvrClKwE5tESRXOzBxCnl6cWL-0-262d3746e5632c6d1e96d7e8ea60ba7d)
(2)使用benv变量执行批量处理
在scala-shell下,使用批量处理来调试代码。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_04.jpg?sign=1739511886-KJh4dFT9dGhZlHUZ9lEQM9hYQRAAmE1M-0-3db77fe4b3918c58a887586b6938c310)
2.7.2 实时处理代码调试
通过senv变量实现代码调试。
1)在node01上启动Socket服务端。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/42_05.jpg?sign=1739511886-7jYSlSx6SViyIcOCckdUAPhYj3HDbGMW-0-6d0ad70de0ea933124102dfd566f6a81)
2)进入scala-shell客户端。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/43_01.jpg?sign=1739511886-aZyx4syBza68xiCG6njPnGVsIgl9BFYO-0-4f3f9996df5f2806f1aaede36683cdec)
3)使用senv变量来统计单词出现的次数。
![](https://epubservercos.yuewen.com/B89B1D/19773740901350206/epubprivate/OEBPS/Images/43_02.jpg?sign=1739511886-YbhUCef0S77jkCxCVhf2UpxAQovNVbN9-0-23252f288e133989a1a000c0efc3f059)
4)node01服务器发送单词。在节点执行“nc-lk 9000”命令后,在控制台输入单词即可。