ChunJun est un framework d'intégration distribué et est actuellement basé sur Apache Flink. Il était initialement connu sous le nom de FlinkX et renommé ChunJun le 22 février 2022. Il peut réaliser la synchronisation des données et le calcul entre diverses sources de données hétérogènes. ChunJun a été déployé et fonctionne jusqu'à présent de manière stable dans des milliers d'entreprises.
Site officiel de ChunJun : https://dtstack.github.io/chunjun/
ChunJun résume différentes bases de données en plugins lecteur/source, plugins écrivain/récepteur et plugins de recherche, et il possède les fonctionnalités suivantes :
Utilisez le git pour cloner le code de ChunJun
git clone https://github.com/DTStack/chunjun.git
Exécutez la commande dans le répertoire du projet.
./mvnw clean package
Ou exécuter
sh build/build.sh
Message d'erreur :
[ 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]
Solution : Téléchargez le 'javac-shaded-9+181-r4173-1.jar' à partir de l'url 'https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173- 1/javac-shaded-9+181-r4173-1.jar', puis installez localement à l'aide de la commande ci-dessous :
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
Le tableau suivant montre la correspondance entre les branches de ChunJun et la version de flink. Si les versions ne sont pas alignées, des problèmes tels que « Exceptions de sérialisation », « Exception NoSuchMethod », etc. MySQL surviennent dans les tâches.
Succursales | Version Flink |
---|---|
maître | 1.16.1 |
1.12_version | 1.12.7 |
1.10_version | 1.10.1 |
1.8_version | 1.8.3 |
ChunJun prend en charge l'exécution de tâches dans plusieurs modes. Les différents modes dépendent de différents environnements et étapes. Les éléments suivants sont
Le mode local ne dépend pas de l'environnement Flink et de l'environnement Hadoop et démarre un processus JVM dans l'environnement local pour effectuer des tâches.
Allez dans le répertoire de 'chunjun-dist' et exécutez la commande ci-dessous :
sh bin/chunjun-local.sh -job $SCRIPT_PATH
Le paramètre "$SCRIPT_PATH" signifie "le chemin où se trouve le script de tâche". Après l'exécution, vous pouvez effectuer une tâche localement.
note:
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.
Vidéo de référence
Le mode autonome dépend de l'environnement Flink Standalone et ne dépend pas de l'environnement Hadoop.
Rechercher le répertoire des jars : si vous construisez ce projet en utilisant maven, le nom du répertoire est 'chunjun-dist' ; si vous téléchargez le fichier tar.gz à partir de la page de version, après décompression, le nom du répertoire ressemblerait à « chunjun-assembly-${revision}-chunjun-dist ».
Copiez les fichiers jar dans le répertoire de la bibliothèque Flink, exemple de commande :
cp -r chunjun-dist $FLINK_HOME /lib
Remarque : cette opération doit être exécutée sur toutes les machines du cluster Flink, sinon certaines tâches échoueront à cause de ClassNotFoundException.
sh $FLINK_HOME /bin/start-cluster.sh
Une fois le démarrage réussi, le port par défaut de Flink Web est 8081, que vous pouvez configurer dans le fichier 'flink-conf.yaml'. Nous pouvons accéder au port 8081 de la machine actuelle pour accéder au Web flink du cluster autonome.
Allez dans le répertoire de 'chunjun-dist' et exécutez la commande ci-dessous :
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
Une fois la commande exécutée avec succès, vous pouvez observer l'état de la tâche sur le Web Flink.
Vidéo de référence
Le mode YarnSession dépend des environnements jars Flink et Hadoop, et la session de fil doit être démarrée avant que la tâche ne soit soumise.
Le mode Yarn-session dépend de l'environnement Flink et Hadoop. Vous devez définir $HADOOP_HOME et $FLINK_HOME à l'avance, et nous devons télécharger 'chunjun-dist' avec le paramètre '-t' de Yarn-session.
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
Obtenez l'identifiant d'application $SESSION_APPLICATION_ID correspondant à la session de fil via Yarn Web, puis entrez dans le répertoire 'chunjun-dist' et exécutez la commande ci-dessous :
sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp { " yarn.application.id " : " SESSION_APPLICATION_ID " }
'yarn.application.id' peut également être défini dans 'flink-conf.yaml'. Une fois la soumission réussie, l'état de la tâche peut être observé sur la toile de fil.
Vidéo de référence
Le mode Yarn Per-Job dépend de l’environnement Flink et Hadoop. Vous devez définir $HADOOP_HOME et $FLINK_HOME à l'avance.
La tâche de fil par tâche peut être soumise une fois la configuration correcte. Entrez ensuite dans le répertoire 'chunjun-dist' et exécutez la commande ci-dessous :
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
Une fois la soumission réussie, l'état de la tâche peut être observé sur la toile de fil.
Pour plus de détails, veuillez visiter:https://dtstack.github.io/chunjun/documents/
Merci à tous les contributeurs ! Nous sommes très heureux que vous puissiez contribuer à Chunjun.
ChunJun est sous licence Apache 2.0. Veuillez visiter LICENCE pour plus de détails.
Rejoignez ChunJun Slack. https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw