Amazon EMR trên EKS là một tùy chọn triển khai trong Amazon EMR cho phép bạn chạy các công việc Spark trên Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS). Đám mây điện toán đàn hồi Amazon (Amazon EC2) Phiên bản Spot giúp bạn tiết kiệm tới 90% so với Phiên bản theo yêu cầu và là một cách tuyệt vời để tối ưu hóa chi phí cho khối lượng công việc Spark chạy trên Amazon EMR trên EKS. Vì Spot là một dịch vụ có thể bị gián đoạn nên nếu chúng tôi có thể di chuyển hoặc sử dụng lại các tệp xáo trộn trung gian, điều đó sẽ cải thiện độ ổn định tổng thể và SLA của công việc. Các phiên bản mới nhất của Amazon EMR trên EKS đã tích hợp các tính năng Spark để kích hoạt khả năng này.
Trong bài đăng này, chúng ta thảo luận về các tính năng này—Tái sử dụng nút Ngừng hoạt động và Yêu cầu khối lượng liên tục (PVC)—và tác động của chúng đối với việc tăng khả năng chịu lỗi của các công việc Spark trên Amazon EMR trên EKS khi tối ưu hóa chi phí bằng Phiên bản dùng ngay EC2.
Amazon EMR trên EKS và Spot
Phiên bản dùng ngay EC2 là dung lượng EC2 dự phòng được cung cấp với mức chiết khấu cao lên tới 90% so với giá Theo nhu cầu. Phiên bản Spot là lựa chọn tuyệt vời cho khối lượng công việc linh hoạt và phi trạng thái. Cảnh báo trước về mức chiết khấu và dung lượng dự phòng này là Amazon EC2 có thể làm gián đoạn một phiên bản bằng cảnh báo chủ động hoặc phản ứng (2 phút) khi phiên bản đó cần dung lượng trở lại. Bạn có thể cung cấp năng lực điện toán trong cụm EKS bằng Phiên bản Spot sử dụng nhóm nút được quản lý hoặc tự quản lý và cung cấp khả năng tối ưu hóa chi phí cho khối lượng công việc của bạn.
Amazon EMR trên EKS sử dụng Amazon EKS để chạy các công việc với Thời gian chạy EMR cho Apache Spark, có thể được tối ưu hóa chi phí bằng cách chạy Người thi hành Spark tại chỗ. Nó cung cấp đến Chi phí thấp hơn 61% và cải thiện hiệu suất lên đến 68% đối với khối lượng công việc Spark trên Amazon EKS. Ứng dụng Spark khởi chạy trình điều khiển và bộ thực thi để chạy tính toán. Spark là một khuôn khổ chịu lỗi bán kiên cường để mất người thi hành do bị gián đoạn và do đó có thể chạy trên EC2 Spot. Mặt khác, khi trình điều khiển bị gián đoạn, công việc không thành công. Do đó, chúng tôi khuyên bạn nên chạy trình điều khiển trên các phiên bản theo yêu cầu. một số thực hành tốt nhất để chạy Spark trên Amazon EKS có thể áp dụng với Amazon EMR trên EKS.
Các phiên bản EC2 Spot cũng giúp tối ưu hóa chi phí bằng cách cải thiện thông lượng tổng thể của công việc. Điều này có thể đạt được bằng cách tự động thay đổi quy mô cụm bằng cách sử dụng Bộ tự động chia tỷ lệ cụm (đối với nhóm nút được quản lý) hoặc thợ mộc.
Mặc dù trình thực thi Spark có khả năng phục hồi khi bị gián đoạn Spot, nhưng các tệp xáo trộn và dữ liệu RDD sẽ bị mất khi trình thực thi bị giết. Các tệp xáo trộn bị mất cần được tính toán lại, điều này làm tăng thời gian chạy tổng thể của công việc. Apache Spark đã phát hành hai tính năng (trong phiên bản 3.1 và 3.2) giải quyết vấn đề này. Amazon EMR trên EKS đã phát hành các tính năng như ngừng hoạt động nút (phiên bản 6.3) và tái sử dụng PVC (phiên bản 6.8) để đơn giản hóa việc khôi phục và tái sử dụng các tệp xáo trộn, giúp tăng khả năng phục hồi tổng thể cho ứng dụng của bạn.
ngừng hoạt động nút
Tính năng ngừng hoạt động của nút hoạt động bằng cách ngăn việc lập lịch trình cho các công việc mới trên các nút sắp ngừng hoạt động. Nó cũng di chuyển bất kỳ tệp xáo trộn hoặc bộ đệm nào có trong các nút đó sang các bộ thực thi khác (ngang hàng). Nếu không có bộ thực thi khả dụng nào khác, các tệp xáo trộn và bộ nhớ đệm sẽ được chuyển đến bộ lưu trữ dự phòng từ xa.
Hãy xem xét các bước ngừng hoạt động chi tiết hơn.
Nếu một trong các nút đang chạy bộ thực thi bị gián đoạn, bộ thực thi sẽ bắt đầu quá trình ngừng hoạt động và gửi thông báo tới trình điều khiển:
Người thi hành tìm kiếm các tệp RDD hoặc xáo trộn và cố gắng sao chép hoặc di chuyển các tệp đó. Đầu tiên, nó cố gắng tìm một người thực thi ngang hàng. Nếu thành công, nó sẽ chuyển các tệp sang trình thực thi ngang hàng:
Tuy nhiên, nếu không thể tìm thấy trình thực thi ngang hàng, nó sẽ cố gắng di chuyển các tệp sang bộ lưu trữ dự phòng nếu có.
Người thi hành sau đó ngừng hoạt động. Khi một trình thực thi mới xuất hiện, các tệp xáo trộn được sử dụng lại:
Ưu điểm chính của quy trình này là nó cho phép di chuyển các khối và xáo trộn dữ liệu, do đó giảm tính toán lại, điều này làm tăng thêm khả năng phục hồi tổng thể của hệ thống và giảm thời gian chạy. Quá trình này có thể được kích hoạt bởi một tín hiệu gián đoạn Spot (Sigterm) và rút cạn nút. Việc thoát nút có thể xảy ra do lập lịch tác vụ ưu tiên cao hoặc độc lập.
Khi bạn sử dụng Amazon EMR trên EKS với nút được quản lý groups/Karpenter
, quá trình xử lý gián đoạn Spot được tự động hóa, trong đó Amazon EKS rút cạn và cân bằng lại các nút Spot một cách nhẹ nhàng để giảm thiểu tình trạng gián đoạn ứng dụng khi một nút Spot có nguy cơ bị gián đoạn cao. Nếu bạn đang sử dụng nút được quản lý groups/Karpenter
, quá trình ngừng hoạt động được kích hoạt khi các nút đang cạn kiệt và vì tính năng này chủ động nên sẽ cho bạn thêm thời gian (ít nhất 2 phút) để di chuyển các tệp. Trong trường hợp các nhóm nút tự quản lý, chúng tôi khuyên bạn nên cài đặt AWS Node Termination Handler để xử lý tình trạng gián đoạn và quá trình ngừng hoạt động được kích hoạt khi nhận được thông báo phản hồi (2 phút). Chúng tôi khuyên bạn nên sử dụng Karpenter với Phiên bản dùng ngay vì nó có lịch trình nút nhanh hơn với liên kết nhóm sớm và đóng gói theo nhóm để tối ưu hóa việc sử dụng tài nguyên.
Đoạn mã sau kích hoạt cấu hình này; thêm chi tiết có sẵn trên GitHub:
Tái sử dụng PVC
Apache Spark đã bật PVC động trong phiên bản 3.1, điều này rất hữu ích với phân bổ động vì chúng tôi không phải tạo trước các xác nhận quyền sở hữu hoặc khối lượng cho người thực thi và xóa chúng sau khi hoàn thành. PVC cho phép tách dữ liệu thực sự và xử lý khi chúng tôi đang chạy các công việc Spark trên Kubernetes, bởi vì chúng tôi có thể sử dụng nó làm bộ lưu trữ cục bộ để truyền các tệp đang xử lý. Phiên bản mới nhất của Amazon EMR 6.8 đã tích hợp tính năng tái sử dụng PVC của Spark, trong đó nếu một bộ thực thi bị chấm dứt do gián đoạn EC2 Spot hoặc bất kỳ lý do nào khác (JVM), thì PVC sẽ không bị xóa mà được duy trì và gắn lại với một bộ thực thi khác. Nếu có các tệp xáo trộn trong ổ đĩa đó, thì chúng sẽ được sử dụng lại.
Như với việc ngừng hoạt động của nút, điều này làm giảm thời gian chạy tổng thể vì chúng tôi không phải tính toán lại các tệp xáo trộn. Chúng tôi cũng tiết kiệm thời gian cần thiết để yêu cầu một tập đĩa mới cho người thực thi và các tệp xáo trộn có thể được sử dụng lại mà không cần di chuyển các tệp.
Sơ đồ sau minh họa quy trình làm việc này.
Hãy xem xét các bước chi tiết hơn.
Nếu một hoặc nhiều nút đang chạy bộ thực thi bị gián đoạn, các nhóm bên dưới sẽ bị chấm dứt và trình điều khiển sẽ nhận được bản cập nhật. Lưu ý rằng trình điều khiển là chủ sở hữu của PVC của những người thi hành và họ không bị chấm dứt. Xem đoạn mã sau:
ExecutorPodsAllocator cố gắng phân bổ các nhóm thực thi mới để thay thế các nhóm bị chấm dứt do gián đoạn. Trong quá trình phân bổ, nó chỉ ra có bao nhiêu PVC hiện có có tệp và có thể được sử dụng lại:
ExecutorPodsAllocator yêu cầu một nhóm và khi khởi chạy nhóm đó, PVC sẽ được sử dụng lại. Trong ví dụ sau, PVC từ bộ thực thi 6 được sử dụng lại cho nhóm thực thi mới 11:
Các tệp xáo trộn, nếu có trong PVC sẽ được sử dụng lại.
Ưu điểm chính của kỹ thuật này là nó cho phép chúng tôi sử dụng lại các tệp xáo trộn được tính toán trước ở vị trí ban đầu của chúng, do đó giảm thời gian thực hiện công việc tổng thể.
Điều này hoạt động cho cả PVC tĩnh và động. Amazon EKS Cung cấp ba dịch vụ lưu trữ khác nhau, cũng có thể được mã hóa: Cửa hàng đàn hồi Amazon (Amazon EBS), Hệ thống tệp đàn hồi Amazon (Amazon EFS) và Amazon FSx cho ánh. Chúng tôi khuyên bạn nên sử dụng PVC động với Amazon EBS vì với PVC tĩnh, bạn sẽ cần tạo nhiều PVC.
Đoạn mã sau kích hoạt cấu hình này; thêm chi tiết có sẵn trên GitHub:
Để điều này hoạt động, chúng tôi cần kích hoạt PVC với Amazon EKS và đề cập đến các chi tiết trong cấu hình thời gian chạy Spark. Để biết hướng dẫn, hãy tham khảo Làm cách nào để sử dụng lưu trữ liên tục trong Amazon EKS? Đoạn mã sau chứa chi tiết cấu hình Spark để sử dụng PVC làm bộ nhớ cục bộ; các chi tiết khác có sẵn trên GitHub:
Kết luận
Với Amazon EMR trên EKS (6.9) và các tính năng được thảo luận trong bài đăng này, bạn có thể giảm thêm thời gian chạy tổng thể cho các công việc Spark khi chạy với Phiên bản Spot. Điều này cũng cải thiện khả năng phục hồi tổng thể và tính linh hoạt của công việc trong khi tối ưu hóa chi phí cho khối lượng công việc trên EC2 Spot.
Hãy thử EMR trên hội thảo EKS để cải thiện hiệu suất khi chạy khối lượng công việc Spark trên Kubernetes và tối ưu hóa chi phí bằng cách sử dụng Phiên bản dùng ngay EC2.
Lưu ý
Kinnar Kumar Sen là Kiến trúc sư giải pháp cấp cao tại Amazon Web Services (AWS) tập trung vào Điện toán linh hoạt. Là thành viên của nhóm Điện toán linh hoạt EC2, anh ấy làm việc với khách hàng để hướng dẫn họ các tùy chọn điện toán linh hoạt và hiệu quả nhất, phù hợp với khối lượng công việc chạy trên AWS của họ. Kinnar có hơn 15 năm kinh nghiệm làm việc trong ngành về nghiên cứu, tư vấn, kỹ thuật và kiến trúc.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/big-data/run-fault-tolerant-and-cost-optimized-spark-clusters-using-amazon-emr-on-eks-and-amazon-ec2-spot-instances/
- 1
- 10
- 100
- 11
- 15 năm
- 7
- 9
- a
- Có khả năng
- đạt được
- Hoạt động
- thêm
- địa chỉ
- Thêm
- Lợi thế
- Sau
- phân bổ
- cho phép
- đàn bà gan dạ
- Amazon EC2
- Amazon EMR
- Amazon Web Services
- Amazon Web Services (AWS)
- và
- Một
- Apache
- áp dụng
- Các Ứng Dụng
- kiến trúc
- Tự động
- có sẵn
- AWS
- trở lại
- bởi vì
- được
- Chặn
- Khối
- bộ nhớ cache
- Sức chứa
- trường hợp
- sự lựa chọn
- xin
- tuyên bố
- cụm
- mã
- hoàn thành
- tính toán
- Tính
- Cấu hình
- tư vấn
- chứa
- Phí Tổn
- Chi phí
- tạo
- khách hàng
- dữ liệu
- triển khai
- chi tiết
- chi tiết
- khác nhau
- Giảm giá
- thảo luận
- thảo luận
- Gián đoạn
- dont
- thoát nước
- trình điều khiển
- trình điều khiển
- suốt trong
- năng động
- Đầu
- hiệu quả
- cao
- cho phép
- cho phép
- mã hóa
- Kỹ Sư
- Ether (ETH)
- ví dụ
- hiện tại
- Ra
- kinh nghiệm
- không
- nhanh hơn
- Đặc tính
- Tính năng
- Số liệu
- Tập tin
- Các tập tin
- Tìm kiếm
- Tên
- Linh hoạt
- linh hoạt
- tập trung
- tiếp theo
- tìm thấy
- Khung
- từ
- FS
- xa hơn
- được
- nhận được
- gif
- GitHub
- cho
- tuyệt vời
- Nhóm
- Các nhóm
- hướng dẫn
- xử lý
- Xử lý
- xảy ra
- giúp
- Độ đáng tin của
- HTML
- HTTPS
- Va chạm
- cải thiện
- cải thiện
- in
- Tăng
- tăng
- độc lập
- chỉ số
- ngành công nghiệp
- Thông tin
- Cài đặt
- ví dụ
- hướng dẫn
- tích hợp
- bị gián đoạn
- vấn đề
- IT
- Việc làm
- việc làm
- Key
- mới nhất
- ra mắt
- niveaux
- địa phương
- địa điểm thư viện nào
- log4j
- Xem
- tìm kiếm
- NHÌN
- quản lý
- giám đốc
- nhiều
- bản đồ
- dấu
- tin nhắn
- Metrics
- di chuyển
- phút
- sửa đổi
- chi tiết
- hầu hết
- Gắn kết
- di chuyển
- di chuyển
- di chuyển
- nhiều
- tên
- Được đặt theo tên
- Cần
- nhu cầu
- Mới
- nút
- các nút
- thông báo
- Cung cấp
- ONE
- tối ưu hóa
- Tối ưu hóa
- tối ưu hóa
- tối ưu hóa
- Tùy chọn
- Các lựa chọn
- nguyên
- Nền tảng khác
- tổng thể
- chủ sở hữu
- một phần
- con đường
- lê
- hiệu suất
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- Bài đăng
- trình bày
- ngăn chặn
- Giá
- Chủ động
- quá trình
- xử lý
- tài sản
- cho
- cung cấp
- cung cấp
- cung cấp
- lý do
- nhận
- giới thiệu
- Phục hồi
- phục hồi
- giảm
- làm giảm
- giảm
- phát hành
- xa
- thay thế
- yêu cầu
- yêu cầu
- cần phải
- nghiên cứu
- đàn hồi
- tài nguyên
- có thể tái sử dụng
- Nguy cơ
- tròn
- chạy
- chạy
- Lưu
- dịch vụ
- DỊCH VỤ
- Shuffle
- tắt máy
- Tín hiệu
- đơn giản hóa
- Giải pháp
- một số
- Spark
- Spot
- Tính ổn định
- Bắt đầu
- bắt đầu
- Các bước
- là gắn
- thành công
- như vậy
- phù hợp
- Hỗ trợ
- hệ thống
- Nhiệm vụ
- nhóm
- Sản phẩm
- cung cấp their dịch
- bằng cách ấy
- vì thế
- số ba
- thông lượng
- thời gian
- đến
- khoan dung
- quá
- được kích hoạt
- đúng
- cơ bản
- Cập nhật
- cập nhật
- us
- sử dụng
- phiên bản
- khối lượng
- khối lượng
- cảnh báo
- web
- các dịch vụ web
- cái nào
- trong khi
- sẽ
- không có
- Công việc
- đang làm việc
- công trinh
- sẽ
- XML
- năm
- trên màn hình
- zephyrnet