Kết nối Amazon EMR và RStudio trên Amazon SageMaker

Kết nối Amazon EMR và RStudio trên Amazon SageMaker

RStudio trên Amazon SageMaker là môi trường phát triển tích hợp (IDE) RStudio Workbench được quản lý hoàn toàn đầu tiên trong ngành trên đám mây. Bạn có thể nhanh chóng khởi chạy RStudio IDE quen thuộc và quay số lên và xuống các tài nguyên điện toán cơ bản mà không làm gián đoạn công việc của mình, giúp dễ dàng xây dựng các giải pháp phân tích và máy học (ML) trong R trên quy mô lớn.

Cùng với các công cụ như RStudio trên SageMaker, người dùng đang phân tích, chuyển đổi và chuẩn bị một lượng lớn dữ liệu như một phần của quy trình làm việc ML và khoa học dữ liệu. Các nhà khoa học dữ liệu và kỹ sư dữ liệu sử dụng Apache Spark, Hive và Presto chạy trên Amazon EMR để xử lý dữ liệu quy mô lớn. Khi sử dụng RStudio trên SageMaker và Amazon EMR cùng nhau, bạn có thể tiếp tục sử dụng RStudio IDE để phân tích và phát triển, đồng thời sử dụng các cụm được quản lý của Amazon EMR để xử lý dữ liệu lớn hơn.

Trong bài đăng này, chúng tôi trình bày cách bạn có thể kết nối RStudio của mình trên miền SageMaker với cụm EMR.

Tổng quan về giải pháp

Chúng tôi sử dụng một Apache Livy kết nối để gửi một tia lửa điện công việc từ RStudio trên SageMaker sang cụm EMR. Điều này được thể hiện trong sơ đồ sau.

Phạm vi giải pháp
Tất cả mã được trình bày trong bài đăng đều có sẵn trong Kho GitHub. Chúng tôi triển khai kiến ​​trúc giải pháp sau.

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Điều kiện tiên quyết

Trước khi triển khai bất kỳ tài nguyên nào, hãy đảm bảo rằng bạn có tất cả các yêu cầu để thiết lập và sử dụng RStudio trên SageMaker và Amazon EMR:

Chúng tôi cũng sẽ xây dựng một RStudio tùy chỉnh trên hình ảnh SageMaker, vì vậy hãy đảm bảo rằng bạn đang chạy Docker và có tất cả các quyền cần thiết. Để biết thêm thông tin, hãy tham khảo Sử dụng hình ảnh tùy chỉnh để đưa môi trường phát triển của riêng bạn lên RStudio trên Amazon SageMaker.

Tạo tài nguyên với AWS CloudFormation

Chúng tôi sử dụng một Hình thành đám mây AWS stack để tạo cơ sở hạ tầng cần thiết.

Nếu bạn đã có miền RStudio và cụm EMR hiện có, thì bạn có thể bỏ qua bước này và bắt đầu xây dựng RStudio tùy chỉnh của mình trên hình ảnh SageMaker. Thay thế thông tin của cụm EMR và miền RStudio của bạn thay cho cụm EMR và miền RStudio được tạo trong phần này.

Khởi chạy ngăn xếp này sẽ tạo ra các tài nguyên sau:

  • Hai mạng con riêng
  • Cụm EMR Spark
  • Keo AWS cơ sở dữ liệu và bảng
  • Miền SageMaker với RStudio
  • Hồ sơ người dùng SageMaker RStudio
  • Vai trò dịch vụ IAM cho miền SageMaker RStudio
  • Vai trò dịch vụ IAM cho hồ sơ người dùng SageMaker RStudio

Hoàn thành các bước sau để tạo tài nguyên của bạn:

Chọn Khởi chạy Stack để tạo ngăn xếp.

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

  1. trên Tạo ngăn xếp trang, chọn Sau.
  2. trên Chỉ định chi tiết ngăn xếp trang, cung cấp tên cho ngăn xếp của bạn và để các tùy chọn còn lại làm mặc định, sau đó chọn Sau.
  3. trên Cấu hình tùy chọn ngăn xếp trang, để các tùy chọn như mặc định và chọn Sau.
  4. trên Trang đánh giá, lựa chọn
  5. Tôi xác nhận rằng AWS CloudFormation có thể tạo tài nguyên IAM với tên tùy chỉnh
  6. Tôi xác nhận rằng AWS CloudFormation có thể yêu cầu khả năng sau: CAPABILITY_AUTO_EXPAND.
  7. Chọn Tạo ngăn xếp.

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Mẫu tạo ra năm ngăn xếp.

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Để xem cụm EMR Spark đã được tạo, hãy điều hướng đến bảng điều khiển Amazon EMR. Bạn sẽ thấy một cụm được tạo cho bạn có tên là sagemaker. Đây là cụm chúng tôi kết nối thông qua RStudio trên SageMaker.

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Xây dựng RStudio tùy chỉnh trên hình ảnh SageMaker

Chúng tôi đã tạo một hình ảnh tùy chỉnh sẽ cài đặt tất cả các phụ thuộc của sparklyr và sẽ thiết lập kết nối với cụm EMR mà chúng tôi đã tạo.

Nếu bạn đang sử dụng cụm EMR và miền RStudio của riêng mình, hãy sửa đổi tập lệnh cho phù hợp.

Đảm bảo Docker đang chạy. Bắt đầu bằng cách vào kho lưu trữ dự án của chúng tôi:

cd sagemaker-rstudio-emr/sparklyr-image
./build-r-image.sh

Bây giờ chúng ta sẽ xây dựng hình ảnh Docker và đăng ký nó vào RStudio của chúng ta trên miền SageMaker.

  1. Trên bảng điều khiển SageMaker, chọn Tên miền trong khung điều hướng.
  2. Chọn miền select rstudio-domain.
  3. trên Môi trường tab, chọn Đính kèm hình ảnh.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Bây giờ chúng tôi đính kèm hình ảnh sparklyr mà chúng tôi đã tạo trước đó vào miền.
  4. Trong Chọn nguồn ảnh, lựa chọn hình ảnh hiện có.
  5. Chọn hình ảnh sparklyr mà chúng tôi đã tạo.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  6. Trong Thuộc tính hình ảnh, hãy để các tùy chọn như mặc định.
  7. Trong Lọai hình ảnh, lựa chọn Hình ảnh RStudio.
  8. Chọn Gửi.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Xác thực hình ảnh đã được thêm vào miền. Có thể mất vài phút để hình ảnh được đính kèm đầy đủ.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  9. Khi có sẵn, hãy đăng nhập vào RStudio trên bảng điều khiển SageMaker bằng cách sử dụng rstudio-user hồ sơ đã được tạo.
  10. Từ đây, hãy tạo một phiên với hình ảnh lấp lánh mà chúng tôi đã tạo trước đó.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Trước tiên, chúng tôi phải kết nối với cụm EMR của mình.
  11. Trong ngăn kết nối, chọn Kết nối mới.
  12. Chọn đoạn mã kết nối cụm EMR và chọn Kết nối với cụm Amazon EMR.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Sau khi mã kết nối chạy xong, bạn sẽ thấy kết nối Spark thông qua Livy, nhưng không có bảng.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  13. Thay đổi cơ sở dữ liệu thành credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Chọn Làm mới dữ liệu kết nối.
    Bây giờ bạn có thể xem các bảng.
    Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  15. Bây giờ điều hướng đến rstudio-sparklyr-code-walkthrough.md tập tin.

Điều này có một tập hợp các phép biến đổi Spark mà chúng tôi có thể sử dụng trên tập dữ liệu thẻ tín dụng của mình để chuẩn bị cho việc lập mô hình. Đoạn mã sau đây là một đoạn trích:

Hãy count() có bao nhiêu giao dịch trong bảng giao dịch. Nhưng trước tiên chúng ta cần cache Sử dụng tbl() chức năng.

users_tbl <- tbl(sc, "users")
cards_tbl <- tbl(sc, "cards")
transactions_tbl <- tbl(sc, "transactions")

Hãy đếm số lượng hàng cho mỗi bảng.

count(users_tbl)
count(cards_tbl)
count(transactions_tbl)

Bây giờ, hãy đăng ký các bảng của chúng tôi dưới dạng Khung dữ liệu Spark và kéo chúng vào bộ đệm bộ nhớ trên toàn cụm để có hiệu suất tốt hơn. Chúng tôi cũng sẽ lọc tiêu đề được đặt ở hàng đầu tiên cho mỗi bảng.

users_tbl <- tbl(sc, 'users') %>% filter(gender != 'Gender')
sdf_register(users_tbl, "users_spark")
tbl_cache(sc, 'users_spark')
users_sdf <- tbl(sc, 'users_spark') cards_tbl <- tbl(sc, 'cards') %>% filter(expire_date != 'Expires')
sdf_register(cards_tbl, "cards_spark")
tbl_cache(sc, 'cards_spark')
cards_sdf <- tbl(sc, 'cards_spark') transactions_tbl <- tbl(sc, 'transactions') %>% filter(amount != 'Amount')
sdf_register(transactions_tbl, "transactions_spark")
tbl_cache(sc, 'transactions_spark')
transactions_sdf <- tbl(sc, 'transactions_spark')

Để xem danh sách đầy đủ các lệnh, hãy tham khảo rstudio-sparklyr-code-walkthrough.md tập tin.

Làm sạch

Để dọn sạch mọi tài nguyên nhằm tránh phát sinh chi phí định kỳ, hãy xóa mẫu CloudFormation gốc. Đồng thời xóa tất cả Dịch vụ tệp đàn hồi của Amazon (Amazon EFS) gắn kết được tạo và bất kỳ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) nhóm và đối tượng được tạo.

Kết luận

Việc tích hợp RStudio trên SageMaker với Amazon EMR cung cấp một giải pháp mạnh mẽ cho các nhiệm vụ lập mô hình và phân tích dữ liệu trên đám mây. Bằng cách kết nối RStudio trên SageMaker và thiết lập kết nối Livy với Spark trên EMR, bạn có thể tận dụng tài nguyên điện toán của cả hai nền tảng để xử lý hiệu quả các bộ dữ liệu lớn. RStudio, một trong những IDE được sử dụng rộng rãi nhất để phân tích dữ liệu, cho phép bạn tận dụng cơ sở hạ tầng được quản lý hoàn toàn, khả năng kiểm soát truy cập, kết nối mạng và bảo mật của SageMaker. Trong khi đó, kết nối Livy với Spark trên Amazon EMR cung cấp một cách để thực hiện xử lý phân tán và thay đổi quy mô các tác vụ xử lý dữ liệu.

Nếu bạn quan tâm đến việc tìm hiểu thêm về cách sử dụng các công cụ này cùng nhau, thì bài đăng này sẽ là điểm khởi đầu. Để biết thêm thông tin, hãy tham khảo RStudio trên Amazon SageMaker. Nếu bạn có bất kỳ đề xuất hoặc cải tiến tính năng nào, vui lòng tạo yêu cầu kéo trên repo GitHub của chúng tôi hoặc để lại nhận xét về bài đăng này!


Về các tác giả

Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Ryan Garner là Nhà khoa học dữ liệu với AWS Professional Services. Anh ấy đam mê giúp khách hàng AWS sử dụng R để giải quyết các vấn đề về Khoa học dữ liệu và Máy học của họ.


Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
Raj Pathak
 là Kiến trúc sư giải pháp cao cấp và Nhà công nghệ chuyên về Dịch vụ tài chính (Bảo hiểm, Ngân hàng, Thị trường vốn) và Học máy. Ông chuyên về Xử lý ngôn ngữ tự nhiên (NLP), Mô hình ngôn ngữ lớn (LLM) và các dự án vận hành và cơ sở hạ tầng học máy (MLOps).


Kết nối Amazon EMR và RStudio trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Saiteja Pudi
 là Kiến trúc sư giải pháp tại AWS, có trụ sở tại Dallas, Tx. Anh ấy đã làm việc với AWS hơn 3 năm nay, giúp khách hàng khai thác tiềm năng thực sự của AWS bằng cách trở thành cố vấn đáng tin cậy của họ. Anh ấy xuất thân từ nền tảng phát triển ứng dụng, quan tâm đến Khoa học dữ liệu và Học máy.

Dấu thời gian:

Thêm từ Học máy AWS