Một vài lý do nên triển khai Apache Spark trên Kubernetes

Lý do nên triển khai Apache Spark trên Kubernetes - Ảnh 3

Thuật ngữ Apache Spark đã không còn quá xa lạ gì với những người trong giới Big Data và Data Engineering. Và Kubernetes cũng vậy. Mức độ phổ biến của nó cũng không hề kém phần khi mà ngày càng nhiều doanh nghiệp tiến hành triển khai Apache Spark trên Kubernetes – hệ thống quản lý triển khai và scaling ứng dụng. 

Vậy lý do tại sao mà hầu hết các doanh nghiệp đều được khuyến khích nên triển khai Apache Spark trên hệ thống này? Mọi lời giải đáp Bizfly Cloud sẽ được chia sẻ trong bài viết dưới đây.

Lý do nên triển khai Apache Spark trên Kubernetes - Ảnh 1

Kubernetes là native option của Spark 

Kể từ Version 2.3, Kubernetes đã chính thức thay thế cho Apache Mesos và Hadoop Yarn để trở thành native option của Apache Spark. Và Apache Spark sẽ tạo ra một Spark driver tương ứng với một Kubernetes pod. Mỗi driver được thiết lập sẽ tạo ra các Executors. 

Mỗi Executors được thiết lập ra này sẽ có chức năng tương tự như một Kubernetes pods với khả năng kết nối với các pods khác và tiến hành thực thi code ứng dụng. Sau khi thực thi ứng dụng hoàn tất, các Executors này sẽ ngừng hoạt động. Tuy nhiên, các pods sẽ được chuyển sang trạng thái completed để giữ lại các logs cho đến khi manually cleaned up hoặc garbage collected xóa nó.

Tham khảo thêm: BizFly Cloud chính thức ra mắt Kubernetes Engine từ 17/08/2020

Tận dụng được sức mạnh của công nghệ container 

Khi tiến hành triển khai Apache Spark trên Kubernetes dưới dạng các pods Container, các doanh nghiệp có thể dễ dàng tận dụng được một cách triệt để nhất những ưu điểm của công nghệ Container này. Khi các ứng dụng Spark được tiến hành đóng gói, dependencies và package sẽ được đưa vào cùng một Container duy nhất để tránh được khả năng xung đột với các ứng dụng hoặc các phiên bản thư viện Hadoop khác. 

Bên cạnh đó, bạn cũng có thể sử dụng các image tags để thực hiện việc kiểm soát phiên bản đồng thời dễ dàng sử dụng được nhiều phiên bản Apache Spark khác nhau trên cùng một cluster mà không cần phải quá lo lắng về khả năng xảy ra xung đột giữa các phiên bản Spark này.

Lý do nên triển khai Apache Spark trên Kubernetes - Ảnh 2

Spark có thể tận dụng monitoring và logging của Kubernetes

 

Công nghệ Kubernetes thực sự là nền tảng điều phối Container mã nguồn mở rất mạnh trong việc monitoring (ghi lại nhật ký) và logging (giám sát) các pod, node và service. Vì vậy, Apache Spark của bạn hoàn toàn có thể tận dụng được monitoring và logging của Kubernetes một cách dễ dàng và nhanh chóng. Bằng cách thêm một sidecar container hoặc một pod logging agent để tiến hành export, bạn có thể dễ dàng xuất các metrics hoặc các logs sang một hệ thống khác như Statd, Prometheus, Stackdriver, Elasticsearch hoặc Graylog,…

Dễ dàng phân chia giới hạn tài nguyên cho nhiều team

Triển khai Apache Spark trên Kubernetes giúp các doanh nghiệp có thể dễ dàng quản lý resources đồng thời phân chia giới hạn tài nguyên cho các team. Bên cạnh đó, bạn cũng có thể kiểm soát được các môi trường vận hành Spark dựa trên mục đích sử dụng bằng Kubernetes node selectors. Và Kubernetes service account được sử dụng để quản lý các permission Role và Cluster Role đồng thời xác định loại cluster sử dụng phù hợp cho từng team thông qua resource quotas và Kubernetes namespace

Lý do nên triển khai Apache Spark trên Kubernetes - Ảnh 3

Mặc dù tồn tại nhiều điểm mạnh. nhưng Kubernetes vẫn nên được cải thiện một cách thường xuyên để đảm bảo bắt kịp được xu hướng phát triển của công nghệ. Hy vọng, bài viết mà Bizfly Cloud chia sẻ ở trên đã giúp bạn có thể nắm rõ được các lý do nên thực hiện việc triển khai Apache Spark trên Kubernetes để có thể nhanh chóng đưa ra quyết định có nên sử dụng nó hay là không. 

Nếu bạn có thêm ý kiến hoặc những thắc mắc nào có liên quan đến bài viết này, bạn có thể liên hệ trực tiếp với Bizfly Cloud hoặc để lại phần câu hỏi của mình dưới mục bình luận để nhanh chóng nhận được lời giải đáp nhé!

BizFly Cloud – Cung cấp dịch vụ điện toán đám mây tốt nhất tại Việt Nam

Vận hành bởi VCcorp

Địa chỉ: Số 1 Nguyễn Huy Tưởng, P. Thanh Xuân Trung, Q. Thanh Xuân, TP Hà Nội.

Google map: https://goo.gl/maps/CUqazfqqgd5w4HSh6