Я настроил одно и то же имя запрашиваемого состояния в двух функциях процесса.
@Override
public void open(Configuration parameters) {
ValueStateDescriptor<? super Output> descriptor = new ValueStateDescriptor(queryableStateName, Xyz.class);
descriptor.setQueryable("downloads");
state = getRuntimeContext().getState(descriptor);
}
В приведенном выше коде descriptor.setQueryable("downloads");
, где я дал downloads
в нескольких функциях процесса.
Что касается моего удивления о том, почему он запускается с IDE
, а не с помощью команды bin/flink run
.
Итак, причина в 'flink-queryable-state-runtime_2.11-1.4.2.jar'
Когда я запускаю из IDE, IDE не может найти этот jar из пути к классам. Так что запрашиваемая функция отключена и из-за этой работы никогда не жалуется. Итак, задание выполняется успешно.
Но когда я использую bin/flink run
, он обнаруживается из библиотеки Флинка.
Таким образом, выдает ошибку из-за того же имени, и задание не выполняется.