Amazon EMR trên Amazon EKS cung cấp tùy chọn triển khai cho Amazon EMR cho phép bạn chạy khối lượng công việc phân tích trên Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS). Đây là một tùy chọn hấp dẫn vì nó cho phép bạn chạy các ứng dụng trên một nhóm tài nguyên chung mà không cần phải cung cấp cơ sở hạ tầng. Ngoài ra, bạn có thể sử dụng Phòng thu âm Amazon EMR để xây dựng mã phân tích chạy trên cụm Amazon EKS. EMR Studio là môi trường phát triển tích hợp (IDE) dựa trên web sử dụng sổ ghi chép Jupyter được quản lý hoàn toàn có thể gắn vào bất kỳ cụm EMR nào, bao gồm EMR trên EKS. Nó sử dụng Đăng nhập một lần AWS (SSO) hoặc nhà cung cấp danh tính tương thích (IdP) để đăng nhập trực tiếp vào EMR Studio thông qua URL an toàn bằng thông tin xác thực của công ty.
Việc triển khai EMR Studio để gắn vào EMR trên EKS yêu cầu tích hợp một số dịch vụ AWS:
Ngoài ra, bạn cần cài đặt EMR sau trên các thành phần EKS:
Bài đăng này giúp bạn xây dựng tất cả các thành phần cần thiết và ghép chúng lại với nhau bằng cách chạy một tập lệnh duy nhất. Chúng tôi cũng mô tả kiến trúc của thiết lập này và cách các thành phần hoạt động cùng nhau.
Tổng quan kiến trúc
Với EMR trên EKS, bạn có thể chạy các ứng dụng Spark cùng với các loại ứng dụng khác trên cùng một cụm Amazon EKS, giúp cải thiện việc phân bổ tài nguyên và đơn giản hóa việc quản lý cơ sở hạ tầng. Để biết thêm thông tin về cách Amazon EMR hoạt động bên trong cụm Amazon EKS, hãy xem Mới - Amazon EMR trên Amazon Elastic Kubernetes Service (EKS). EMR Studio cung cấp IDE dựa trên web giúp dễ dàng phát triển, trực quan hóa và gỡ lỗi các ứng dụng chạy trong EMR. Để biết thêm thông tin, xem Amazon EMR Studio (Bản xem trước): Trải nghiệm IDE mới dành cho máy tính xách tay với Amazon EMR.
Hạt nhân Spark là các nhóm được lên lịch trong một không gian tên trong cụm Amazon EKS. EMR Studio sử dụng Jupyter Enterprise Gateway (JEG) để khởi chạy hạt nhân Spark trên Amazon EKS. Điểm cuối được quản lý thuộc loại JEG được cung cấp dưới dạng triển khai Kubernetes trong không gian tên được liên kết của cụm ảo EMR và được hiển thị dưới dạng dịch vụ Kubernetes. Mỗi cụm ảo EMR ánh xạ tới không gian tên Kubernetes được đăng ký với cụm Amazon EKS; các cụm ảo không quản lý tính toán hoặc lưu trữ vật lý mà trỏ đến không gian tên Kubernetes nơi khối lượng công việc được lên lịch. Mỗi cụm ảo có thể có một số điểm cuối được quản lý, mỗi điểm cuối có hạt nhân được cấu hình riêng cho các trường hợp và nhu cầu sử dụng khác nhau. Điểm cuối do JEG quản lý cung cấp điểm cuối HTTPS, được phục vụ bởi Cân bằng tải ứng dụng (ALB), chỉ có thể truy cập được từ EMR Studio và sổ ghi chép tự lưu trữ được tạo trong mạng con riêng của Amazon EKS VPC.
Sơ đồ sau minh họa kiến trúc giải pháp.
Điểm cuối được quản lý được tạo trong không gian tên Amazon EKS của cụm ảo (trong trường hợp này là sparkns
) và các điểm cuối HTTPS được phục vụ từ các mạng con riêng tư. Nhóm hạt nhân chạy với vai trò IAM thực thi công việc được xác định trong điểm cuối được quản lý. Trong quá trình tạo điểm cuối được quản lý, EMR trên EKS sử dụng Bộ điều khiển cân bằng tải AWS trong kube-system
không gian tên để tạo ALB với nhóm mục tiêu kết nối với điểm cuối được quản lý JEG trong không gian tên Kubernetes của cụm ảo.
Bạn có thể định cấu hình hạt nhân của từng điểm cuối được quản lý theo cách khác nhau. Ví dụ: để cho phép hạt nhân Spark sử dụng Keo AWS làm danh mục của họ, bạn có thể áp dụng tệp JSON cấu hình sau trong —configuration-overrides
gắn cờ khi tạo điểm cuối được quản lý:
Điểm cuối được quản lý là hoạt động triển khai Kubernetes được hỗ trợ bởi một dịch vụ bên trong không gian tên đã định cấu hình (trong trường hợp này là sparkns
). Khi theo dõi thông tin điểm cuối, chúng tôi có thể thấy cách triển khai Jupyter Enterprise Gateway kết nối với ALB và nhóm mục tiêu:
Để xem cách kết nối này, hãy xem xét hai phiên EMR Studio. ALB hiển thị cổng 18888 cho các phiên EMR Studio. Dịch vụ JEG ánh xạ cổng ngoài 18888 trên ALB tới cổng động NodePort
trên dịch vụ JEG (trong trường hợp này là 30091). Dịch vụ JEG chuyển tiếp lưu lượng đến TargetPort
9547, định tuyến lưu lượng truy cập đến nhóm trình điều khiển Spark thích hợp. Mỗi phiên máy tính xách tay có hạt nhân riêng, có trình điều khiển Spark và nhóm thực thi tương ứng, như sơ đồ sau minh họa.
Đính kèm EMR Studio vào cụm ảo và điểm cuối được quản lý
Mỗi khi người dùng đính kèm một cụm ảo và điểm cuối được quản lý vào Studio Workspace của họ và khởi chạy phiên Spark, trình điều khiển Spark và trình thực thi Spark sẽ được lên lịch. Bạn có thể thấy điều đó khi bạn chạy kubectl
để kiểm tra xem nhóm nào đã được khởi chạy:
Mỗi phiên kernel Spark của máy tính xách tay triển khai một nhóm trình điều khiển và nhóm thực thi tiếp tục chạy cho đến khi phiên kernel bị tắt.
Mã trong các ô sổ ghi chép chạy trong nhóm thực thi đã được triển khai trong cụm Amazon EKS.
Thiết lập EMR trên EKS và EMR Studio
Cần có một số bước và phần để thiết lập cả EMR trên EKS và EMR Studio. Kích hoạt AWS SSO là điều kiện tiên quyết. Bạn có thể sử dụng hai tập lệnh khởi chạy được cung cấp trong phần này hoặc triển khai thủ công bằng các bước được cung cấp sau trong bài đăng này.
Chúng tôi cung cấp hai tập lệnh khởi chạy trong bài đăng này. Một là tập lệnh bash sử dụng Hình thành đám mây AWS, eksctl, và Giao diện dòng lệnh AWS (AWS CLI) để cung cấp khả năng triển khai toàn diện một giải pháp hoàn chỉnh. Người kia sử dụng Bộ công cụ phát triển đám mây AWS (AWS CDK) để làm như vậy.
Sơ đồ sau đây thể hiện kiến trúc và các thành phần mà chúng tôi triển khai.
Điều kiện tiên quyết
Đảm bảo hoàn thành các điều kiện tiên quyết sau:
Để biết thông tin về IdP được hỗ trợ, hãy xem Kích hoạt đăng nhập một lần AWS cho Amazon EMR Studio.
Tập lệnh bash
Kịch bản có sẵn trên GitHub.
Điều kiện tiên quyết
Kịch bản yêu cầu bạn sử dụng Đám mây AWS9. Thực hiện theo các hướng dẫn trong Hội thảo Amazon EKS. Hãy đảm bảo làm theo các hướng dẫn sau một cách cẩn thận:
Sau khi bạn triển khai máy tính để bàn AWS Cloud9, hãy chuyển sang các bước tiếp theo.
Chuẩn bị
Sử dụng mã sau để sao chép kho lưu trữ GitHub và chuẩn bị các điều kiện tiên quyết cho AWS Cloud9:
Triển khai ngăn xếp
Trước khi chạy tập lệnh, hãy cung cấp thông tin sau:
- ID và Khu vực tài khoản AWS, nếu máy tính để bàn AWS Cloud9 của bạn không nằm trong cùng ID tài khoản hoặc Khu vực nơi bạn muốn triển khai EMR trên EKS
- Tên của Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) để tạo
- Người dùng AWS SSO được liên kết với phiên EMR Studio
Sau khi tập lệnh triển khai ngăn xếp, URL tới EMR Studio đã triển khai sẽ hiển thị:
Tập lệnh AWS CDK
Các tập lệnh AWS CDK có sẵn trên GitHub. Bạn cần kiểm tra main
chi nhánh. Các ngăn xếp triển khai cụm Amazon EKS và EMR trên cụm ảo EKS trong VPC mới với các mạng con riêng tư và tùy chọn một Luồng khí Apache do Amazon quản lý (Amazon MWAA) và EMR Studio.
Điều kiện tiên quyết
Bạn cần AWS CDK phiên bản 1.90.1 trở lên. Để biết thêm thông tin, xem Bắt đầu với AWS CDK.
Chúng tôi sử dụng danh sách tiền tố để hạn chế quyền truy cập vào một số tài nguyên đối với các dải IP mạng mà bạn chấp thuận. Tạo một danh sách tiền tố nếu bạn chưa có.
Nếu bạn dự định sử dụng EMR Studio, bạn cần có AWS SSO được định cấu hình trong tài khoản của bạn.
Chuẩn bị
Sau khi bạn sao chép kho lưu trữ và kiểm tra main
nhánh, tạo và kích hoạt môi trường ảo Python mới:
Bây giờ cài đặt các phụ thuộc Python:
Cuối cùng, khởi động AWS CDK:
Triển khai các ngăn xếp
Tổng hợp các ngăn xếp CDK AWS bằng mã sau:
Lệnh này tạo ra bốn ngăn xếp:
- emr-eks-cdk – Ngăn xếp chính
- mwaa-cdk – Thêm Amazon MWAA
- studio-cdk – Thêm các điều kiện tiên quyết của EMR Studio
- studio-cdk-live – Thêm EMR Studio
Sơ đồ sau đây minh họa các tài nguyên được triển khai bởi ngăn xếp AWS CDK.
Bắt đầu bằng cách triển khai ngăn xếp đầu tiên:
Nếu bạn muốn sử dụng Apache Airflow làm người điều phối, hãy triển khai ngăn xếp đó:
Triển khai ngăn xếp EMR Studio đầu tiên:
Đợi điểm cuối được quản lý hoạt động. Bạn có thể kiểm tra trạng thái bằng cách chạy đoạn mã sau:
ID cụm ảo có sẵn trong đầu ra AWS CDK từ ngăn xếp emr-eks-cdk.
Khi điểm cuối hoạt động, hãy triển khai ngăn xếp EMR Studio thứ hai:
Triển khai thủ công
Nếu bạn muốn triển khai EMR theo cách thủ công trên EKS và EMR Studio, hãy sử dụng các bước trong phần này.
Thiết lập VPC
Nếu bạn đang sử dụng Amazon EKS v. 1.18, hãy thiết lập VPC cũng có mạng con riêng tư và được gắn thẻ thích hợp cho bộ cân bằng tải bên ngoài. Để gắn thẻ, hãy xem: Cân bằng tải ứng dụng trên Amazon EKS và Tạo vai trò dịch vụ EMR Studio.
Tạo cụm Amazon EKS
Khởi chạy cụm Amazon EKS có ít nhất một nhóm nút được quản lý. Để biết hướng dẫn, xem Thiết lập và Bắt đầu với Amazon EKS.
Tạo các chính sách, vai trò, IdP và chứng chỉ SSL/TLS có liên quan của IAM
Để tạo chính sách, vai trò IAM, IdP và chứng chỉ SSL/TLS, hãy hoàn thành các bước sau:
- Cho phép truy cập cụm cho EMR trên EKS.
- Tạo IdP trong IAM dựa trên URL nhà cung cấp EKS OIDC.
- Tạo chứng chỉ SSL/TLS và đặt nó vào Trình quản lý chứng chỉ AWS.
- Tạo các chính sách và vai trò IAM có liên quan:
- Vai trò thực hiện công việc
- Cập nhật chính sách tin cậy cho vai trò thực hiện công việc
- Triển khai và tạo chính sách IAM cho Bộ điều khiển cân bằng tải AWS
- Vai trò dịch vụ của EMR Studio
- Vai trò người dùng EMR Studio
- Chính sách người dùng EMR Studio được liên kết với người dùng và nhóm AWS SSO
- Đăng ký cụm Amazon EKS với Amazon EMR để tạo cụm EMR ảo
- Tạo thích hợp nhóm an ninh được đính kèm với mỗi EMR Studio được tạo:
- Nhóm bảo mật không gian làm việc
- Nhóm bảo mật động cơ
- Gắn thẻ các nhóm bảo mật bằng các thẻ thích hợp. Để biết hướng dẫn, xem Tạo vai trò dịch vụ EMR Studio.
Số lượt cài đặt bắt buộc trong Amazon EKS
Triển khai Bộ điều khiển cân bằng tải AWS trong cụm Amazon EKS nếu bạn chưa làm như vậy.
Tạo EMR trên các phần có liên quan đến EKS và ánh xạ người dùng tới EMR Studio
Hoàn thành các bước sau:
- Tạo ít nhất một cụm ảo EMR được liên kết với cụm Amazon EKS. Để biết hướng dẫn, hãy xem Bước 1 của Thiết lập Amazon EMR trên EKS cho EMR Studio.
- Tạo ít nhất một điểm cuối được quản lý. Để biết hướng dẫn, hãy xem Bước 2 của Thiết lập Amazon EMR trên EKS cho EMR Studio.
- Tạo ít nhất một EMR Studio; liên kết EMR Studio với các mạng con riêng được định cấu hình với cụm Amazon EKS. Để biết hướng dẫn, xem Tạo Studio EMR.
- Khi EMR Studio có sẵn, ánh xạ người dùng hoặc nhóm AWS SSO tới EMR Studio và áp dụng chính sách IAM thích hợp cho người dùng đó.
Sử dụng EMR Studio
Để bắt đầu sử dụng EMR Studio, hãy hoàn thành các bước sau:
- Tìm URL cho EMR Studio của các studio trong Khu vực:
- Với URL được liệt kê, hãy đăng nhập bằng tên người dùng AWS SSO mà bạn đã sử dụng trước đó.
Sau khi xác thực, người dùng được chuyển đến bảng điều khiển EMR Studio.
- Chọn Tạo không gian làm việc.
- Trong Tên không gian làm việc, nhập tên.
- Trong Mạng con, chọn mạng con tương ứng với một trong các mạng con được liên kết với nhóm nút được quản lý.
- Trong Vị trí S3, hãy nhập vùng lưu trữ S3 nơi bạn có thể lưu trữ nội dung sổ ghi chép.
- Sau khi bạn tạo Không gian làm việc, hãy chọn một không gian làm việc trong
Ready
trạng thái.
- Trong thanh bên, chọn biểu tượng cụm EMR.
- Theo Loại cụmchọn Cụm EMR trên EKS.
- Chọn cụm ảo có sẵn và điểm cuối được quản lý có sẵn.
- Chọn Đính kèm.
Sau khi được đính kèm, EMR Studio hiển thị các kernel có sẵn trong Sổ tay và An ủi phần.
- Chọn PySpark (Kubernetes) để khởi chạy hạt nhân máy tính xách tay và bắt đầu phiên Spark.
Vì cấu hình điểm cuối ở đây sử dụng AWS Glue cho kho dữ liệu di động nên bạn có thể liệt kê các cơ sở dữ liệu và bảng được kết nối với Danh mục dữ liệu AWS Glue. Bạn có thể sử dụng tập lệnh mẫu sau để kiểm tra thiết lập. Sửa đổi tập lệnh nếu cần cho cơ sở dữ liệu và bảng thích hợp mà bạn có trong Danh mục dữ liệu của mình:
Làm sạch
Để tránh phát sinh phí trong tương lai, hãy xóa các tài nguyên được khởi chạy tại đây bằng cách chạy Remove_setup.sh:
Kết luận
EMR trên EKS cho phép bạn chạy các ứng dụng trên nhóm tài nguyên chung bên trong cụm Amazon EKS mà không cần phải cung cấp cơ sở hạ tầng. EMR Studio là sổ ghi chép và công cụ Jupyter được quản lý hoàn toàn, cung cấp các hạt nhân chạy trên cụm EMR, bao gồm cả cụm ảo trên Amazon EKS. Trong bài đăng này, chúng tôi đã mô tả kiến trúc về cách EMR Studio kết nối với EMR trên EKS và cung cấp các tập lệnh để tự động triển khai tất cả các thành phần nhằm kết nối hai dịch vụ.
Nếu bạn có câu hỏi hoặc gợi ý, xin vui lòng để lại nhận xét.
Về các tác giả
Randy DeFauw là Kiến trúc sư giải pháp chính tại Amazon Web Services. Anh làm việc với khách hàng của AWS để cung cấp hướng dẫn và hỗ trợ kỹ thuật cho các dự án cơ sở dữ liệu, giúp họ nâng cao giá trị của các giải pháp khi sử dụng AWS.
Matthew Tân là Kiến trúc sư giải pháp phân tích cấp cao tại Amazon Web Services và cung cấp hướng dẫn cho khách hàng phát triển giải pháp với dịch vụ AWS Analytics trên khối lượng công việc phân tích của họ.
- '
- "
- 100
- 7
- 9
- truy cập
- Tài khoản
- hoạt động
- Tất cả
- phân bổ
- đàn bà gan dạ
- Amazon Web Services
- phân tích
- Apache
- Các Ứng Dụng
- các ứng dụng
- kiến trúc
- Xác thực
- AWS
- cân bằng
- xây dựng
- trường hợp
- Giấy chứng nhận
- tải
- Kiểm tra
- phân loại
- đám mây
- mã
- Chung
- Tính
- nội dung
- tiếp tục
- điều khiển
- Tạo
- Credentials
- khách hàng
- bảng điều khiển
- dữ liệu
- Cơ sở dữ liệu
- cơ sở dữ liệu
- phát triển
- Phát triển
- trình điều khiển
- Điểm cuối
- Doanh nghiệp
- Môi trường
- thực hiện
- kinh nghiệm
- nhà máy
- Tên
- theo
- Mặt trận
- tương lai
- đi
- GitHub
- Nhóm
- Hadoop
- tại đây
- Tổ ong
- Độ đáng tin của
- HTTPS
- IAM
- ICON
- Bản sắc
- Bao gồm
- thông tin
- Cơ sở hạ tầng
- IP
- IT
- Việc làm
- Máy tính xách tay Jupyter
- Kubernetes
- phóng
- ra mắt
- Dòng
- Danh sách
- tải
- quản lý
- bản đồ
- Maps
- mạng
- máy tính xách tay
- Tùy chọn
- Nền tảng khác
- vật lý
- vỏ quả
- Chính sách
- điều luật
- hồ bơi
- Xem trước
- Hiệu trưởng
- riêng
- dự án
- Python
- Yêu cầu
- tài nguyên
- Thông tin
- chạy
- chạy
- an ninh
- DỊCH VỤ
- định
- Đơn giản
- So
- Giải pháp
- SQL
- Bắt đầu
- bắt đầu
- Tiểu bang
- Trạng thái
- là gắn
- hàng
- Hỗ trợ
- Mục tiêu
- Kỹ thuật
- thử nghiệm
- thời gian
- giao thông
- NIỀM TIN
- Người sử dụng
- giá trị
- ảo
- web
- các dịch vụ web
- ở trong
- từ
- Công việc
- công trinh