当前位置:   article > 正文

Flink ON YARN

flink on yarn

Flink ON YARN 模式就是使用客户端的方式,直接向Hadoop集群提交任务即可,不需要单独启动Flink进程

Flink ON YARN有两种使用方式:

  1. 在yarn中初始化一个flink集群,以后提交任务都提交到这个flink集群中,这个flink集群会常驻在yarn集群中,除非手工停止
  2. 每次提交任务都会创建一个新的flink集群,任务之间相互独立,互不影响,任务执行完成后创建的集群也会消失

一、Flink ON YARN第一种方式

1.1、把flink-1.11.1-bin-scala_2.12.tgz上传解压即可

tar -zxvf  flink-1.11.1-bin-scala_2.12.tgz

1.2、在/etc/profile 中配置HADOOP_CLASSPATH

export HADOOP_CLASSPATH=`${HADOOP_HOME}/bin/hadoop classpath` 

source /etc/profile

 1.3、启动flink集群

bin/yarn-session.sh -jm 1024m -tm 1024m -d 

 

1.4、向这个Flink集群中提交任务

 bin/flink run ./examples/batch/WordCount.jar

运行结果:

 1.5、关闭flink集群

 yarn application -kill application_1660972198484_0001

二、 Flink ON YARN第二种方式

flink run -m yarn-cluster (创建Flink集群+提交任务)

使用flink run直接创建一个临时的Flink集群,并且提交任务 此时这里面的参数前面加上了一个 y 参数

提交上去之后,会先创建一个Flink集群,然后在这个Flink集群中执行任务。

 bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024  ./examples/batch/WordCount.jar 

输出结果:

 针对Flink命令的一些用法汇总

 三、运行实际开发的项目

3.1、在pom中添加打包插件,把项目打包后上传到服务器上

  1. <build>
  2. <plugins>
  3. <!-- 编译插件 -->
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-compiler-plugin</artifactId>
  7. <version>3.6.0</version>
  8. <configuration>
  9. <source>1.8</source>
  10. <target>1.8</target>
  11. <encoding>UTF-8</encoding>
  12. </configuration>
  13. </plugin>
  14. <!-- scala编译插件 -->
  15. <plugin>
  16. <groupId>net.alchim31.maven</groupId>
  17. <artifactId>scala-maven-plugin</artifactId>
  18. <version>3.1.6</version>
  19. <configuration>
  20. <scalaCompatVersion>2.11</scalaCompatVersion>
  21. <scalaVersion>2.11.11</scalaVersion>
  22. <encoding>UTF-8</encoding>
  23. </configuration>
  24. <executions>
  25. <execution>
  26. <id>compile-scala</id>
  27. <phase>compile</phase>
  28. <goals>
  29. <goal>add-source</goal>
  30. <goal>compile</goal>
  31. </goals>
  32. </execution>
  33. <execution>
  34. <id>test-compile-scala</id>
  35. <phase>test-compile</phase>
  36. <goals>
  37. <goal>add-source</goal>
  38. <goal>testCompile</goal>
  39. </goals>
  40. </execution>
  41. </executions>
  42. </plugin>
  43. <!-- 打jar包插件(会包含所有依赖) -->
  44. <plugin>
  45. <groupId>org.apache.maven.plugins</groupId>
  46. <artifactId>maven-assembly-plugin</artifactId>
  47. <version>2.6</version>
  48. <configuration>
  49. <descriptorRefs>
  50. <descriptorRef>jar-with-dependencies</descriptorRef>
  51. </descriptorRefs>
  52. <archive>
  53. <manifest>
  54. <!-- 可以设置jar包的入口类(可选) -->
  55. <mainClass></mainClass>
  56. </manifest>
  57. </archive>
  58. </configuration>
  59. <executions>
  60. <execution>
  61. <id>make-assembly</id>
  62. <phase>package</phase>
  63. <goals>
  64. <goal>single</goal>
  65. </goals>
  66. </execution>
  67. </executions>
  68. </plugin>
  69. </plugins>
  70. </build>

 3.2、提交上去之后,会先创建一个Flink集群,然后在这个Flink集群中执行任务。

  1. bin/flink run -m yarn-cluster -c main.scala.SocketWindowWord
  2. -yjm 1024 -ytm 1024 /data/soft/jars/db_flink-1.0-SNAPSHOT-jar-with-dependencies.jar

结果:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/941734
推荐阅读
相关标签
  

闽ICP备14008679号