Uruchomienie Apache Flink w Windows
Jak zainstalować Apache Flink w środowisku Windows.
Czym jest Apache Flink pewnie wiesz skoro to czytasz. Dla tych którzy tego nie wiedzą: Apache Flink to otwarta, ujednolicona platforma przetwarzania strumieniowego i przetwarzania wsadowego opracowana przez Apache Software Foundation. Rdzeniem Apache Flink jest rozproszony silnik przepływu danych strumieniowych napisany w Javie i Scali. Flink wykonuje dowolne programy przepływu danych w sposób równoległy i potokowy.
Flink do wersji 1.7.X zawierał w katalogu 'bin' plik 'start-cluster.bat' który pozwalał na uruchomienie Flink w środowisku. Nowe wersje nie zawierają tego pliku - Flink musi być uruchomiony w inny sposób.
Co jest potrzebne do uruchomienia Flink?
GitHub CLI (command line interface)
Instalacja Java
Zainstaluj JRE lub JDK w wersji 11. Flink powinien działać nadal z wersją 8 ale nie jest już oficjalnie wspierana przez nich. Funkcjonowanie z wersją 17 jest w opracowaniu. Utwórz zmienną JAVA_HOME w systemie.
Pobieranie Flink
Pobierając Apache Flink, wybierz "binaries" ze strony produktu a następnie plik z rozszerzeniem 'tgz' (zwykle piewszy z góry), np: 'flink-1.15.0-bin-scala_2.12.tgz'
Rozpakuj flink do docelowego katalogu np. "C:\dev\flink-1.13.6\"
Pobranie GitHub CLI
Pobierając GitHub CLI możesz poprzestać na wersji portable - nie musisz instalować tego programu na stałe. Rozpakuj program do docelowego katalogu:
Uruchomienie Apache Flink
Eksport zmiennej $FLINK_HOME
Uruchom 'git-bash.exe' z katalogu programu GitHub CLI. Jeśli klikniesz prawym przyciskiem myszy w górnej belce okna które pojawi się na ekranie, będziesz mieć dostęp do 'Options' gdzie możesz ustawić np. wielkość czcionki. Eksportuj scieżkę do katalogu Flink do zmiennej:
export FLINK_HOME=/C/dev/flink-1.13.6
Wykonanie tej komendy bez błędu spowoduje ustawienie zmiennej.
Zmień zawartość pliku $FLINK_HOME/bin/flink
Zmień opcję "log_setting" jak poniżej (zastąp ścieżkę "\\dev\\flink-1.13.6\" poniżej ścieżką ze swojej instalacji).
log_setting=(-Dlog.file="$log" -Dlog4j.configuration=file:"///C:/dev/flink-1.13.6/conf/log4j-cli.properties" -Dlog4j.configurationFile=file:"///C:/dev/flink-1.13.6/conf/log4j-cli.properties" -Dlogback.configurationFile=file:"///C:/dev/flink-1.13.6/conf/logback.xml")
Usuń INTERNAL_HADOOP_CLASSPATHS z "exec". Poniżej jak to powinno wyglądać po zmianie:
exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS "${log_setting[@]}" -classpath "`manglePathList "$CC_CLASSPATH:"`" org.apache.flink.client.cli.CliFrontend "$@"
Zmień zawartość pliku $FLINK_HOME/bin/flink-daemon.sh
Dokonaj takich samych zmian jak powyżej w tym pliku.
Nadanie nazwy dla TaskManager
Czym jest Task Manager? Menedżerowie zadań (nazywani również "workers") wykonują zadania przepływu danych oraz buforują i wymieniają strumienie danych. Zawsze musi istnieć co najmniej jeden menedżer zadań. Najmniejszą jednostką planowania zasobów w menedżerze zadań TaskManager jest "task slot". Liczba "task slot" w Menedżerze zadań wskazuje liczbę jednoczesnych zadań przetwarzania.
W najnowszej wersji Flink nazwa domyślnego task managera (i jednocześnie nazwa pliku) zawiera znak ":". Jest to niedozwolony znak w Windows. Dlatego wymuś zmianę na nazwę bez tego znaku wstawiając odpowiedni parametr w pliku "flink-conf.yaml". Mozę być ten parametr w dowolnym miejscu
taskmanager.resource-id: tm_localhost_HarWorkingTM
Weryfikacja
Wykonaj polecenie jak poniżej by sprawdzić czy Flink może być uruchomiony (sprawdzenie wersji):
$FLINK_HOME/bin/flink --version
Jeśli wszystko było OK, zobaczysz rezultat:
$ $FLINK_HOME/bin/flink --version
Version: 1.13.6, Commit ID: b2ca390
Uruchamiamy Flink
Wykonaj komendę:
$FLINK_HOME/bin/start-cluster.sh
W oknie GitHub CLI ujrzysz rezultat podobny do tego:
Starting cluster.
Starting standalonesession daemon on host GKLP-WjKRv8Leb8.
Starting taskexecutor daemon on host GKLP-WjKRv8Leb8.
Możesz być poproszony o zaakceptowanie dostępu do Internetu - zrób to.
Dostęp do programu
Interfejs Apache Flink jest dostępny pod adresem http://localhost:8081
Możesz zmienić ten port i inne opcje w pliku konfiguracyjnym "conf/flink-conf.yaml"
Następnie sprawdź czy został uruchomiony Task Manager:
Gotowe - ciesz się Apache Flink!