ChunJun ist ein verteiltes Integrationsframework und basiert derzeit auf Apache Flink. Es war zunächst als FlinkX bekannt und wurde am 22. Februar 2022 in ChunJun umbenannt. Es kann die Datensynchronisierung und -berechnung zwischen verschiedenen heterogenen Datenquellen realisieren. ChunJun wurde bisher in Tausenden von Unternehmen eingesetzt und läuft stabil.
Offizielle Website von ChunJun: https://dtstack.github.io/chunjun/
ChunJun abstrahiert verschiedene Datenbanken in Reader/Source-Plugins, Writer/Sink-Plugins und Lookup-Plugins und verfügt über die folgenden Funktionen:
Verwenden Sie Git, um den Code von ChunJun zu klonen
git clone https://github.com/DTStack/chunjun.git
Führen Sie den Befehl im Projektverzeichnis aus.
./mvnw clean package
Oder ausführen
sh build/build.sh
Fehlermeldung:
[ ERROR ] Failed to execute goal com . diffplug . spotless : spotless - maven - plugin : 2.4 . 2 : check ( spotless - check ) on project chunjun - core :
Execution spotless - check of goal com . diffplug . spotless : spotless - maven - plugin : 2.4 . 2 : check failed : Unable to resolve dependencies :
Failed to collect dependencies at com . google . googlejavaformat : google - java - format : jar : 1.7 -> com . google . errorprone : javac - shaded : jar : 9 + 181 - r4173 - 1 :
Failed to read artifact descriptor for com . google . errorprone : javac - shaded : jar : 9 + 181 - r4173 - 1 : Could not transfer artifact
com . google . errorprone : javac - shaded : pom : 9 + 181 - r4173 - 1 from / to aliyunmaven ( https : //maven.aliyun.com/repository/public):
Access denied to : https : //maven.aliyun.com/repository/public/com/google/errorprone/javac-shaded/9+181-r4173-1/javac-shaded-9+181-r4173-1.pom -> [Help 1]
Lösung: Laden Sie „javac-shaded-9+181-r4173-1.jar“ von der URL „https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173-“ herunter. 1/javac-shaded-9+181-r4173-1.jar‘ und installieren Sie es dann lokal mit dem folgenden Befehl:
mvn install:install-file -DgroupId=com.google.errorprone -DartifactId=javac-shaded -Dversion=9+181-r4173-1 -Dpackaging=jar -Dfile=./jars/javac-shaded-9+181-r4173-1.jar
Die folgende Tabelle zeigt die Entsprechung zwischen den Zweigen von ChunJun und der Version von Flink. Wenn die Versionen nicht übereinstimmen, treten in Aufgaben Probleme wie „Serialization Exceptions“, „NoSuchMethod Exception“ usw. in MySQL auf.
Zweige | Flink-Version |
---|---|
Master | 1.16.1 |
1.12_Release | 1.12.7 |
1.10_Release | 1.10.1 |
1.8_Release | 1.8.3 |
ChunJun unterstützt die Ausführung von Aufgaben in mehreren Modi. Verschiedene Modi hängen von unterschiedlichen Umgebungen und Schritten ab. Die folgenden sind
Der lokale Modus ist nicht von der Flink-Umgebung und der Hadoop-Umgebung abhängig und startet einen JVM-Prozess in der lokalen Umgebung, um Aufgaben auszuführen.
Gehen Sie in das Verzeichnis „chunjun-dist“ und führen Sie den folgenden Befehl aus:
sh bin/chunjun-local.sh -job $SCRIPT_PATH
Der Parameter „$SCRIPT_PATH“ bedeutet „der Pfad, in dem sich das Aufgabenskript befindet“. Nach der Ausführung können Sie eine Aufgabe lokal ausführen.
Notiz:
when you package in windows and run sh in linux , you need to execute command sed -i "s/r//g" bin/*.sh to fix the 'r' problems.
Referenzvideo
Der Standalone-Modus hängt von der Flink Standalone-Umgebung ab und ist nicht von der Hadoop-Umgebung abhängig.
Finden Sie das Jar-Verzeichnis: Wenn Sie dieses Projekt mit Maven erstellen, lautet der Verzeichnisname „chunjun-dist“; Wenn Sie die Datei tar.gz von der Release-Seite herunterladen, lautet der Verzeichnisname nach der Dekomprimierung etwa „chunjun-assembly-${revision}-chunjun-dist“.
Jars in das Verzeichnis der Flink-Bibliothek kopieren, Befehlsbeispiel:
cp -r chunjun-dist $FLINK_HOME /lib
Hinweis: Dieser Vorgang sollte auf allen Maschinen des Flink-Clusters ausgeführt werden, da sonst einige Jobs aufgrund von ClassNotFoundException fehlschlagen.
sh $FLINK_HOME /bin/start-cluster.sh
Nach erfolgreichem Start ist der Standardport von Flink Web 8081, den Sie in der Datei „flink-conf.yaml“ konfigurieren können. Wir können auf den 8081-Port des aktuellen Computers zugreifen, um auf das Flink-Web eines eigenständigen Clusters zuzugreifen.
Gehen Sie in das Verzeichnis „chunjun-dist“ und führen Sie den folgenden Befehl aus:
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
Nachdem der Befehl erfolgreich ausgeführt wurde, können Sie den Aufgabenstatus im Flink-Web beobachten.
Referenzvideo
Der YarnSession-Modus hängt von den Flink-JARs und Hadoop-Umgebungen ab und die Yarn-Sitzung muss gestartet werden, bevor die Aufgabe übermittelt wird.
Der Garnsitzungsmodus hängt von der Flink- und Hadoop-Umgebung ab. Sie müssen $HADOOP_HOME und $FLINK_HOME im Voraus festlegen, und wir müssen „chunjun-dist“ mit dem Yarn-Session-Parameter „-t“ hochladen.
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
Rufen Sie über Yarn Web die Anwendungs-ID $SESSION_APPLICATION_ID ab, die der Yarn-Sitzung entspricht, geben Sie dann das Verzeichnis „chunjun-dist“ ein und führen Sie den folgenden Befehl aus:
sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp { " yarn.application.id " : " SESSION_APPLICATION_ID " }
„yarn.application.id“ kann auch in „flink-conf.yaml“ festgelegt werden. Nach erfolgreicher Übermittlung kann der Aufgabenstatus auf dem Garnnetz beobachtet werden.
Referenzvideo
Der Yarn-Per-Job-Modus hängt von der Flink- und Hadoop-Umgebung ab. Sie müssen $HADOOP_HOME und $FLINK_HOME im Voraus festlegen.
Die Garn-pro-Job-Aufgabe kann übermittelt werden, nachdem die Konfiguration korrekt ist. Geben Sie dann das Verzeichnis „chunjun-dist“ ein und führen Sie den folgenden Befehl aus:
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
Nach erfolgreicher Übermittlung kann der Aufgabenstatus auf dem Garnnetz beobachtet werden.
Weitere Informationen finden Sie unter:https://dtstack.github.io/chunjun/documents/
Vielen Dank an alle Mitwirkenden! Wir freuen uns sehr, dass Sie Chunjun beitragen können.
ChunJun steht unter der Apache 2.0-Lizenz. Weitere Informationen finden Sie unter LIZENZ.
Treten Sie ChunJun Slack bei. https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw