Flink之提交任务


一、Flink 代码及打包

1.1、代码

package com.hpsk.flink.stream;

import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;
import java.util.Arrays;

public class StreamWordCount {
    public static void main(String[] args) throws Exception {
        // 1.创建执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(2); // 设置并行度
        ParameterTool parameterTool = ParameterTool.fromArgs(args); // 获取外部参数
        String host = parameterTool.get("host");
        int port = parameterTool.getInt("port");
        // 2.读取文本流数据
        DataStreamSource<String> socketDS = env.socketTextStream(host, port);
        // 3.汇总统计
        SingleOutputStreamOperator<Tuple2<String, Long>> wordCount = socketDS
                .flatMap((String line, Collector<String> words) -> {
                    Arrays.stream(line.split(" ")).forEach(words::collect);
                })
                .returns(Types.STRING)
                .map(word -> Tuple2.of(word, 1L))
                .returns(Types.TUPLE(Types.STRING, Types.LONG))
                .keyBy(t -> t.f0)
                .sum(1);
        // 4.打印
        wordCount.print(">>>");
        // 5.执行
        env.execute();
    }
}

1.2、打包

1.利用maven插件进行打包如下图

在这里插入图片描述

二、Flink Web页面提交

  1. 进入flink Web页面:http://hostname:8081/
    在这里插入图片描述

  2. 双击jar进入如下页面,设置参数并提交:注意提前开启nc 8888端口
    在这里插入图片描述
    在这里插入图片描述

  3. nc命令行输入数据,查看Flink Web 输出

在这里插入图片描述

由于并行度设置的是2,3台机器只有2台是有数据的,如下图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Flink 命令行提交

3.1、Standalone 模式

  1. 提交命令
bin/flink run -c com.hpsk.flink.stream.StreamWordCount -p 2 myjars/original-flinkLearning-1.0-SNAPSHOT.jar --host hadoop102 -port 8888
  1. Web页面查看job

    在这里插入图片描述

  2. 停止job

 1、bin/flink stop -m hadoop102:8081 jobId
 2、bin/flink cancel -m hadoop102:8081 jobId

3.2、Yarn 模式

3.2.1、 yarn-session

  1. 启动yarn session

     bin/yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d
    

    -n(–container):TaskManager 的数量。
    -s(–slots): 每个 TaskManager 的 slot 数量,默认一个 slot 一个 core,默认每个
    taskmanager 的 slot 的个数为 1,有时可以多一些 taskmanager,做冗余。
    -jm:JobManager 的内存(单位 MB)。
    -tm:每个 taskmanager 的内存(单位 MB)。
    -nm:yarn 的 appName(现在 yarn 的 ui 上的名字)。
    -d:后台执行。

    如果出现启动失败的情况,如下图
    在这里插入图片描述
    则需将如下的hadoop classpath添加到/etc/profile中

     export HADOOP_CLASSPATH=`hadoop classpath`
     export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
    
  2. 提交任务

 bin/flink run -c com.hpsk.flink.stream.StreamWordCount myjars/original-flinkLearning-1.0-SNAPSHOT.jar --host hadoop102 -port 8888
  1. Flink Web界面查看提交任务在这里插入图片描述

  2. Yarn Web界面查看提交任务
    在这里插入图片描述

  3. 取消 yarn-session

    bin/yarn application --kill application_1684041808228_0001
    

3.2.2、 yarn-cluster

  1. 不启动yarn-session直接提交任务
 bin/flink run -m yarn-cluster -c com.hpsk.flink.stream.StreamWordCount myjars/original-flinkLearning-1.0-SNAPSHOT.jar --host hadoop102 --port 8888
  1. Yarn Web界面

在这里插入图片描述

  1. Flink Web界面
    在这里插入图片描述

  2. 查看集群上运行的job

    ./bin/flink list -t yarn-application -Dyarn.application.id=application_1684041808228_0007
    
  3. 取消Job

    bin/flink cancel -t yarn-application -Dyarn.application.id=application_1684041808228_0007 f7ace78d07e3e24f0a2f848fa0e22a88
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值