Cloudera có gì đặc biệt và cách nấu nó

Thị trường điện toán phân tán và dữ liệu lớn, theo thống kê, đang tăng trưởng 18-19%/năm. Điều này có nghĩa là vấn đề chọn phần mềm cho các mục đích này vẫn còn phù hợp. Trong bài đăng này, chúng ta sẽ bắt đầu với lý do tại sao chúng ta cần điện toán phân tán, chúng ta sẽ tìm hiểu chi tiết hơn về việc lựa chọn phần mềm, chúng ta sẽ nói về việc sử dụng Hadoop với Cloudera và cuối cùng chúng ta sẽ nói về việc lựa chọn phần cứng và cách nó ảnh hưởng đến hiệu suất theo những cách khác nhau.

Cloudera có gì đặc biệt và cách nấu nó
Tại sao chúng ta cần tính toán phân tán trong kinh doanh thông thường? Mọi thứ đều đơn giản và phức tạp cùng một lúc. Đơn giản - bởi vì trong hầu hết các trường hợp, chúng tôi thực hiện các phép tính tương đối đơn giản trên mỗi đơn vị thông tin. Khó - bởi vì có rất nhiều thông tin như vậy. Rất nhiều. Kết quả là, nó phải xử lý hàng terabyte dữ liệu trong 1000 luồng. Do đó, các trường hợp sử dụng khá phổ biến: các phép tính có thể được áp dụng ở bất cứ nơi nào cần tính đến một số lượng lớn chỉ số trên một mảng dữ liệu thậm chí còn lớn hơn.

Một ví dụ gần đây: Dodo Pizza xác định dựa trên phân tích về cơ sở đặt hàng của khách hàng, rằng khi chọn một chiếc bánh pizza có lớp phủ bên trên tùy ý, người dùng thường chỉ thao tác với sáu bộ nguyên liệu cơ bản cộng với một vài bộ nguyên liệu ngẫu nhiên. Theo đó, các cửa hàng bánh pizza điều chỉnh mua hàng. Ngoài ra, nó có thể đề xuất tốt hơn các sản phẩm bổ sung được cung cấp ở giai đoạn đặt hàng cho người dùng, giúp tăng lợi nhuận.

Một ví dụ khác: phân tích hàng hóa cho phép H&M giảm 40% chủng loại trong các cửa hàng riêng lẻ, trong khi vẫn duy trì mức doanh thu. Điều này đạt được bằng cách loại trừ các vị trí bán kém và tính thời vụ đã được tính đến trong các tính toán.

Lựa chọn công cụ

Tiêu chuẩn công nghiệp cho loại điện toán này là Hadoop. Tại sao? Bởi vì Hadoop là một khung tuyệt vời, được ghi chép đầy đủ (Habr cũng đưa ra nhiều bài viết chi tiết về chủ đề này), đi kèm với một bộ tiện ích và thư viện hoàn chỉnh. Bạn có thể gửi các tập hợp lớn dữ liệu có cấu trúc và phi cấu trúc làm đầu vào và chính hệ thống sẽ phân phối chúng giữa các công suất tính toán. Hơn nữa, những dung lượng tương tự này có thể được tăng hoặc tắt bất cứ lúc nào - khả năng mở rộng theo chiều ngang đó đang hoạt động.

Năm 2017, công ty tư vấn có ảnh hưởng Gartner kết luậnrằng Hadoop sẽ sớm trở nên lỗi thời. Lý do khá tầm thường: các nhà phân tích tin rằng các công ty sẽ ồ ạt chuyển sang đám mây, vì ở đó họ sẽ có thể thanh toán dựa trên việc sử dụng sức mạnh tính toán. Yếu tố quan trọng thứ hai được cho là có khả năng "vùi dập" Hadoop chính là tốc độ làm việc. Bởi vì các tùy chọn như Apache Spark hoặc Google Cloud DataFlow nhanh hơn MapReduce bên dưới Hadoop.

Hadoop dựa trên một số trụ cột, trong đó đáng chú ý nhất là công nghệ MapReduce (hệ thống phân phối dữ liệu để tính toán giữa các máy chủ) và hệ thống tệp HDFS. Cái sau được thiết kế đặc biệt để lưu trữ thông tin được phân phối giữa các nút cụm: mỗi khối có kích thước cố định có thể được đặt trên một số nút và nhờ khả năng sao chép, hệ thống có khả năng chống lại sự cố của các nút riêng lẻ. Thay vì một bảng tệp, một máy chủ đặc biệt có tên là NameNode được sử dụng.

Hình minh họa dưới đây cho thấy cách hoạt động của MapReduce. Ở giai đoạn đầu tiên, dữ liệu được phân chia theo một thuộc tính nhất định, ở giai đoạn thứ hai, nó được phân phối theo sức mạnh tính toán, ở giai đoạn thứ ba, quá trình tính toán diễn ra.

Cloudera có gì đặc biệt và cách nấu nó
MapReduce ban đầu được Google tạo ra cho nhu cầu tìm kiếm của mình. Sau đó, MapReduce chuyển sang mã miễn phí và Apache tiếp quản dự án. Chà, Google dần dần chuyển sang các giải pháp khác. Một sắc thái thú vị: hiện tại, Google có một dự án tên là Google Cloud Dataflow, được định vị là bước tiếp theo sau Hadoop, là sự thay thế nhanh chóng của nó.

Xem xét kỹ hơn cho thấy rằng Google Cloud Dataflow dựa trên một biến thể của Apache Beam, trong khi Apache Beam bao gồm khung Apache Spark được ghi chép đầy đủ, cho phép chúng ta nói về tốc độ thực thi giải pháp gần như giống nhau. Chà, Apache Spark hoạt động tốt trên hệ thống tệp HDFS, cho phép bạn triển khai nó trên các máy chủ Hadoop.

Thêm vào đây khối lượng tài liệu và các giải pháp làm sẵn cho Hadoop và Spark dựa trên Google Cloud Dataflow và việc lựa chọn công cụ trở nên rõ ràng. Hơn nữa, các kỹ sư có thể tự quyết định mã nào - trong Hadoop hoặc Spark - họ sẽ thực thi, tập trung vào nhiệm vụ, kinh nghiệm và trình độ.

Đám mây hoặc máy chủ cục bộ

Xu hướng chuyển đổi chung sang đám mây thậm chí đã tạo ra một thuật ngữ thú vị như Hadoop-as-a-service. Trong trường hợp như vậy, việc quản lý các máy chủ được kết nối trở nên rất quan trọng. Bởi vì, than ôi, mặc dù phổ biến, nhưng Hadoop thuần túy là một công cụ khá khó cấu hình, vì bạn phải thực hiện rất nhiều thao tác thủ công. Ví dụ: bạn có thể định cấu hình các máy chủ riêng lẻ, theo dõi hiệu suất của chúng và tinh chỉnh nhiều tham số. Nói chung, hãy làm việc cho một người nghiệp dư và có khả năng lớn sẽ mắc sai lầm ở đâu đó hoặc bỏ lỡ điều gì đó.

Do đó, các bản phân phối khác nhau đã trở nên rất phổ biến, ban đầu được trang bị các công cụ quản trị và triển khai thuận tiện. Một trong những bản phân phối phổ biến hơn hỗ trợ Spark và giúp mọi thứ trở nên dễ dàng là Cloudera. Nó có cả phiên bản trả phí và miễn phí - và trong phiên bản sau, tất cả các chức năng chính đều có sẵn và không giới hạn số lượng nút.

Cloudera có gì đặc biệt và cách nấu nó

Trong quá trình thiết lập, Cloudera Manager sẽ kết nối qua SSH với máy chủ của bạn. Một điểm thú vị: khi cài đặt, tốt hơn là chỉ định rằng nó được thực hiện bởi cái gọi là bưu kiện: các gói đặc biệt, mỗi gói chứa tất cả các thành phần cần thiết được cấu hình để hoạt động với nhau. Trên thực tế, đây là một phiên bản cải tiến của trình quản lý gói.

Sau khi cài đặt, chúng tôi nhận được một bảng điều khiển quản lý cụm, nơi bạn có thể xem phép đo từ xa cho các cụm, dịch vụ đã cài đặt, ngoài ra bạn có thể thêm / xóa tài nguyên và chỉnh sửa cấu hình cụm.

Cloudera có gì đặc biệt và cách nấu nó

Do đó, việc cắt tên lửa đó xuất hiện trước mặt bạn, điều này sẽ đưa bạn đến tương lai tươi sáng của BigData. Nhưng trước khi chúng ta nói "đi thôi", chúng ta hãy nhanh chóng chuyển tiếp dưới mui xe.

yêu cầu phần cứng

Trên trang web của họ, Cloudera đề cập đến các cấu hình khả thi khác nhau. Các nguyên tắc chung mà chúng được xây dựng được thể hiện trong hình minh họa:

Cloudera có gì đặc biệt và cách nấu nó
MapReduce có thể làm mờ bức tranh lạc quan này. Nhìn lại sơ đồ trong phần trước, rõ ràng là trong hầu hết các trường hợp, công việc MapReduce có thể gặp nút cổ chai khi đọc dữ liệu từ đĩa hoặc mạng. Điều này cũng được lưu ý trên blog Cloudera. Do đó, đối với bất kỳ phép tính nhanh nào, kể cả thông qua Spark, thường được sử dụng để tính toán thời gian thực, tốc độ I/O là rất quan trọng. Do đó, khi sử dụng Hadoop, điều rất quan trọng là các máy cân bằng và nhanh chóng vào cụm, nói một cách nhẹ nhàng, không phải lúc nào cơ sở hạ tầng đám mây cũng được cung cấp.

Cân bằng trong phân phối tải đạt được thông qua việc sử dụng ảo hóa Openstack trên các máy chủ có CPU đa lõi mạnh mẽ. Các nút dữ liệu được phân bổ tài nguyên bộ xử lý của riêng chúng và một số đĩa nhất định. Trong giải pháp của chúng tôi Công cụ hồ dữ liệu Atos Codex ảo hóa rộng rãi đã đạt được, đó là lý do tại sao chúng tôi giành được cả về hiệu suất (tác động của cơ sở hạ tầng mạng được giảm thiểu) và TCO (các máy chủ vật lý bổ sung bị loại bỏ).

Cloudera có gì đặc biệt và cách nấu nó
Trong trường hợp sử dụng máy chủ BullSequana S200, chúng tôi nhận được tải rất đồng đều, không có một số tắc nghẽn. Cấu hình tối thiểu bao gồm 3 máy chủ BullSequana S200, mỗi máy chủ có hai JBOD, cộng với các S200 bổ sung chứa bốn nút dữ liệu được kết nối tùy chọn. Đây là một ví dụ tải trong thử nghiệm TeraGen:

Cloudera có gì đặc biệt và cách nấu nó

Các thử nghiệm với khối lượng dữ liệu và giá trị sao chép khác nhau cho thấy kết quả giống nhau về phân phối tải trên các nút cụm. Dưới đây là biểu đồ phân phối quyền truy cập đĩa bằng các bài kiểm tra hiệu suất.

Cloudera có gì đặc biệt và cách nấu nó

Các tính toán dựa trên cấu hình tối thiểu gồm 3 máy chủ BullSequana S200. Nó bao gồm 9 nút dữ liệu và 3 nút chính, cũng như các máy ảo dành riêng trong trường hợp triển khai bảo vệ dựa trên Ảo hóa OpenStack. Kết quả kiểm tra TeraSort: Kích thước khối 512 MB của hệ số sao chép ba với mã hóa là 23,1 phút.

Làm thế nào hệ thống có thể được mở rộng? Có nhiều loại tiện ích mở rộng khác nhau cho Data Lake Engine:

  • Các nút dữ liệu: cho mỗi 40 TB dung lượng có thể sử dụng
  • Các nút phân tích có khả năng cài đặt GPU
  • Các tùy chọn khác tùy thuộc vào nhu cầu kinh doanh (ví dụ: nếu bạn cần Kafka và những thứ tương tự)

Cloudera có gì đặc biệt và cách nấu nó

Tổ hợp Atos Codex Data Lake Engine bao gồm cả máy chủ và phần mềm được cài đặt sẵn, bao gồm bộ công cụ Cloudera có giấy phép; Bản thân Hadoop, OpenStack với các máy ảo dựa trên nhân RedHat Enterprise Linux, hệ thống sao lưu và sao chép dữ liệu (bao gồm sử dụng nút sao lưu và Cloudera BDR - Sao lưu và Phục hồi sau thảm họa). Atos Codex Data Lake Engine là giải pháp ảo hóa đầu tiên được chứng nhận Cloudera.

Nếu bạn quan tâm đến các chi tiết, chúng tôi sẽ sẵn lòng trả lời các câu hỏi của chúng tôi trong các nhận xét.

Nguồn: www.habr.com

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