简介
本篇讲解如何创建Flink的初始项目。
Flink支持使用Java或者Scala语言来编写Flink应用。这里建议使用Scala语言。Scala独有的匿名函数用法,类型推断和隐式转换可以很大程度上精简代码。可以让开发人员投入更多精力在编写业务逻辑上。
创建Flink初始项目
Flink项目需要引入Flink的相关依赖包,Scala还需要配置Scala的Maven环境等等,比较繁琐。可以使用Maven的archetype generate命令来自动生成初始项目的骨架。
Scala项目:
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-scala \
-DarchetypeVersion=1.8.0
Java项目:
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.8.0
构建项目
mvn clean package
注意事项
观察到pom.xml如下几行配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>org.apache.flink:force-shading</exclude>
<exclude>com.google.code.findbugs:jsr305</exclude>
<exclude>org.slf4j:*</exclude>
<exclude>log4j:*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- Do not copy the signatures in the META-INF folder.
Otherwise, this might cause SecurityExceptions when using the JAR. -->
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>inspur.BatchJob</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
如图所示,其中transformer
标签的mainClass
指定了BatchJob这个Class。提交Flink Job时,如果没有显式指定class,默认会以此处配置的class为准,作为默认的项目运行入口。
网友评论