《Flink原理、实战与性能优化》 —2.4.2 运行程序

举报
华章计算机 发表于 2020/02/17 14:03:45 2020/02/17
【摘要】 本节书摘来自华章计算机《Flink原理、实战与性能优化》 一书中第2章,第2.4.2节,作者是张利兵 。

2.4.2 运行程序

启动Scala Shell交互式解释器后,就可以进行Flink流式应用或批量应用的开发。需要注意的是,Flink已经在启动的执行环境中初始化好了相应的Environment,分别使用“benv”和“senv”获取批量计算环境和流式计算环境,然后使用对应环境中的API开发Flink应用。以下代码实例分别是用批量和流式实现WordCount的应用,读者可以直接在启动Flink Scala Shell客户端后执行并输出结果。

通过Scala-Shell运行批量计算程序,调用benv完成对单词数量的统计。

scala> val textBatch = benv.fromElements(

    "To be, or not to be,--that is the question:--",

    "Whether 'tis nobler in the mind to suffer")

scala> val counts = textBatch

    .flatMap { _.toLowerCase.split("\\W+") }

    .map { (_, 1) }.groupBy(0).sum(1)

scala> counts.print()

通过Scala-Shell运行流式计算,调用senv完成对单词数量的统计。

scala> val textStreaming = senv.fromElements(

    "flink has Stateful Computations over Data Streams")

scala> val countsStreaming = textStreaming

    .flatMap { _.toLowerCase.split("\\W+") }

    .map { (_, 1) }.keyBy(0).sum(1)

scala> countsStreaming.print()

scala> senv.execute("Streaming Wordcount")

注意     用户在使用交互式解释器方式进行应用开发的过程中,流式作业和批量作业中的一些操作(例如写入文件)并不会立即执行,而是需要用户在程序的最后执行env.execute(“appname”)命令,这样整个程序才能触发运行。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。