1、Maven插件&打包
1.1、Maven打包插件
-
打包插件
- maven-jar-plugin,默认的打包插件,⽤来打普通的jar 包,需建⽴lib⽬录⾥来存放需要的依赖包
- maven-shade-plugin (推荐) 将依赖的jar包打包到当前jar 包,成为fat JAR包,也可以防⽌类冲突 隔离
- maven-assembly-plugin,⼤数据项⽬⽤的⽐较多,⽀持 ⾃定义的打包结构,⽐如sql/shell等
-
测试插件
- maven-surefire-plugin, ⽤于mvn ⽣命周期的测试阶段 的插件,通过参数设置在junit下控制测试
1.2、pom文件添加打包插件
<build>
<finalName>xdclass-flink</finalName>
<plugins>
<!--默认编译版本⽐较低,所以⽤compiler插件,指定项⽬
源码的jdk版本,编译后的jdk版本和编码,-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${file.encoding}
</encoding>
</configuration>
</plugin>
<!-- 添加依赖到jar包 -->
<!--<plugin>-->
<!--<artifactId>maven-assemblyplugin</artifactId>-->
<!--<configuration>-->
<!--<descriptorRefs>-->
<!--<descriptorRef>jar-withdependencies</descriptorRef>-->
<!--</descriptorRefs>-->
<!--</configuration>-->
<!--<executions>-->
<!--<execution>-->
<!--<id>make-assembly</id>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>single</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
1.3、编译打包
(1)进行编译
mvn clean
(2)进行打包
mvn install
(3)查看打包结果
learn_one-1.0-SNAPSHOT:主模块的配置
original-xdclass-flink:只包含常规代码
xdclass-flink:资源文件+常规代码,可独立运行
2、部署模式
2.1、Local本地部署
- 应用场景:直接启动进程,适合调试使用
- 运行命令如下:
#在flink的bin目录下运行
./flink run /opt/module/flink-1.10.1/examples/batch/WordCount.jar
- 运行结果
2.2、Standalone Cluster部署
- 应用场景:生产环境
flink run -m hadoop102:45036 -yd /opt/module/flink-1.10.1/examples/batch/WordCount.jar
(1)参数 -m:Jobmanager的地址和端口
(2)参数 -yd:yarn模式的背影运行
2.3、Flink的WEB UI部署
上传文件后定义以下相关参数
:1、主类名 -com.lihaiwei.text1.app.Flink01App
:2、并行度 -2
:3、传入程序参数
:4、输出文件路径
(1)show plan查看执行计划
(2)Submit提交任务
(3)查看运行结果
(4)取消任务
附:疑难杂症
Ⅰ、编码GBK的不可映射字符
- 问题如下
- 解决方式
(1)在pom文件中如下内容
- 主要检查:encoding是否为UTF-8
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>6</source>
<target>6</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build>
(2)检查IDEA编码是否正确
1、先检查settings中的编码格式是否为UTF-8
2、文件夹右键之后Rebuild下