Flink QuickStart

作者: AlienPaul | 来源:发表于2019-07-22 11:38 被阅读0次

简介

本篇讲解如何创建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为准,作为默认的项目运行入口。

相关文章

网友评论

    本文标题:Flink QuickStart

    本文链接:https://www.haomeiwen.com/subject/suuilctx.html