#java #kubernetes #apache-flink
#java #kubernetes #apache-flink
Вопрос:
У меня есть job jar, который зависит от flink-json-1.7.2.jar , flink-table_2.11-1.7.2.jar . Это отлично работает на моем локальном компьютере, если я добавлю эти две банки в папку lib flink. Как я могу добиться того же в моем кластере мини-кубов. т.е. добавить зависимости в flink. Ps. Я настроил свой мини-куб, следуя этой документации.
Также я вижу, что эти jar добавляются в fat jar, созданный при сборке job jar.
Ответ №1:
Из-за проблемы в Apache Calcite, которая предотвращает сборку мусора в пользовательских загрузчиках классов, мы не рекомендуем создавать fat-jar, который включает зависимость flink-table. Вместо этого мы рекомендуем настроить Flink для включения зависимости flink-table в системный classloader. Это можно сделать, скопировав flink-таблицу.файл jar из папки ./opt в папку ./lib.
ИЗ документов
Ответ №2:
Поскольку вы внедрили Flink job на локальном компьютере, я предполагаю, что было бы возможно создать свой собственный конкретный образ Docker и включить туда запрошенные файлы *.jar, как описано здесь. Несмотря на то, что вы уже загрузили minikube
кластер Kubernetes, настроенный образ Docker также можно использовать в соответствующих файлах развертывания Kubernetes для задания Flink.