Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay

Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay

Có lẽ không có gì bí mật khi năm ngoái là một năm có nhiều thay đổi lớn đối với Apache Hadoop. Năm ngoái, Cloudera và Hortonworks đã hợp nhất (về cơ bản là việc mua lại Hortonworks) và Mapr, do vấn đề tài chính nghiêm trọng, đã được bán cho Hewlett Packard. Và nếu vài năm trước, trong trường hợp lắp đặt tại chỗ, sự lựa chọn thường phải được thực hiện giữa Cloudera và Hortonworks thì ngày nay, than ôi, chúng ta không có lựa chọn này. Một điều ngạc nhiên khác là Cloudera đã thông báo vào tháng 2019 năm nay rằng họ sẽ ngừng phát hành các tập hợp nhị phân phân phối của mình vào kho lưu trữ công cộng và hiện chúng chỉ có sẵn thông qua đăng ký trả phí. Tất nhiên, vẫn có thể tải xuống các phiên bản CDH và HDP mới nhất được phát hành trước cuối năm XNUMX và dự kiến ​​sẽ hỗ trợ chúng trong một đến hai năm. Nhưng phải làm gì tiếp theo? Đối với những người trước đây đã trả tiền đăng ký, không có gì thay đổi. Và đối với những người không muốn chuyển sang phiên bản trả phí của bản phân phối, nhưng đồng thời muốn có thể nhận được phiên bản mới nhất của các thành phần cụm, cũng như các bản vá lỗi và các bản cập nhật khác, chúng tôi đã chuẩn bị bài viết này. Trong đó chúng tôi sẽ xem xét các lựa chọn khả thi để thoát khỏi tình huống này.

Bài viết mang tính chất đánh giá nhiều hơn. Nó sẽ không chứa phần so sánh các bản phân phối và phân tích chi tiết về chúng cũng như sẽ không có công thức cài đặt và định cấu hình chúng. Chuyện gì sẽ xảy ra? Chúng ta sẽ nói ngắn gọn về một bản phân phối như Arenadata Hadoop, bản phân phối này thực sự đáng được chúng ta chú ý do tính sẵn có của nó, điều này rất hiếm ngày nay. Và sau đó chúng ta sẽ nói về Vanilla Hadoop, chủ yếu là về cách nó có thể được “nấu” bằng Apache Bigtop. Sẵn sàng? Vậy thì chào mừng đến với mèo.

Arenadata Hadoop

Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay

Đây là một bộ phân phối hoàn toàn mới và ít được biết đến trong quá trình phát triển trong nước. Thật không may, hiện tại ở Habré chỉ có bài viết này.

Thông tin thêm có thể được tìm thấy trên trang chính thức website dự án. Các phiên bản phân phối mới nhất dựa trên Hadoop 3.1.2 cho phiên bản 3 và 2.8.5 cho phiên bản 2.

Thông tin về lộ trình có thể được tìm thấy đây.

Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay
Giao diện quản lý cụm Arenadata

Sản phẩm cốt lõi của Arenadata là Trình quản lý cụm Arenadata (ADCM), được sử dụng để cài đặt, định cấu hình và giám sát các giải pháp phần mềm khác nhau của công ty. ADCM được phân phối miễn phí và chức năng của nó được mở rộng bằng cách thêm các gói, là một bộ sách ansible-playbook. Các gói được chia thành hai loại: doanh nghiệp và cộng đồng. Cái sau có sẵn để tải xuống miễn phí từ trang web Arenadata. Bạn cũng có thể phát triển gói của riêng mình và kết nối nó với ADCM.

Để triển khai và quản lý Hadoop 3, phiên bản cộng đồng của gói được cung cấp cùng với ADCM, nhưng đối với Hadoop 2 thì chỉ có Apache Ambari như một sự thay thế. Đối với các kho có gói, chúng được mở cho công chúng truy cập, có thể tải xuống và cài đặt theo cách thông thường cho tất cả các thành phần của cụm. Nhìn chung, sự phân phối có vẻ rất thú vị. Tôi chắc chắn rằng sẽ có những người đã quen với các giải pháp như Cloudera Manager và Ambari, cũng như sẽ thích chính ADCM. Đối với một số người, việc phân phối cũng sẽ là một điểm cộng lớn được bao gồm trong sổ đăng ký phần mềm để thay thế nhập khẩu.

Nếu chúng ta nói về những nhược điểm, chúng sẽ giống như tất cả các bản phân phối Hadoop khác. Cụ thể là:

  • Cái gọi là "khóa nhà cung cấp". Sử dụng các ví dụ của Cloudera và Hortonworks, chúng tôi đã nhận ra rằng luôn có nguy cơ thay đổi chính sách của công ty.
  • Độ trễ đáng kể so với thượng nguồn Apache.

Vanilla Hadoop

Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay

Như bạn đã biết, Hadoop không phải là một sản phẩm nguyên khối mà trên thực tế là cả một loạt các dịch vụ xung quanh hệ thống tệp phân tán HDFS của nó. Rất ít người sẽ có đủ một cụm tệp. Một số cần Hive, số khác cần Presto, sau đó có HBase và Phoenix; Spark ngày càng được sử dụng nhiều hơn. Để điều phối và tải dữ liệu, đôi khi người ta tìm thấy Oozie, Sqoop và Flume. Và nếu vấn đề bảo mật nảy sinh, thì Kerberos kết hợp với Ranger sẽ ngay lập tức được nghĩ đến.

Phiên bản nhị phân của các thành phần Hadoop có sẵn trên trang web của từng dự án hệ sinh thái dưới dạng tarball. Bạn có thể tải chúng xuống và bắt đầu cài đặt, nhưng với một điều kiện: ngoài việc tập hợp độc lập các gói từ các tệp nhị phân "thô", điều mà bạn rất muốn làm, bạn sẽ không tin tưởng vào khả năng tương thích của các phiên bản đã tải xuống của các thành phần với từng phiên bản. khác. Tùy chọn ưa thích là xây dựng bằng Apache Bigtop. Bigtop sẽ cho phép bạn xây dựng từ kho lưu trữ maven của Apache, chạy thử nghiệm và xây dựng các gói. Tuy nhiên, điều rất quan trọng đối với chúng tôi là Bigtop sẽ tập hợp các phiên bản thành phần tương thích với nhau. Chúng tôi sẽ nói về nó chi tiết hơn dưới đây.

Apache Bigtop

Apache Bigtop và chọn bản phân phối Hadoop ngay hôm nay

Apache Bigtop là một công cụ để xây dựng, đóng gói và thử nghiệm một số
các dự án nguồn mở, chẳng hạn như Hadoop và Greenplum. Bigtop có rất nhiều
phát hành. Tại thời điểm viết bài, bản phát hành ổn định mới nhất là phiên bản 1.4,
và trong master có 1.5. Các phiên bản phát hành khác nhau sử dụng các phiên bản khác nhau
các thành phần. Ví dụ: đối với các thành phần lõi của Hadoop 1.4 có phiên bản 2.8.5 và trong bản chính
2.10.0. Thành phần của các thành phần được hỗ trợ cũng đang thay đổi. Một cái gì đó đã lỗi thời và
những thứ không thể tái tạo được sẽ biến mất và thay vào đó là thứ gì đó mới mẻ hơn, có nhu cầu cao hơn và
nó không nhất thiết phải là thứ gì đó từ chính họ Apache.

Ngoài ra Bigtop còn có rất nhiều nĩa.

Khi bắt đầu làm quen với Bigtop, trước hết chúng tôi rất ngạc nhiên bởi sự khiêm tốn của nó so với các dự án Apache khác, mức độ phổ biến và mức độ phổ biến cũng như một cộng đồng rất nhỏ. Từ đó, có rất ít thông tin về sản phẩm và việc tìm kiếm giải pháp cho các vấn đề phát sinh trên các diễn đàn và danh sách gửi thư có thể không mang lại kết quả gì. Lúc đầu, chúng tôi thấy việc hoàn thành việc lắp ráp hoàn chỉnh bản phân phối là một nhiệm vụ khó khăn do các tính năng của chính công cụ này, nhưng chúng tôi sẽ nói về vấn đề này sau.

Như một lời giới thiệu, những người đã từng quan tâm đến các dự án như vậy của vũ trụ Linux như Gentoo và LFS có thể cảm thấy thật thú vị khi làm việc với thứ này và nhớ về những khoảng thời gian “hoành tráng” mà chính chúng ta đang tìm kiếm (hoặc thậm chí là viết) ebuilds và thường xuyên xây dựng lại Mozilla với các bản vá mới.

Ưu điểm lớn của Bigtop là tính mở và tính linh hoạt của các công cụ mà nó dựa trên. Nó dựa trên Gradle và Apache Maven. Gradle khá nổi tiếng là công cụ Google sử dụng để xây dựng Android. Nó linh hoạt và như người ta nói, “đã được thử nghiệm trong trận chiến”. Maven là một công cụ tiêu chuẩn để xây dựng các dự án trong chính Apache và vì hầu hết các sản phẩm của nó được phát hành thông qua Maven nên nó cũng không thể được thực hiện nếu không có nó ở đây. Điều đáng chú ý là POM (mô hình đối tượng dự án) - tệp xml “cơ bản” mô tả mọi thứ cần thiết để Maven làm việc với dự án của bạn, xung quanh đó mọi công việc được xây dựng. Chính xác tại
các phần của Maven và có một số trở ngại mà người dùng Bigtop lần đầu thường gặp phải.

Tập luyện

Vậy bạn nên bắt đầu từ đâu? Truy cập trang tải xuống và tải xuống phiên bản ổn định mới nhất dưới dạng kho lưu trữ. Bạn cũng có thể tìm thấy các tạo phẩm nhị phân được Bigtop thu thập ở đó. Nhân tiện, trong số các trình quản lý gói phổ biến, YUM và APT được hỗ trợ.

Ngoài ra, bạn có thể tải xuống bản phát hành ổn định mới nhất trực tiếp từ
github:

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

Nhân bản trong “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), готово.

Thư mục ./bigtop kết quả trông giống như thế này:

./bigtop-bigpetstore - ứng dụng demo, ví dụ tổng hợp
./bigtop-ci - Công cụ CI, jenkins
./bigtop-data-generators - tạo dữ liệu, tổng hợp, để kiểm tra khói, v.v.
./bigtop-deploy - công cụ triển khai
./bigtop-packages — cấu hình, tập lệnh, bản vá để lắp ráp, phần chính của công cụ
./bigtop-test-framework - khung thử nghiệm
./bigtop-tests - bản thân các thử nghiệm, tải và khói
./bigtop_toolchain - môi trường để lắp ráp, chuẩn bị môi trường cho dụng cụ làm việc
./build - xây dựng thư mục làm việc
./dl - thư mục cho các nguồn đã tải xuống
./docker — xây dựng hình ảnh docker, thử nghiệm
./gradle - cấu hình lớp
./output – thư mục chứa các tạo phẩm xây dựng
./provisioner — cung cấp

Điều thú vị nhất đối với chúng tôi ở giai đoạn này là cấu hình chính ./bigtop/bigtop.bom, trong đó chúng tôi thấy tất cả các thành phần được hỗ trợ có phiên bản. Đây là nơi chúng tôi có thể chỉ định một phiên bản khác của sản phẩm (nếu chúng tôi đột nhiên muốn thử xây dựng nó) hoặc một phiên bản xây dựng (ví dụ: nếu chúng tôi đã thêm một bản vá quan trọng).

Thư mục con cũng rất được quan tâm ./bigtop/bigtop-packages, liên quan trực tiếp đến quá trình lắp ráp các thành phần, gói hàng với chúng.

Vì vậy, chúng tôi đã tải xuống kho lưu trữ, giải nén nó hoặc tạo một bản sao từ github, chúng tôi có thể bắt đầu xây dựng không?

Không, trước tiên hãy chuẩn bị môi trường.

Chuẩn bị Môi trường

Và ở đây chúng ta cần một cuộc rút lui nhỏ. Để xây dựng hầu hết mọi sản phẩm phức tạp ít nhiều, bạn cần có một môi trường nhất định - trong trường hợp của chúng tôi, đây là JDK, các thư viện dùng chung, tệp tiêu đề, v.v., các công cụ, chẳng hạn như ant, ivy2 và nhiều hơn thế nữa. Một trong những lựa chọn để có được môi trường bạn cần cho Bigtop là cài đặt các thành phần cần thiết trên máy chủ xây dựng. Tôi có thể sai về trình tự thời gian, nhưng có vẻ như với phiên bản 1.0 cũng có một tùy chọn để xây dựng các hình ảnh Docker được định cấu hình sẵn và có thể truy cập được, bạn có thể tìm thấy tùy chọn này tại đây.

Về việc chuẩn bị môi trường, có một trợ thủ cho việc này - Con rối.

Bạn có thể sử dụng các lệnh sau, chạy từ thư mục gốc
dụng cụ, ./bigtop:

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

Hoặc trực tiếp qua con rối:

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"

Thật không may, khó khăn có thể nảy sinh ở giai đoạn này. Lời khuyên chung ở đây là sử dụng bản phân phối được hỗ trợ, cập nhật trên máy chủ xây dựng hoặc thử tuyến đường docker.

Lắp ráp

Chúng ta có thể cố gắng thu thập những gì? Câu trả lời cho câu hỏi này sẽ được đưa ra bằng đầu ra của lệnh

./gradlew tasks

Trong phần Nhiệm vụ gói có một số sản phẩm là tạo phẩm cuối cùng của Bigtop.
Chúng có thể được xác định bằng hậu tố -rpm hoặc -pkg-ind (trong trường hợp xây dựng
trong docker). Trong trường hợp của chúng tôi, thú vị nhất là Hadoop.

Hãy thử xây dựng trong môi trường máy chủ xây dựng của chúng tôi:

./gradlew hadoop-rpm

Bản thân Bigtop sẽ tải xuống các nguồn cần thiết cho một thành phần cụ thể và bắt đầu lắp ráp. Do đó, hoạt động của công cụ này phụ thuộc vào kho lưu trữ của Maven và các nguồn khác, tức là nó yêu cầu truy cập Internet.

Trong quá trình hoạt động, đầu ra tiêu chuẩn được tạo ra. Đôi khi nó và các thông báo lỗi có thể giúp bạn hiểu được điều gì đã xảy ra. Và đôi khi bạn cần có thêm thông tin. Trong trường hợp này, đáng để thêm đối số --info hoặc --debug, và cũng có thể hữu ích –stacktrace. Có một cách thuận tiện để tạo tập dữ liệu cho lần truy cập tiếp theo vào danh sách gửi thư, đó là --scan.

Với sự trợ giúp của nó, bigtop sẽ thu thập tất cả thông tin và đưa nó vào gradle, sau đó nó sẽ cung cấp một liên kết,
bằng cách làm theo, người có thẩm quyền sẽ có thể hiểu tại sao việc lắp ráp thất bại.
Xin lưu ý rằng tùy chọn này có thể tiết lộ thông tin bạn không muốn, chẳng hạn như tên người dùng, nút, biến môi trường, v.v., vì vậy hãy cẩn thận.

Thông thường, lỗi là hậu quả của việc không thể có được bất kỳ thành phần nào cần thiết để lắp ráp. Thông thường, bạn có thể khắc phục sự cố bằng cách tạo một bản vá để sửa lỗi nào đó trong nguồn, ví dụ: các địa chỉ trong pom.xml trong thư mục gốc của nguồn. Điều này được thực hiện bằng cách tạo và đặt nó vào thư mục thích hợp ./bigtop/bigtop-packages/src/common/oozie/ bản vá, ví dụ, ở dạng 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>

Rất có thể, khi đọc bài viết này, bạn sẽ không phải tự mình thực hiện các thao tác khắc phục trên.

Khi giới thiệu bất kỳ bản vá và thay đổi nào đối với cơ chế lắp ráp, bạn có thể cần phải “đặt lại” lắp ráp bằng lệnh dọn dẹp:

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

Thao tác này sẽ khôi phục tất cả các thay đổi đối với việc lắp ráp thành phần này, sau đó việc lắp ráp sẽ được thực hiện lại. Lần này chúng ta sẽ cố gắng xây dựng dự án bằng hình ảnh docker:

./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

Quá trình xây dựng được thực hiện trên CentOS, nhưng cũng có thể được thực hiện trên Ubuntu:

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

Ngoài việc xây dựng các gói cho các bản phân phối Linux khác nhau, công cụ này có thể tạo một kho lưu trữ với các gói đã biên dịch, ví dụ:

./gradlew yum

Bạn cũng có thể nhớ về các thử nghiệm khói và triển khai trong Docker.

Tạo một cụm gồm ba nút:

./gradlew -Pnum_instances=3 docker-provisioner

Chạy thử nghiệm khói trong một cụm gồm ba nút:

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

Xóa một cụm:

./gradlew docker-provisioner-destroy

Nhận lệnh để kết nối bên trong vùng chứa docker:

./gradlew docker-provisioner-ssh

Hiển thị trạng thái:

./gradlew docker-provisioner-status

Bạn có thể đọc thêm về Nhiệm vụ triển khai trong tài liệu.

Nếu nói về test thì số lượng khá nhiều, chủ yếu là khói và tích hợp. Phân tích của họ nằm ngoài phạm vi của bài viết này. Hãy để tôi chỉ nói rằng việc lắp ráp một bộ phân phối không phải là một nhiệm vụ khó khăn như thoạt nhìn. Chúng tôi đã cố gắng lắp ráp và vượt qua các thử nghiệm trên tất cả các thành phần mà chúng tôi sử dụng trong quá trình sản xuất của mình, đồng thời chúng tôi cũng không gặp vấn đề gì khi triển khai chúng và thực hiện các hoạt động cơ bản trong môi trường thử nghiệm.

Ngoài các thành phần hiện có trong Bigtop, bạn có thể thêm bất cứ thứ gì khác, thậm chí là phát triển phần mềm của riêng bạn. Tất cả điều này hoàn toàn tự động và phù hợp với khái niệm CI/CD.

Kết luận

Rõ ràng, bản phân phối được biên soạn theo cách này sẽ không được gửi ngay vào sản xuất. Bạn cần hiểu rằng nếu thực sự có nhu cầu xây dựng và hỗ trợ hệ thống phân phối của mình thì bạn cần đầu tư tiền bạc và thời gian vào việc này.

Tuy nhiên, kết hợp với cách tiếp cận phù hợp và đội ngũ chuyên nghiệp, hoàn toàn có thể thực hiện được mà không cần giải pháp thương mại.

Điều quan trọng cần lưu ý là bản thân dự án Bigtop đang cần được phát triển và dường như không được phát triển tích cực ngày nay. Viễn cảnh Hadoop 3 xuất hiện trong đó cũng chưa rõ ràng, nhân tiện, nếu bạn thực sự có nhu cầu xây dựng Hadoop 3, bạn có thể xem qua cái nĩa từ Arenadata, trong đó, ngoài tiêu chuẩn
Có một số thành phần bổ sung (Ranger, Knox, NiFi).

Còn đối với Rostelecom, đối với chúng tôi Bigtop là một trong những lựa chọn đang được cân nhắc hiện nay. Chúng ta có chọn hay không, thời gian sẽ trả lời.

Phụ lục

Để đưa một thành phần mới vào tập hợp, bạn cần thêm mô tả của nó vào bigtop.bom và ./bigtop-packages. Bạn có thể thử thực hiện điều này bằng cách tương tự với các thành phần hiện có. Hãy cố gắng tìm ra nó. Nó không khó như thoạt nhìn.

Bạn nghĩ sao? Chúng tôi sẽ rất vui khi thấy ý kiến ​​​​của bạn trong phần bình luận và cảm ơn sự quan tâm của bạn!

Bài viết được chuẩn bị bởi đội ngũ quản lý dữ liệu Rostelecom

Nguồn: www.habr.com

Thêm một lời nhận xét