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