ChunJun هو إطار عمل تكاملي موزع، ويعتمد حاليًا على Apache Flink. كان يُعرف في البداية باسم FlinkX وتمت إعادة تسميته إلى ChunJun في 22 فبراير 2022. ويمكنه تحقيق مزامنة البيانات والحساب بين مصادر البيانات المختلفة غير المتجانسة. تم نشر 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]
الحل: قم بتنزيل "javac-shaded-9+181-r4173-1.jar" من عنوان url "https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173-" 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. إذا لم تتم محاذاة الإصدارات، فستحدث مشكلات مثل "استثناءات التسلسل" و"استثناء NoSuchMethod" وما إلى ذلك في المهام.
الفروع | نسخة فلينك |
---|---|
يتقن | 1.16.1 |
1.12_release | 1.12.7 |
1.10_release | 1.10.1 |
1.8_release | 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.
ابحث عن دليل الجرار: إذا قمت ببناء هذا المشروع باستخدام maven، فإن اسم الدليل هو 'chunjun-dist'؛ إذا قمت بتنزيل ملف tar.gz من صفحة الإصدار، بعد فك الضغط، سيكون اسم الدليل مثل "chunjun-assembly-${revision}-chunjun-dist".
انسخ الجرار إلى دليل 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 للجهاز الحالي للدخول إلى شبكة فلينك للمجموعة المستقلة.
انتقل إلى دليل "chunjun-dist" وقم بتنفيذ الأمر أدناه:
sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json
بعد تنفيذ الأمر بنجاح، يمكنك ملاحظة حالة المهمة على موقع flink.
الفيديو المرجعي
يعتمد وضع YarnSession على بيئات Flink jars وHadoop، ويجب بدء جلسة الغزل قبل إرسال المهمة.
يعتمد وضع جلسة الغزل على بيئة Flink وHadoop. تحتاج إلى تعيين $HADOOP_HOME و$FLINK_HOME مقدمًا، ونحتاج إلى تحميل "chunjun-dist" باستخدام المعلمة "-t" لجلسة الغزل.
cd $FLINK_HOME /bin
./yarn-session -t $CHUNJUN_HOME -d
احصل على معرف التطبيق $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". بعد نجاح الإرسال، يمكن ملاحظة حالة المهمة على شبكة الغزل.
الفيديو المرجعي
يعتمد وضع الغزل لكل مهمة على بيئة Flink وHadoop. تحتاج إلى تعيين $HADOOP_HOME و$FLINK_HOME مقدمًا.
يمكن إرسال مهمة الغزل لكل وظيفة بعد صحة التكوين. ثم أدخل الدليل "chunjun-dist" وقم بتنفيذ الأمر أدناه:
sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json
بعد نجاح الإرسال، يمكن ملاحظة حالة المهمة على شبكة الغزل.
للحصول على التفاصيل، يرجى زيارة:https://dtstack.github.io/chunjun/documents/
شكرا لجميع المساهمين! نحن سعداء جدًا لأنك تستطيع المساهمة في Chunjun.
ChunJun تحت ترخيص Apache 2.0. يرجى زيارة الترخيص للحصول على التفاصيل.
انضم إلى ChunJun Slack. https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw