热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flink学习使用IDEA+SCALA编写WordCount

hangicestreamhideruntime:通知人:1个前提条件1.1系统环境1.2确认环境2创建一个项目3个配置元素4写代码5个运营项目1个前提条件1.1系统环境需要安装M

hangicestreamhideruntime:

通知人:

1个前提条件

1.1系统环境

1.2确认环境

2创建一个项目

3个配置元素

4写代码

5个运营项目

1个前提条件

1.1系统环境

需要安装Maven,Java,Scala。

1.2批准条件:

确认Java和Scala版本。 Scala的版本与项目的进一步设计有关。

1)确认Java版本

2)确认Scala版本

2创建一个项目

Maven创建了:

创建一个订单。

Mvn原型:生成-DarchetypeGroupId = org.apache.flink -DarchetypeArtifactId = flink-faststart-scala -DarchetypeVersion = 1.9.0

注意事项: -DarchetypeVersion = 1.9.0是flink版本号,要保持一致,您也可以在创建项目后对其进行更改。

3个配置元素

1)查看pom.xml文件

继续根据系统环境覆盖和扩展选件的数量

\\ ult  --

Apache Software Foundation(ASF)许可

或更多的投资者专利。见花文件

有关此工作的更多信息

与版权拥有权有关。 FFA为此文件申请了专利

Apache许可2.0版(

“许可”);除合规性外,您不得使用此文件

附有执照。您可以在以下位置获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0:

只要现行法律或书面协议没有要求,

根据许可分发的软件分为

“他们是如何”相关联,没有艺术和条件的情况

科学,无论明示或暗示。见许可证

控制权限和限制的特殊语言

经许可。

->

\\ ltlt;项目xmlns =“ http://maven.apache.org/POM/4.0.0”

xmlns: xsi =“ http://www.w3.org/2001/XMLSchema-instance”

xsi: schemaLocation =“ http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd‘\\u0026gt;

\\ ltlt; modelVersion \\ u0026 4.0.0 \\ u0026 lt; / modelVersion \\

\\ ltlt; groupId \\ lt; / groupId \\

\\ ltlt; artifactId \\> artifactId \\ ltlt; / artifactId \\

\\ ltlt;版本\\ 1.0快照\\ /版本\\

\\ ltlt;包装\\罐子/包装>>

\\ ltlt;名称\\ Flink快速启动作业/名称\\

\\ ltlt;网址\\ http: //www.myorganization.org\\u0026lt; / url 00>

\\ ltlt;仓库>>

\\ ltlt;备份>>

\\ ltlt; id \\> apache.snapshots \\ lt; / id \\

\\ ltlt;名称\\ Apache开发快照存储库/名称\\

\\ ltlt;网址\\ https: //repository.apache.org/content/repositories/snapshots/\\u0026lt; / url 00>

\\ ltlt;发布\\

\\ ltlt;已连接>假的/已连接

\\ ltlt; /发布>>

\\ ltlt;照片\\

\\ ltlt;已连接>真实\\ ltlt; /已连接

\\ ltlt; /照片\\

\\ ltlt; /存储>>

\\ ltlt; /备件>>

\\ ltlt;属性\\

\\ ltlt; project.build.sourceEncoding \\ UTF-8 \\ /project.build.sourceEncoding\\u0026gt;

\\ ltlt; flink.version \\ 1.9.2 lt; /flink.version\\u0026gt;

\\ ltlt; scala.binary.version \\ 2.12 lt; /scala.binary.version\\u0026gt;

\\ ltlt; scala.version \\ 2.12.11 \\ /scala.version\\u0026gt;

\\ ltlt; /属性>

\\ ltlt;成瘾>>

\\ ult  -Apache Flink依赖项-\\

\\ ult  -这些依赖关系得到保护,因为它们不应打包在JAR文件中。

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-scala _ $ {scala.binary.version} \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ $ {flink.version \\ ult26 lt; /版本\\

\\ ltlt;范围提供\\ ltlt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-streaming-scala _ $ {scala.binary.version} 00 u0026 lt; / artifactId \\

\\ ltlt;版本\\ $ {flink.version \\ ult26 lt; /版本\\

\\ ltlt;范围提供\\ ltlt; /范围

\\ ltlt; /成瘾>>

\\ ult  -Scala库,也由Flink提供。

\\ ltlt; <依赖关系>

\\ ltlt; org.scala-lang \\ ult26; / groupId \\

\\ ltlt; artifactId \\> scala-库\\ ult26 / artifactId \\

\\ ltlt;版本\\ $ {scala.version \\ ult26; /版本\\

\\ ltlt;范围提供\\ ltlt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-connector-skull-0.10_2.10 \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ 1.9.2 lt; /版本\\

\\ ltlt; /成瘾>>

\\ ult  -在此处连接连接器。它们必须在默认框架中(编译):-\\

\\ ult  -例如。

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-connector-skull-0.10 _ $ {scala.binary.version} 00 u0026 lt; / artifactId \\

\\ ltlt;版本\\ $ {flink.version \\ ult26 lt; /版本\\

\\ ltlt; /成瘾>>

->

\\ ult  -在IDE中工作时添加输入框以生成安慰输出。

\\ ult  -将这些依赖项从适用的JAR中静默排除。

\\ ltlt; <依赖关系>

\\ ltlt; org.slf4j \\ ult26 lt; / groupId \\

\\ ltlt; artifactId \\> slf4j-log4j12 \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ 1.7.7 lt; /版本\\

\\ ltlt;范围启动\\ lt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; log4j \\; / groupId \\

\\ ltlt; artifactId \\> log4j \\; / artifactId \\

\\ ltlt;版本\\ 1.2.17 \\ /版本\\

\\ ltlt;范围启动\\ lt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; /成瘾\\

\\ ltlt;建立\\

插入插件;

\\ ult  -我们使用maven-color应用程序创建了一个包含所有必要瘾的胖子。

\\ ult  -更改\\ mainClass的值... \\ / mainClass \\如果您的程序访问点发生更改:-\\

插入插件;

\\ ltlt; org.apache.maven.plugins \\ u0026 lt; / groupId \\

\\ ltlt; artifactId \\> maven-tint-plugin \\ ult26; / artifactId \\

\\ ltlt;版本\\ 3.0.0 \\ /版本\\

\\ ltlt;处决\\

\\ ult  -在打包阶段启动影子目标。

\\ ltlt;性能>>

\\ ltlt;阶段>包装\\ /相位>

\\ ltlt;目标\\

\\ ltlt;目的00 >>阴影\\ /目的>>

\\ ltlt; /目标<>

\\ ltlt;形成>

\\ ltlt; artifactSet \\

\\ ltlt;排除\\

\\ ltlt;排除\\ org.apache.flink:功率阴影\\ /排除\\

\\ ltlt;排除\\ com.google.code.findbugs: jsr305 \\ u0026 lt; /排除\\

\\ ltlt;排除\\ org.slf4j: * \\ u0026 lt; /排除\\

\\ ltlt;排除\\ log4j: * \\ u0026 lt; /排除\\

\\ ltlt; /排除\\

\\ ltlt; / artifactSet \\

\\ ltlt;过滤器

\\ ltlt;过滤器

\\ ult  -请勿在META-INF文件夹中复制签名。

否则,使用JAR时可能会导致SecurityException。

\\ ltlt; <人工制品> *: * \\ u0026 lt; /神器>

\\ ltlt;排除\\

\\ ltlt;排除\\ META-INF / *。 SF \\ LT; /排除\\

\\ ltlt;排除\\ META-INF / *。 DSA \\ lt; /排除\\

\\ ltlt;排除\\ META-INF / *。 RSA \\ u0026 lt; /排除\\

\\ ltlt; /排除\\

\\ ltlt; /过滤器

\\ ltlt; /过滤器

\\ ltlt;变压器\\

\\ ltlt;变压器实现=“ org.apache.maven.plugins.shade.resource.ManifestResourceTransformer” \\

\\ ltlt;基本类groupId.StreamingJob \\; / mainClass \\

\\ ltlt; /变压器>>

\\ ltlt; /变压器\\

\\ ltlt; /组成>>

\\ ltlt; /性能>>

\\ ltlt; /执行\\

\\ ltlt; /插件\\

\\ ult  -Java编译器-\\

插入插件;

\\ ltlt; org.apache.maven.plugins \\ u0026 lt; / groupId \\

\\ ltlt; artifactId \\> maven-compiler-plugin \\; / artifactId \\

\\ ltlt;版本\\ 3.1 lt; /版本\\

\\ ltlt;形成>

\\ ltlt;来源>> 1.8 \\ lt; /来源>

\\ ltlt;目标\\ 1.8 \\ lt; /目标\\

\\ ltlt; /组成>>

\\ ltlt; /插件\\

\\ ult  -Scala编译器-00>

插入插件;

\\ ltlt; net.alchim31.maven \\ / groupId \\

\\ ltlt; artifactId \\> scala-maven-plugin \\ ult26; / artifactId \\

\\ ltlt;版本\\ 3.2.2 lt; /版本\\

\\ ltlt;处决\\

\\ ltlt;性能>>

\\ ltlt;目标\\

\\ ltlt;目的00 >>使/目的>>

\\ ltlt;目的00 >>编译测试/目的>>

\\ ltlt; /目标<>

\\ ltlt; /性能>>

\\ ltlt; /执行\\

\\ ltlt; /插件\\

\\ ult  -Darking Scala集成-00 ugt26;

插入插件;

\\ ltlt; org.apache.maven.plugins \\ u0026 lt; / groupId \\

\\ ltlt; artifactId \\> maven-eclipse-plugin \\; / artifactId \\

\\ ltlt;版本\\ 2.8 lt; /版本\\

\\ ltlt;形成>

\\ ltlt;下载源文件真实\\ ltlt; /下载源代码

\\ ltlt;项目\\

\\ nbsp;项目\\ org.scala-ide.sdt.core.sullahature \\ ult26 lt; /项目\\

\\ ltlt;项目\\ org.eclipse.jdt.core.javanature \\ ult26 lt; /项目\\

\\ ltlt; /设计\\

\\ ltlt; buildcommands \\

\\ ltlt; buildcommand \\ org.scala-ide.sdt.core.scalabuilder \\ ult26 lt; / buildcommand \\

\\ ltlt; / buildcommands \\

\\ ltlt; classpathContainers \\

等级

\\ ltlt; classpathContainer \\ org.eclipse.jdt.launching.JRE_CONTAINER \\ ult26 lt; / classpathContainer \\

\\ ltlt; / classpathContainers \\

\\ ltlt;排除\\

\\ ltlt;排除\\ org.scala-lang: scala-库\\ ult26 /排除\\

\\ ltlt;排除\\ org.scala-lang: scala编译器\\ /排除\\

\\ ltlt; /排除\\

\\ ltlt;来源包括\\

\\ ltlt;来源包括\\ ** / *。斯卡拉\\ / sourceInc包含\\

\\ ltlt;来源包括\\ ** / *。 java \\ u0026 lt; / SourceInclud \\;

\\ ltlt; / SourceIncludes \\

\\ ltlt; /组成>>

\\ ltlt; /插件\\

插入插件;

\\ ltlt; org.codehaus.mojo \\ ult26; / groupId \\

\\ ltlt; artifactId \\> build-helper-maven-plugin \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ 1.7; /版本\\

\\ ltlt;处决\\

\\ ult  -将src / main / scala添加到eclipse的构造中->

\\ ltlt;性能>>

\\ ltlt; id \\>添加源代码/ id \\

\\ ltlt;阶段>生成源/相位>

\\ ltlt;目标\\

\\ ltlt;目的00 >>添加源代码/目的>>

\\ ltlt; /目标<>

\\ ltlt;形成>

\\ ltlt;来源\\

\\ ltlt;来源>> src / main / scala \\ /来源>

\\ ltlt; /来源\\

\\ ltlt; /组成>>

\\ ltlt; /性能>>

\\ ult  -将src / test / scala添加到黑暗的构建路径中->

\\ ltlt;性能>>

\\ ltlt; id \\>添加测试源\\ / id \\

\\ ltlt;阶段>生成测试源/相位>

\\ ltlt;目标\\

\\ ltlt;目的00 >>添加测试源\\ /目的>>

\\ ltlt; /目标<>

\\ ltlt;形成>

\\ ltlt;来源\\

\\ ltlt;来源>> src / test / scala \\ /来源>

\\ ltlt; /来源\\

\\ ltlt; /组成>>

\\ ltlt; /性能>>

\\ ltlt; /执行\\

\\ ltlt; /插件\\

\\ ltlt; /插件\\

\\ ltlt; / build \\

\\ ult  -此配置文件有助于防止事物与IntelliJ匹配。

\\ ult  -将Flink的基本课程添加到测试类路径中。

\\ ult  -否则,在IntelliJ中会丢失它们,因为提供了依赖性‘-\\ ugt26;

\\ ltlt;配置文件\\

\\ ltlt;个人资料\\

\\ ltlt; id \\>在IDEA上添加\\ lt; / id \\

\\ \\激活\\

\\ ltlt;属性\\

\\ ltlt;名称\\ idea.version \\ ult26 lt; /名称\\

\\ ltlt; /属性>>

\\ ltlt; /激活\\

\\ ltlt;成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-scala _ $ {scala.binary.version} \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ $ {flink.version \\ ult26 lt; /版本\\

\\ ltlt;范围编译lt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-streaming-scala _ $ {scala.binary.version} 00 u0026 lt; / artifactId \\

\\ ltlt;版本\\ $ {flink.version \\ ult26 lt; /版本\\

\\ ltlt;范围编译lt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.scala-lang \\ ult26; / groupId \\

\\ ltlt; artifactId \\> scala-库\\ ult26 / artifactId \\

\\ ltlt;版本\\ $ {scala.version \\ ult26; /版本\\

\\ ltlt;范围编译lt; /范围

\\ ltlt; /成瘾>>

\\ ltlt; <依赖关系>

\\ ltlt; org.apache.flink \\ ult26; / groupId \\

\\ ltlt; artifactId \\> flink-connector-skull_2.12 \\ u0026 lt; / artifactId \\

\\ ltlt;版本\\ 1.9.2 lt; /版本\\

\\ ltlt; /成瘾>>

\\ ltlt; /成瘾\\

\\ ltlt; /配置文件

\\ ltlt; /个人资料\\

\\ ltlt; /项目\\

pom.xml配置文件

2)程序的结构

添加scala环境。

注意事项:首次使用时,IDEA不会安装Scala插件,您需要自己安装(打开scala后缀文件,IDEA会自动提示您安装它)。

4写代码

1)Scala新文件

注意事项: 《名称公约》是大写字母,首字母大写

2)编写代码

导入org.apache.flink.api.scala._

主题字数:

def main(争议。数组[String])。单位= {

//创建执行环境

val env = ExceptionEn Environment.getExociationEnociation:

//获取输入数据

val text = env.fromElements(

“你好,世界特产价格图片大全哪里有!”

“你好,世界!”

“你好,世界。”

val计数= text.flatMap _.toLowerCase.split(“”)

.map {(_,1)

.groupBy(0)

.sum(1)

//执行并打印结果

counts.print()

}

}

5个运营项目

1)输出结果

使用IDEA + SCALA编写WordCounthangicestreamhideruntime。JS


推荐阅读
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 如何解决TS1219:实验性装饰器功能可能在未来版本中更改的问题
    本文介绍了两种方法来解决TS1219错误:通过VSCode设置启用实验性装饰器,或在项目根目录下创建配置文件(jsconfig.json或tsconfig.json)。 ... [详细]
  • packagecom.panchan.tsmese.utils;importjava.lang.reflect.ParameterizedType;importjava.lang. ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 2017年5月9日学习总结
    本文记录了2017年5月9日的学习内容,包括技术分享和相关知识点的深入探讨。 ... [详细]
  • 本文章提供了适用于 Cacti 的多核 CPU 监控模板,支持 2、4、8、12、16、24 和 32 核配置。请注意,0.87g 版本的 Cacti 需要手动修改哈希值为 0021 才能使用,而 0.88 及以上版本则可直接导入。 ... [详细]
  • Gty的二逼妹子序列 - 分块与莫队算法的应用
    Autumn 和 Bakser 正在研究 Gty 的妹子序列,但遇到了一个难题。他们希望计算某个区间内美丽度属于 [a, b] 的妹子的美丽度种类数。本文将详细介绍如何利用分块和莫队算法解决这一问题。 ... [详细]
  • 年前,我发表了一篇文章,分享了自己通过在线教育平台学习IT技能的经历。文中详细探讨了在线教育与传统线下教育在技能培训方面的优缺点。许多网友在讨论在线教育时,常常提到“在线教育是否缺乏学习氛围”的问题。本文将对此进行深入分析。 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 本文介绍了一种使用CSS3和jQuery实现的35款SVG图标加载动画。这些动画不仅视觉效果出色,还能提升用户体验。通过本文,您可以了解如何在项目中应用这些动画。 ... [详细]
  • 本文介绍了如何在 Qt 应用程序中实现状态栏、浮动窗口(铆接部件)和中心部件。通过简单的代码示例,详细解释了每个组件的创建和设置方法。 ... [详细]
  • 本文介绍了 Confluence 6 中使用的其他 Cookie,这些 Cookie 主要用于存储产品的基本持久性和用户偏好设置,以提升用户体验。 ... [详细]
  • 第七卷《英才》强调,即使有良药,若不对症,效果也不如低等药物;即使有贤才,若不适用,效果也不如普通人。文中通过多个比喻,阐述了人才使用的重要性,指出合适的人才在适当的时间和场合才能发挥最大效用。 ... [详细]
author-avatar
豆豆马捷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有