ChunJun é uma estrutura de integração distribuída e atualmente é baseada no Apache Flink. Foi inicialmente conhecido como FlinkX e renomeado ChunJun em 22 de fevereiro de 2022. Ele pode realizar sincronização e cálculo de dados entre várias fontes de dados heterogêneas. O ChunJun foi implantado e funciona de forma estável em milhares de empresas até agora.
Site oficial do ChunJun: https://dtstack.github.io/chunjun/
ChunJun abstrai diferentes bancos de dados em plug-ins de leitor/fonte, plug-ins de gravador/coletor e plug-ins de pesquisa e possui os seguintes recursos:
Use o git para clonar o código do ChunJun
git clone https://github.com/DTStack/chunjun.git
Execute o comando no diretório do projeto.
./mvnw clean package
Ou execute
sh build/build.sh
Mensagem de erro:
[ 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]
Solução: Baixe 'javac-shaded-9+181-r4173-1.jar' do URL 'https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173- 1/javac-shaded-9+181-r4173-1.jar' e instale localmente usando o comando abaixo:
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
A tabela a seguir mostra a correspondência entre os ramos do ChunJun e a versão do flink. Se as versões não estiverem alinhadas, problemas como 'Exceções de serialização', 'Exceção NoSuchMethod', etc. mysql ocorrem nas tarefas.
Galhos | Versão Flink |
---|---|
mestre | 1.16.1 |
1.12_lançamento | 1.12.7 |
1.10_lançamento | 1.10.1 |
1.8_lançamento | 1.8.3 |
ChunJun oferece suporte à execução de tarefas em vários modos. Diferentes modos dependem de diferentes ambientes e etapas. Os seguintes são
O modo local não depende do ambiente Flink e do ambiente Hadoop e inicia um processo JVM no ambiente local para executar tarefas.
Vá para o diretório ‘chunjun-dist’ e execute o comando abaixo:
sh bin/chunjun-local.sh -job $SCRIPT_PATH
O parâmetro "$SCRIPT_PATH" significa 'o caminho onde o script da tarefa está localizado'. Após a execução, você pode executar uma tarefa localmente.
observação:
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 referência
O modo autônomo depende do ambiente Flink Standalone e não depende do ambiente Hadoop.
Encontre o diretório de jars: se você construir este projeto usando maven, o nome do diretório será 'chunjun-dist'; se você baixar o arquivo tar.gz da página de lançamento, após a descompactação, o nome do diretório seria como 'chunjun-assembly-${revision}-chunjun-dist'.
Copie os jars para o diretório do Flink lib, exemplo de comando:
cp -r chunjun-dist $FLINK_HOME /lib
Aviso: esta operação deve ser executada em todas as máquinas do cluster Flink, caso contrário alguns jobs irão falhar devido a ClassNotFoundException.
sh $FLINK_HOME /bin/start-cluster.sh
Após a inicialização bem-sucedida, a porta padrão do Flink Web é 8081, que você pode configurar no arquivo 'flink-conf.yaml'. Podemos acessar a porta 8081 da máquina atual para entrar na web flink do cluster autônomo.
Vá para o diretório ‘chunjun-dist’ e execute o comando abaixo:
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
Após a execução bem-sucedida do comando, você poderá observar o status da tarefa no flink web.
Vídeo de referência
O modo YarnSession depende dos jars do Flink e dos ambientes Hadoop, e a sessão do fio precisa ser iniciada antes que a tarefa seja enviada.
O modo de sessão Yarn depende do ambiente Flink e Hadoop. Você precisa definir $HADOOP_HOME e $FLINK_HOME com antecedência, e precisamos fazer upload de 'chunjun-dist' com o parâmetro yarn-session '-t'.
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
Obtenha o id da aplicação $SESSION_APPLICATION_ID correspondente à sessão do fio através do fio web, depois entre no diretório 'chunjun-dist' e execute o comando abaixo:
sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp { " yarn.application.id " : " SESSION_APPLICATION_ID " }
'yarn.application.id' também pode ser definido em 'flink-conf.yaml'. Após o envio ser bem-sucedido, o status da tarefa pode ser observado na teia do fio.
Vídeo de referência
O modo Yarn Per-Job depende do ambiente Flink e Hadoop. Você precisa definir $HADOOP_HOME e $FLINK_HOME antecipadamente.
A tarefa por trabalho do Yarn pode ser enviada após a configuração estar correta. Em seguida, entre no diretório ‘chunjun-dist’ e execute o comando abaixo:
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
Após o envio ser bem-sucedido, o status da tarefa pode ser observado na teia do fio.
Para obter detalhes, visite: https://dtstack.github.io/chunjun/documents/
Obrigado a todos os contribuidores! Estamos muito felizes que você possa contribuir com Chunjun.
ChunJun está sob a licença Apache 2.0. Por favor, visite LICENÇA para obter detalhes.
Junte-se ao ChunJun Slack. https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw