آپاچی Bigtop و انتخاب توزیع Hadoop امروز

آپاچی Bigtop و انتخاب توزیع Hadoop امروز

احتمالاً بر کسی پوشیده نیست که سال گذشته سال تغییرات بزرگی برای آپاچی هادوپ بود. سال گذشته، Cloudera و Hortonworks ادغام شدند (در اصل، خرید دومی) و Mapr به دلیل مشکلات جدی مالی به Hewlett Packard فروخته شد. و اگر چند سال قبل، در مورد نصب در محل، اغلب باید بین Cloudera و Hortonworks انتخاب می شد، امروز متأسفانه ما این انتخاب را نداریم. شگفتی دیگر این واقعیت بود که Cloudera در فوریه سال جاری اعلام کرد که انتشار مجموعه های باینری توزیع خود را در مخزن عمومی متوقف می کند و اکنون آنها فقط از طریق اشتراک پولی در دسترس هستند. البته هنوز امکان دانلود آخرین نسخه های CDH و HDP منتشر شده قبل از پایان سال 2019 وجود دارد و انتظار می رود پشتیبانی از آنها یک تا دو سال باشد. اما بعد چه باید کرد؟ برای کسانی که قبلا برای اشتراک پرداخت می کردند، چیزی تغییر نکرده است. و برای کسانی که نمی‌خواهند به نسخه پولی توزیع سوئیچ کنند، اما در عین حال می‌خواهند آخرین نسخه‌های اجزای کلاستر و همچنین پچ‌ها و سایر به‌روزرسانی‌ها را دریافت کنند، این مقاله را آماده کرده‌ایم. در آن ما گزینه های ممکن برای خروج از این وضعیت را در نظر خواهیم گرفت.

مقاله بیشتر جنبه بررسی دارد. این شامل مقایسه توزیع ها و تجزیه و تحلیل دقیق آنها نخواهد بود و هیچ دستور العملی برای نصب و پیکربندی آنها وجود نخواهد داشت. چه اتفاقی خواهد افتاد؟ ما به طور خلاصه در مورد توزیعی مانند Arenadata Hadoop صحبت خواهیم کرد که به دلیل دسترسی به آن که امروزه بسیار نادر است به حق توجه ما را جلب می کند. و سپس در مورد Vanilla Hadoop صحبت خواهیم کرد، عمدتا در مورد اینکه چگونه می توان آن را با استفاده از Apache Bigtop "پخت". آماده؟ سپس به گربه خوش آمدید.

Arenadata Hadoop

آپاچی Bigtop و انتخاب توزیع Hadoop امروز

این یک کیت توزیع کاملاً جدید و هنوز کمتر شناخته شده برای توسعه داخلی است. متأسفانه، در حال حاضر فقط در Habré وجود دارد این مقاله.

اطلاعات بیشتر را می توان در سایت رسمی یافت کاربران آنلاین حاضر در سایت " پروژه آخرین نسخه های توزیع بر اساس Hadoop 3.1.2 برای نسخه 3 و 2.8.5 برای نسخه 2 است.

اطلاعات مربوط به نقشه راه را می توان یافت اینجا.

آپاچی Bigtop و انتخاب توزیع Hadoop امروز
رابط مدیر خوشه Arenadata

محصول اصلی Arenadata است Arenadata Cluster Manager (ADCM)که برای نصب، پیکربندی و نظارت بر راه حل های نرم افزاری مختلف شرکت استفاده می شود. ADCM به صورت رایگان توزیع می‌شود و عملکرد آن با افزودن بسته‌هایی که مجموعه‌ای از کتاب‌های نمایشی ansible هستند، گسترش می‌یابد. باندل ها به دو نوع سازمانی و اجتماعی تقسیم می شوند. مورد دوم برای دانلود رایگان از وب سایت Arenadata در دسترس است. همچنین امکان توسعه باندل خود و اتصال آن به ADCM وجود دارد.

برای استقرار و مدیریت Hadoop 3، یک نسخه جامعه از بسته نرم افزاری همراه با ADCM ارائه شده است، اما برای Hadoop 2 فقط وجود دارد آپاچی آمبری به عنوان جایگزین. در مورد مخازن با بسته ها، آنها برای دسترسی عمومی باز هستند، آنها را می توان به روش معمول برای همه اجزای خوشه دانلود و نصب کرد. به طور کلی، توزیع بسیار جالب به نظر می رسد. من مطمئن هستم کسانی هستند که به راه حل هایی مانند Cloudera Manager و Ambari عادت کرده اند و خود ADCM را دوست خواهند داشت. برای برخی، این توزیع نیز یک مزیت بزرگ خواهد بود در ثبت نرم افزار گنجانده شده است برای جایگزینی واردات

اگر در مورد معایب صحبت کنیم، آنها مانند همه توزیع های Hadoop دیگر خواهند بود. برای مثال:

  • به اصطلاح "قفل فروشنده". با استفاده از مثال های Cloudera و Hortonworks، ما قبلاً متوجه شده ایم که همیشه خطر تغییر خط مشی شرکت وجود دارد.
  • عقب ماندگی قابل توجهی از آپاچی در بالادست.

وانیلی هادوپ

آپاچی Bigtop و انتخاب توزیع Hadoop امروز

همانطور که می دانید، Hadoop یک محصول یکپارچه نیست، بلکه در واقع یک کهکشان کامل از خدمات در اطراف سیستم فایل توزیع شده HDFS خود است. تعداد کمی از افراد به اندازه کافی یک خوشه فایل خواهند داشت. برخی به Hive نیاز دارند، برخی دیگر Presto، و سپس HBase و Phoenix هستند؛ Spark به طور فزاینده ای مورد استفاده قرار می گیرد. برای ارکستراسیون و بارگذاری داده ها، Oozie، Sqoop و Flume گاهی اوقات یافت می شوند. و اگر موضوع امنیت پیش بیاید، بلافاصله Kerberos در ارتباط با Ranger به ذهن خطور می کند.

نسخه های باینری اجزای Hadoop در وب سایت هر یک از پروژه های اکوسیستم به صورت تاربال موجود است. شما می توانید آنها را دانلود کنید و نصب را شروع کنید، اما با یک شرط: علاوه بر مونتاژ مستقل بسته ها از باینری های "خام"، که به احتمال زیاد می خواهید انجام دهید، هیچ اطمینانی به سازگاری نسخه های دانلود شده کامپوننت ها با هر کدام نخواهید داشت. دیگر. گزینه ترجیحی ساخت با استفاده از Apache Bigtop است. Bigtop به شما امکان می دهد از مخازن Apache maven بسازید، آزمایش ها را اجرا کنید و بسته ها را بسازید. اما، آنچه برای ما بسیار مهم است، Bigtop آن نسخه‌هایی از قطعات را جمع‌آوری می‌کند که با یکدیگر سازگار باشند. در ادامه با جزئیات بیشتری در مورد آن صحبت خواهیم کرد.

آپاچی بیگ تاپ

آپاچی Bigtop و انتخاب توزیع Hadoop امروز

Apache Bigtop ابزاری برای ساخت، بسته بندی و تست تعدادی از است
پروژه های منبع باز، مانند Hadoop و Greenplum. Bigtop مقدار زیادی دارد
منتشر شده. در زمان نگارش، آخرین نسخه پایدار نسخه 1.4 بود.
و در مستر 1.5 بود. نسخه های مختلف نسخه ها از نسخه های متفاوتی استفاده می کنند
اجزاء. به عنوان مثال، برای 1.4 اجزای هسته Hadoop نسخه 2.8.5، و در استاد
2.10.0. ترکیب اجزای پشتیبانی شده نیز در حال تغییر است. چیزی کهنه و
تجدید ناپذیر از بین می رود و به جای آن چیز جدیدی می آید که تقاضای بیشتری دارد و
این لزوما چیزی از خود خانواده آپاچی نیست.

علاوه بر این، Bigtop تعداد زیادی دارد چنگال ها.

وقتی شروع به آشنایی با Bigtop کردیم، اول از همه از کم بودن آن در مقایسه با سایر پروژه های آپاچی، رواج و محبوبیت و همچنین یک جامعه بسیار کوچک شگفت زده شدیم. از این نتیجه می شود که اطلاعات حداقلی در مورد محصول وجود دارد و جستجوی راه حل برای مشکلاتی که در انجمن ها و لیست های پستی ایجاد شده است ممکن است به هیچ وجه نتیجه ای نداشته باشد. در ابتدا به دلیل ویژگی های خود ابزار، تکمیل مونتاژ کامل توزیع برای ما کار دشواری بود، اما کمی بعد در مورد آن صحبت خواهیم کرد.

به عنوان یک تیزر، کسانی که زمانی به پروژه‌های دنیای لینوکس مانند جنتو و LFS علاقه داشتند، ممکن است کار با این چیز را به طرز نوستالژیکی خوشایند بدانند و آن زمان‌های "حماسی" را به یاد بیاورند که خودمان به دنبال (یا حتی نوشتن) بودیم. ebuild و به طور منظم موزیلا را با وصله های جدید بازسازی می کند.

مزیت بزرگ Bigtop باز بودن و تطبیق پذیری ابزارهایی است که بر اساس آن ساخته شده است. این بر اساس Gradle و Apache Maven ساخته شده است. Gradle به عنوان ابزاری که گوگل برای ساخت اندروید از آن استفاده می کند کاملاً شناخته شده است. این انعطاف پذیر است و همانطور که می گویند "آزموده شده در نبرد". Maven یک ابزار استاندارد برای ساخت پروژه ها در خود آپاچی است و از آنجایی که اکثر محصولات آن از طریق Maven منتشر می شوند، در اینجا نیز بدون آن امکان پذیر نیست. شایان ذکر است که به POM (مدل شی پروژه) توجه کنید - فایل xml "بنیادی" که همه چیزهایی را که برای Maven برای کار با پروژه شما لازم است توصیف می کند ، که همه کارها حول آن ساخته شده است. دقیقا در
بخش‌هایی از Maven و موانعی وجود دارد که کاربران Bigtop برای اولین بار معمولاً با آن‌ها مواجه می‌شوند.

عمل

پس از کجا باید شروع کرد؟ به صفحه دانلود بروید و آخرین نسخه پایدار را به صورت آرشیو دانلود کنید. همچنین می توانید مصنوعات باینری جمع آوری شده توسط Bigtop را در آنجا پیدا کنید. به هر حال، در بین مدیران بسته رایج، YUM و APT پشتیبانی می شوند.

همچنین، می‌توانید آخرین نسخه پایدار را مستقیماً از اینجا دانلود کنید
github:

$ git clone --branch branch-1.4 https://github.com/apache/bigtop.git

شبیه سازی در "bigtop"…

remote: Enumerating objects: 46, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 40217 (delta 14), reused 10 (delta 1), pack-reused 40171
Получение объектов: 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, готово.
Определение изменений: 100% (20503/20503), готово.
Updating files: 100% (1998/1998), готово.

دایرکتوری ./bigtop حاصل چیزی شبیه به این است:

./bigtop-bigpetstore - برنامه های آزمایشی، نمونه های مصنوعی
./bigtop-ci - ابزارهای CI، جنکینز
./bigtop-data-generators - تولید داده، مصنوعی، برای آزمایش دود، و غیره.
./bigtop-deploy - ابزارهای استقرار
./bigtop-packages - تنظیمات، اسکریپت ها، وصله های مونتاژ، بخش اصلی ابزار
./bigtop-test-framework - چارچوب تست
./bigtop-tests - خود آزمایش ها، بارگیری و دود
./bigtop_toolchain - محیط برای مونتاژ، آماده سازی محیط برای کار ابزار
./build - ساخت دایرکتوری کاری
./dl - دایرکتوری برای منابع دانلود شده
./docker - ساخت تصاویر داکر، آزمایش
./gradle - پیکربندی gradle
./output – دایرکتوری که مصنوعات ساخت در آن قرار می گیرند
./provisioner - تامین

جالب ترین چیز برای ما در این مرحله کانفیگ اصلی است ./bigtop/bigtop.bom، که در آن همه مؤلفه های پشتیبانی شده را با نسخه می بینیم. اینجاست که می‌توانیم یک نسخه متفاوت از محصول (اگر ناگهان بخواهیم آن را بسازیم) یا یک نسخه ساخت (مثلاً اگر یک پچ قابل توجه اضافه کرده‌ایم) مشخص کنیم.

دایرکتوری فرعی نیز بسیار مورد توجه است ./bigtop/bigtop-packages، که ارتباط مستقیمی با روند مونتاژ قطعات و بسته ها با آنها دارد.

بنابراین، ما آرشیو را دانلود کردیم، آن را باز کردیم یا یک کلون از github ساختیم، آیا می توانیم شروع به ساختن کنیم؟

نه، اول محیط را آماده کنیم.

آماده سازی محیط

و در اینجا ما به یک عقب نشینی کوچک نیاز داریم. برای ساخت تقریباً هر محصول کم و بیش پیچیده، یک محیط خاص مورد نیاز است - در مورد ما، این JDK، همان کتابخانه های مشترک، فایل های هدر و غیره، ابزارها، به عنوان مثال، ant، ivy2 و موارد دیگر است. یکی از گزینه های دریافت محیط مورد نیاز برای Bigtop، نصب کامپوننت های لازم بر روی build host است. ممکن است در زمان بندی اشتباه کنم، اما به نظر می رسد که در نسخه 1.0 گزینه ای برای ساخت تصاویر Docker از پیش پیکربندی شده و قابل دسترس نیز وجود دارد که می توانید در اینجا پیدا کنید.

در مورد آماده سازی محیط، یک دستیار برای این وجود دارد - عروسک.

می توانید از دستورات زیر استفاده کنید، از دایرکتوری ریشه اجرا کنید
ابزار، ./bigtop:

./gradlew toolchain
./gradlew toolchain-devtools
./gradlew toolchain-puppetmodules

یا مستقیماً از طریق عروسک:

puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::installer"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::deployment-tools"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::development-tools"

متأسفانه در این مرحله ممکن است مشکلاتی پیش بیاید. توصیه کلی در اینجا این است که از توزیع پشتیبانی شده، به روز شده در میزبان ساخت، استفاده کنید یا مسیر docker را امتحان کنید.

مجلس

چه چیزی را می توانیم جمع آوری کنیم؟ پاسخ این سوال توسط خروجی دستور داده خواهد شد

./gradlew tasks

در بخش Package tasks تعدادی محصول وجود دارد که مصنوعات نهایی Bigtop هستند.
آنها را می توان با پسوند -rpm یا -pkg-ind (در مورد ساختمان) شناسایی کرد.
در داکر). در مورد ما، جالب ترین Hadoop است.

بیایید سعی کنیم در محیط بیلد سرور خود بسازیم:

./gradlew hadoop-rpm

Bigtop خود منابع لازم برای یک جزء خاص را دانلود کرده و مونتاژ را آغاز می کند. بنابراین، عملکرد ابزار وابسته به مخازن Maven و سایر منابع است، یعنی نیاز به دسترسی به اینترنت دارد.

در طول عملیات، خروجی استاندارد تولید می شود. گاهی اوقات آن و پیام های خطا می توانند به شما کمک کنند تا متوجه شوید چه اشتباهی رخ داده است. و گاهی اوقات شما نیاز به دریافت اطلاعات اضافی دارید. در این مورد ارزش افزودن استدلال را دارد --info یا --debug، و همچنین ممکن است مفید باشد –stacktrace. یک راه راحت برای تولید یک مجموعه داده برای دسترسی بعدی به لیست های پستی وجود دارد، کلید --scan.

با کمک آن، bigtop تمام اطلاعات را جمع آوری کرده و در gradle قرار می دهد و پس از آن یک لینک ارائه می دهد.
با پیروی از آن، یک فرد ذیصلاح قادر خواهد بود بفهمد که چرا مجمع شکست خورده است.
لطفاً توجه داشته باشید که این گزینه ممکن است اطلاعاتی را که شما نمی‌خواهید، مانند نام‌های کاربری، گره‌ها، متغیرهای محیطی و غیره را در معرض نمایش قرار دهد، پس مراقب باشید.

اغلب خطاها نتیجه ناتوانی در به دست آوردن اجزای لازم برای مونتاژ است. معمولاً، می‌توانید با ایجاد یک وصله برای رفع چیزی در منابع، به عنوان مثال، آدرس‌های موجود در pom.xml در فهرست اصلی منابع، مشکل را برطرف کنید. این کار با ایجاد و قرار دادن آن در دایرکتوری مناسب انجام می شود ./bigtop/bigtop-packages/src/common/oozie/ پچ، به عنوان مثال، در فرم patch2-fix.diff.

--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
<repositories>
<repository>
<id>central</id>
- <url>http://repo1.maven.org/maven2</url>
+ <url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>

به احتمال زیاد، در زمان خواندن این مقاله، نیازی به انجام اصلاحات بالا نخواهید داشت.

هنگام معرفی هر گونه وصله و تغییر در مکانیسم اسمبلی، ممکن است نیاز باشد که مونتاژ را با استفاده از دستور پاکسازی "تنظیم مجدد" کنید:

./gradlew hadoop-clean
> Task :hadoop_vardefines
> Task :hadoop-clean
BUILD SUCCESSFUL in 5s
2 actionable tasks: 2 executed

این عملیات تمام تغییرات مونتاژ این کامپوننت را برمی گرداند و پس از آن مونتاژ دوباره انجام می شود. این بار سعی می کنیم پروژه را در یک تصویر داکر بسازیم:

./gradlew -POS=centos-7 -Pprefix=1.2.1 hadoop-pkg-ind
> Task :hadoop-pkg-ind
Building 1.2.1 hadoop-pkg on centos-7 in Docker...
+++ dirname ./bigtop-ci/build.sh
++ cd ./bigtop-ci/..
++ pwd
+ BIGTOP_HOME=/tmp/bigtop
+ '[' 6 -eq 0 ']'
+ [[ 6 -gt 0 ]]
+ key=--prefix
+ case $key in
+ PREFIX=1.2.1
+ shift
+ shift
+ [[ 4 -gt 0 ]]
+ key=--os
+ case $key in
+ OS=centos-7
+ shift
+ shift
+ [[ 2 -gt 0 ]]
+ key=--target
+ case $key in
+ TARGET=hadoop-pkg
+ shift
+ shift
+ [[ 0 -gt 0 ]]
+ '[' -z x ']'
+ '[' -z x ']'
+ '[' '' == true ']'
+ IMAGE_NAME=bigtop/slaves:1.2.1-centos-7
++ uname -m
+ ARCH=x86_64
+ '[' x86_64 '!=' x86_64 ']'
++ docker run -d bigtop/slaves:1.2.1-centos-7 /sbin/init
+
CONTAINER_ID=0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8
+ trap 'docker rm -f
0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8' EXIT
....
много вывода
....
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-namenode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-secondarynamenode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-zkfc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-journalnode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-datanode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-httpfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-resourcemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-nodemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-proxyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-timelineserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-historyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-client-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-conf-pseudo-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-doc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-devel-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-fuse-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-debuginfo-2.8.5-1.el7.x86_64.rpm
+ umask 022
+ cd /bigtop/build/hadoop/rpm//BUILD
+ cd hadoop-2.8.5-src
+ /usr/bin/rm -rf /bigtop/build/hadoop/rpm/BUILDROOT/hadoop-2.8.5-1.el7.x86_64
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.uQ2FCn
+ exit 0
+ umask 022
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.CwDb22
+ cd /bigtop/build/hadoop/rpm//BUILD
+ rm -rf hadoop-2.8.5-src
+ exit 0
[ant:touch] Creating /bigtop/build/hadoop/.rpm
:hadoop-rpm (Thread[Task worker for ':',5,main]) completed. Took 38 mins 1.151 secs.
:hadoop-pkg (Thread[Task worker for ':',5,main]) started.
> Task :hadoop-pkg
Task ':hadoop-pkg' is not up-to-date because:
Task has not declared any outputs despite executing actions.
:hadoop-pkg (Thread[Task worker for ':',5,main]) completed. Took 0.0 secs.
BUILD SUCCESSFUL in 40m 37s
6 actionable tasks: 6 executed
+ RESULT=0
+ mkdir -p output
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/build .
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/output .
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
+ '[' 0 -ne 0 ']'
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
Error: No such container:
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
BUILD SUCCESSFUL in 41m 24s
1 actionable task: 1 executed

این ساخت تحت CentOS انجام شده است، اما می تواند تحت اوبونتو نیز انجام شود:

./gradlew -POS=ubuntu-16.04 -Pprefix=1.2.1 hadoop-pkg-ind

علاوه بر ساخت بسته‌ها برای توزیع‌های مختلف لینوکس، این ابزار می‌تواند یک مخزن با بسته‌های کامپایل شده ایجاد کند، به عنوان مثال:

./gradlew yum

همچنین می توانید آزمایش های دود و استقرار در Docker را به خاطر بسپارید.

یک خوشه از سه گره ایجاد کنید:

./gradlew -Pnum_instances=3 docker-provisioner

آزمایش دود را در یک خوشه از سه گره اجرا کنید:

./gradlew -Pnum_instances=3 -Prun_smoke_tests docker-provisioner

حذف یک خوشه:

./gradlew docker-provisioner-destroy

دریافت دستورات برای اتصال داخل کانتینرهای داکر:

./gradlew docker-provisioner-ssh

نمایش وضعیت:

./gradlew docker-provisioner-status

می‌توانید درباره وظایف استقرار در مستندات بیشتر بخوانید.

اگر در مورد آزمایش صحبت کنیم، تعداد بسیار زیادی از آنها وجود دارد، عمدتا دود و ادغام. تحلیل آنها از حوصله این مقاله خارج است. بگذارید فقط بگویم که مونتاژ یک توزیع آنقدرها هم که در نگاه اول به نظر می رسد کار دشواری نیست. ما موفق شدیم تمام قطعاتی را که در تولید خود استفاده می کنیم مونتاژ و آزمایش کنیم و همچنین برای استقرار آنها و انجام عملیات اساسی در محیط آزمایش مشکلی نداشتیم.

علاوه بر اجزای موجود در Bigtop، امکان اضافه کردن هر چیز دیگری، حتی توسعه نرم افزار خودتان نیز وجود دارد. همه اینها کاملاً خودکار است و با مفهوم CI/CD مطابقت دارد.

نتیجه

بدیهی است که توزیعی که به این روش تدوین شده است نباید فوراً به تولید ارسال شود. شما باید درک کنید که اگر واقعا نیاز به ساخت و حمایت از توزیع شما وجود دارد، پس باید پول و زمان خود را در این زمینه سرمایه گذاری کنید.

با این حال، در ترکیب با رویکرد صحیح و یک تیم حرفه ای، بدون راه حل های تجاری کاملاً ممکن است.

توجه به این نکته مهم است که پروژه Bigtop خود نیاز به توسعه دارد و به نظر نمی رسد که امروزه به طور فعال در حال توسعه باشد. چشم انداز حضور Hadoop 3 در آن نیز نامشخص است، به هر حال، اگر واقعاً نیاز به ساخت Hadoop 3 دارید، می توانید به چنگال از Arenadata، که در آن، علاوه بر استاندارد
تعدادی مؤلفه اضافی وجود دارد (Ranger، Knox، NiFi).

در مورد Rostelecom، برای ما Bigtop یکی از گزینه هایی است که امروزه در حال بررسی است. اینکه آن را انتخاب کنیم یا نه، زمان مشخص خواهد کرد.

ضمیمه

برای گنجاندن یک جزء جدید در اسمبلی، باید توضیحات آن را به bigtop.bom و ./bigtop-packages اضافه کنید. می توانید سعی کنید این کار را با قیاس با اجزای موجود انجام دهید. سعی کن بفهمی آنقدرها هم که در نگاه اول به نظر می رسد سخت نیست.

شما چی فکر میکنید؟ خوشحال خواهیم شد که نظر شما را در نظرات ببینیم و از توجه شما متشکریم!

مقاله توسط تیم مدیریت داده Rostelecom تهیه شده است

منبع: www.habr.com

اضافه کردن نظر