flink不打印std输出中的对象

nbysray5  于 2021-06-24  发布在  Flink
关注(0)|答案(2)|浏览(450)

我正在用flink做一个简单的程序,但是它不会在std输出中打印任何字符串。我试过在流上使用print()方法,在结果上使用reduce函数和after print()方法。这是一个代码:
公共类流化作业{

public static void main(String[] args) throws Exception {
    final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.enableCheckpointing(10000);
    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
    env.getConfig().setAutoWatermarkInterval(200L);
    List<Oggetto> objects = produciValori();
    DataStream<Oggetto> stream = env.fromCollection(objects);
    stream./*
    timeWindowAll(Time.seconds(5)).reduce(new Reduce()).*/
    print();
    env.execute("Flink Streaming Java Quickstart Mio");
}

private static List<Oggetto> produciValori() {
    List<Oggetto> objects = new ArrayList<>();
    int prop1 = 0;
    int prop2 = 1000;
    String stringa1 = "stringa1: " + prop1;
    String stringa2 = "stringa2: " + prop2;
    for (int i = 0; i < 1000; i++) {
        prop1 = prop1 + 1;
        prop2 = prop2 + 1;
        stringa1 = "stringa1: " + prop1;
        stringa2 = "stringa2: " + prop2;
        Oggetto o = new Oggetto(prop1, prop2, stringa1, stringa2);
        objects.add(o);
    }
    return objects;
}

private static class Reduce implements org.apache.flink.api.common.functions.ReduceFunction<Oggetto> {
    @Override
    public Oggetto reduce(Oggetto oggetto, Oggetto t1) throws Exception {
        if (oggetto.getPropInt1() <= t1.getPropInt1()){
            return oggetto;
        }else {
            return t1;
        }
    }
}

}

9bfwbjaz

9bfwbjaz1#

如果要将此作业提交到集群,则应该在名为-taskexecutor-.out的文件中的flink log目录中找到输出。如果您在ide中运行,那么输出应该出现在ide的控制台中。
没有可用的oggetto类,我只是用一些简单的东西替换了它,并且能够很好地运行您的应用程序。

vlf7wbxs

vlf7wbxs2#

所以当你使用 println() 或者 print() 要打印流数据/对象,它实际上在控制台上打印。
在本地执行代码时 IDE 它打印流数据/对象 IDE console 但是
当您将代码部署为 Flink Job 您可以在中看到打印输出 .out 文件在你的flink目录中。在下图中,您可以看到 flink-keshavlodhi-taskexecutor-0-Keshavs-MacBook-Pro.local.out 文件。
你可以在你的系统中找到flink日志目录,在那里你已经提取了flink tar文件。例如

/Users/keshavlodhi/softwares/flink-1.10.0/log/


注意:无论何时使用 logger 打印的API,您可以在其中找到流数据/对象 .log 文件夹。

相关问题