ChunJun は分散統合フレームワークであり、現在は Apache Flink に基づいています。当初は FlinkX として知られていましたが、2022 年 2 月 22 日に ChunJun に名前変更されました。さまざまな異種データ ソース間のデータ同期と計算を実現できます。 ChunJun はこれまでに数千の企業に導入され、安定して稼働しています。
ChunJun公式サイト:https://dtstack.github.io/chunjun/
ChunJun は、さまざまなデータベースをリーダー/ソース プラグイン、ライター/シンク プラグイン、ルックアップ プラグインに抽象化し、次の機能を備えています。
git を使用して ChunJun のコードを複製します。
git clone https://github.com/DTStack/chunjun.git
プロジェクトディレクトリでコマンドを実行します。
./mvnw clean package
あるいは実行する
sh build/build.sh
エラーメッセージ:
[ 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]
解決策: URL 'https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173- から 'javac-shaded-9+181-r4173-1.jar' をダウンロードします。 1/javac-shaded-9+181-r4173-1.jar」をダウンロードし、以下のコマンドを使用してローカルにインストールします。
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
ChunJun のブランチと flink のバージョンの対応を次の表に示します。バージョンが揃っていない場合、タスクで「Serialization Exceptions」や「NoSuchMethod Exception」などの mysql の問題が発生します。
支店 | フリンクバージョン |
---|---|
マスター | 1.16.1 |
1.12_リリース | 1.12.7 |
1.10_リリース | 1.10.1 |
1.8_リリース | 1.8.3 |
ChunJun は、複数のモードでのタスクの実行をサポートしています。異なるモードは、異なる環境と手順に応じて異なります。以下は
ローカルモードはFlink環境やHadoop環境に依存せず、ローカル環境でJVMプロセスを起動してタスクを実行します。
「chunjun-dist」ディレクトリに移動し、以下のコマンドを実行します。
sh bin/chunjun-local.sh -job $SCRIPT_PATH
「$SCRIPT_PATH」のパラメータは「タスクスクリプトが配置されているパス」を意味します。実行後、ローカルでタスクを実行できます。
注記:
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.
参考動画
スタンドアロン モードは Flink Standalone 環境に依存し、Hadoop 環境には依存しません。
jar のディレクトリを検索します。Maven を使用してこのプロジェクトをビルドする場合、ディレクトリ名は 'chunjun-dist' になります。 tar.gz ファイルをリリースページからダウンロードすると、解凍後のディレクトリ名は「chunjun-assembly-${revision}-chunjun-dist」のようになります。
jar を Flink lib のディレクトリにコピーします。コマンド例:
cp -r chunjun-dist $FLINK_HOME /lib
注意: この操作は Flink クラスターのすべてのマシンで実行する必要があります。そうしないと、ClassNotFoundException が発生して一部のジョブが失敗します。
sh $FLINK_HOME /bin/start-cluster.sh
起動が成功すると、Flink Web のデフォルトのポートは 8081 になります。これは「flink-conf.yaml」ファイルで設定できます。現在のマシンの 8081 ポートにアクセスして、スタンドアロン クラスターの flink Web に入ることができます。
「chunjun-dist」ディレクトリに移動し、以下のコマンドを実行します。
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
コマンドが正常に実行された後、flink Web でタスクのステータスを観察できます。
参考動画
YarnSession モードは Flink jar と Hadoop 環境に依存し、タスクが送信される前に YarnSession を開始する必要があります。
Yarn セッション モードは Flink および Hadoop 環境に依存します。事前に $HADOOP_HOME と $FLINK_HOME を設定する必要があり、yarn-session '-t' パラメータを使用して 'chunjun-dist' をアップロードする必要があります。
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
Yarn Web を通じて、yarn セッションに対応するアプリケーション ID $SESSION_APPLICATION_ID を取得し、ディレクトリ「chunjun-dist」に入り、以下のコマンドを実行します。
sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp { " yarn.application.id " : " SESSION_APPLICATION_ID " }
「yarn.application.id」は「flink-conf.yaml」でも設定できます。送信が成功すると、タスクのステータスが Yarn Web 上で確認できます。
参考動画
Yarn ジョブごとのモードは、Flink および Hadoop 環境に依存します。事前に$HADOOP_HOMEと$FLINK_HOMEを設定する必要があります。
構成が正しくなった後に、ジョブごとの糸タスクを送信できます。次に、「chunjun-dist」ディレクトリに入り、以下のコマンドを実行します。
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
送信が成功すると、タスクのステータスが Yarn Web 上で確認できます。
詳細はこちら:https://dtstack.github.io/chunjun/documents/
すべての貢献者に感謝します!チュンジュンにご投稿いただければ幸いです。
ChunJun は Apache 2.0 ライセンスの下にあります。詳細については、ライセンスをご覧ください。
ChunJun Slack に参加してください。 https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw