flink~使用shell终端
前言
在spark中可以使用shell终端直接使用scala进行调试和测试。在flink中也有类似的shell终端。shell命令行和flink集群交互方便调试。
scala-shell local模式
Flink附带了一个集成的交互式Scala Shell。它可以在本地模式和群集模式中使用。
要将shell与集成的Flink集群一起使用,只需执行:
# 使用shell连接一个本地集成的flink 集群 使用下面命令
bin/start-scala-shell.sh local
注意:该命令集成了flink的执行环境,所以不需要启动flink集群。
scala-shell集成环境说明
shell支持Batch(是批处理)和Streaming(是流处理)。启动后会自动预先绑定两个不同的执行环境。可以使用"benv"和"senv"变量(类似于spark-shell中sc变量)来分别访问Batch和Streaming环境。
使用Batch环境
在scala shell中执行wordcount
启动:bin/start-scala-shell.sh local
scala> val text = benv.fromElements(
| "To be, or not to be,--that is the question:--",
| "Whether 'tis nobler in the mind to suffer",
| "The slings and arrows of outrageous fortune",
| "Or to take arms against a sea of troubles,")
text: org.apache.flink.api.scala.DataSet[String] = org.apache.flink.api.scala.DataSet@479f738a
scala> val counts = text
counts: org.apache.flink.api.scala.DataSet[String] = org.apache.flink.api.scala.DataSet@479f738a
scala> val counts = text.flatMap { _.toLowerCase.split("\\W+") }.map { (_, 1) }.groupBy(0).sum(1)
counts: org.apache.flink.api.scala