Flink не печатать объект в выводе STD - PullRequest
0 голосов
/ 03 октября 2019

Я делаю простую программу на flink, но она не печатает ни одной строки в выводе std. Я пытался использовать метод print () в потоке и использовать функцию Reduce и метод print () для его результата. это код:

открытый класс StreamingJob {

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;
        }
    }
}

}

1 Ответ

0 голосов
/ 03 октября 2019

Если вы отправляете это задание в кластер, то вы должны найти выходные данные в каталоге журнала flink в файлах с такими именами, как -taskexecutor- .out. Если вы работаете в IDE, вывод должен появиться в консоли IDE.

Не имея доступного класса Oggetto, я просто заменил его на что-то простое и смог нормально запустить ваше приложение.

...