ChunJun es un marco de integración distribuido y actualmente se basa en Apache Flink. Inicialmente se conocía como FlinkX y pasó a llamarse ChunJun el 22 de febrero de 2022. Puede realizar sincronización y cálculo de datos entre varias fuentes de datos heterogéneas. ChunJun se ha implementado y funciona de manera estable en miles de empresas hasta ahora.
Sitio web oficial de ChunJun: https://dtstack.github.io/chunjun/
ChunJun abstrae diferentes bases de datos en complementos de lectura/fuente, complementos de escritura/receptor y complementos de búsqueda, y tiene las siguientes características:
Usa git para clonar el código de ChunJun
git clone https://github.com/DTStack/chunjun.git
Ejecute el comando en el directorio del proyecto.
./mvnw clean package
o ejecutar
sh build/build.sh
Mensaje de error:
[ 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]
Solución: descargue 'javac-shaded-9+181-r4173-1.jar' de la URL 'https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173- 1/javac-shaded-9+181-r4173-1.jar' y luego instálelo localmente usando el siguiente comando:
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
La siguiente tabla muestra la correspondencia entre las ramas de ChunJun y la versión de flink. Si las versiones no están alineadas, se producen problemas como 'Excepciones de serialización', 'Excepción NoSuchMethod', etc. en mysql en las tareas.
Sucursales | versión de enlace |
---|---|
maestro | 1.16.1 |
1.12_lanzamiento | 1.12.7 |
1.10_lanzamiento | 1.10.1 |
1.8_lanzamiento | 1.8.3 |
ChunJun admite la ejecución de tareas en múltiples modos. Los diferentes modos dependen de diferentes entornos y pasos. Los siguientes son
El modo local no depende del entorno Flink ni del entorno Hadoop e inicia un proceso JVM en el entorno local para realizar tareas.
Vaya al directorio de 'chunjun-dist' y ejecute el siguiente comando:
sh bin/chunjun-local.sh -job $SCRIPT_PATH
El parámetro de "$SCRIPT_PATH" significa "la ruta donde se encuentra el script de la tarea". Después de la ejecución, puede realizar una tarea localmente.
nota:
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.
Vídeo de referencia
El modo independiente depende del entorno independiente de Flink y no depende del entorno Hadoop.
Buscar directorio de archivos jar: si construye este proyecto usando maven, el nombre del directorio es 'chunjun-dist'; Si descarga el archivo tar.gz desde la página de lanzamiento, después de la descompresión, el nombre del directorio sería como 'chunjun-assembly-${revision}-chunjun-dist'.
Copie jars al directorio de Flink lib, ejemplo de comando:
cp -r chunjun-dist $FLINK_HOME /lib
Aviso: esta operación debe ejecutarse en todas las máquinas del clúster de Flink; de lo contrario, algunos trabajos fallarán debido a ClassNotFoundException.
sh $FLINK_HOME /bin/start-cluster.sh
Después de que el inicio sea exitoso, el puerto predeterminado de Flink Web es 8081, que puede configurar en el archivo 'flink-conf.yaml'. Podemos acceder al puerto 8081 de la máquina actual para ingresar a la web flink del clúster independiente.
Vaya al directorio de 'chunjun-dist' y ejecute el siguiente comando:
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
Después de que el comando se ejecute correctamente, podrá observar el estado de la tarea en flink web.
Vídeo de referencia
El modo YarnSession depende de los entornos Flink jars y Hadoop, y la sesión de hilo debe iniciarse antes de enviar la tarea.
El modo de sesión de hilo depende del entorno de Flink y Hadoop. Debe configurar $HADOOP_HOME y $FLINK_HOME con anticipación, y debemos cargar 'chunjun-dist' con el parámetro Yarn-session '-t'.
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
Obtenga el ID de la aplicación $SESSION_APPLICATION_ID correspondiente a la sesión de hilo a través de hilo web, luego ingrese al directorio 'chunjun-dist' y ejecute el siguiente comando:
sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp { " yarn.application.id " : " SESSION_APPLICATION_ID " }
'yarn.application.id' también se puede configurar en 'flink-conf.yaml'. Una vez que el envío sea exitoso, el estado de la tarea se puede observar en la red de hilo.
Vídeo de referencia
El modo Yarn Per-Job depende del entorno de Flink y Hadoop. Debes configurar $HADOOP_HOME y $FLINK_HOME por adelantado.
La tarea de hilo por trabajo se puede enviar después de que la configuración sea correcta. Luego ingrese al directorio 'chunjun-dist' y ejecute el siguiente comando:
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
Una vez que el envío sea exitoso, el estado de la tarea se puede observar en la red de hilo.
Para obtener más detalles, visite: https://dtstack.github.io/chunjun/documents/
¡Gracias a todos los contribuyentes! Estamos muy contentos de que puedas contribuir con Chunjun.
ChunJun está bajo la licencia Apache 2.0. Visite LICENCIA para obtener más detalles.
Únase a ChunJun Slack. https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw