Apache flink : контрольная точка состояния оператора

Я хочу использовать Operator State API в No-Keyed Stream, чтобы сохранить состояние count в примере ниже. что я должен делать?

public static class MapFunction implements MapFunction<String, String>,CheckpointedFunction{
    int count = 0;
    @Override
    public String map(String value) throws Exception {
        // TODO Auto-generated method stub
            String message;
            message = value;
            count++;
            return message;
    }

    @Override
    public void snapshotState(FunctionSnapshotContext context) throws Exception {
        // TODO Auto-generated method stub
    }

    @Override
    public void initializeState(FunctionInitializationContext context) throws Exception {
        // TODO Auto-generated method stub
    }

}

Спасибо за ваш ответ.

Я бы посоветовал прочитать документы: ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stre‌ am /…

Dawid Wysakowicz 01.11.2018 09:51
2
1
342
1

Ответы 1

Как заметил Давид, документы - хорошая отправная точка. Самый простой подход - реализовать интерфейс Список. Когда вызывается snapshotState(), вы возвращаете одноэлементный список вашего count (как Integer). Когда вызывается restoreState(), вы перебираете список значений Integer и суммируете их, чтобы установить переменную count.

Другие вопросы по теме