1.idea将Flink任务提交到远程Flink集群
在Flink的StreamExecutionEnvironment.scala中有如下2个方法可以将任务提交到Flink集群:
def createRemoteEnvironment(host: String, port: Int, jarFiles: String*):StreamExecutionEnvironment = {
new StreamExecutionEnvironment(JavaEnv.createRemoteEnvironment(host, port, jarFiles: _*))
}
def createRemoteEnvironment(
host: String,
port: Int,
parallelism: Int,
jarFiles: String*): StreamExecutionEnvironment = {
val javaEnv = JavaEnv.createRemoteEnvironment(host, port, jarFiles: _*)
javaEnv.setParallelism(parallelism)
new StreamExecutionEnvironment(javaEnv)
}
StreamExecutionEnvironment创建方式如下:
val jarFiles = "E:\\workspace\\FlinkDemo11\\FlinkSQL\\target\\FlinkSQL-jar-with-dependencies.jar"
val env = StreamExecutionEnvironment.createRemoteEnvironment("hadoop1", 8081, jarFiles)
env.setParallelism(10)
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
先将项目本地打包,然后再在本地运行即可,如下图,由于代码中有设置并行度为10。故任务的并行度为10。即使idea中的任务shutdown,集群中的任务也不会shutdown,需要手动取消。