Thực hiện xử lý dữ liệu tương tác bằng Spark trong Amazon SageMaker Studio Notebooks

Nút nguồn: 768629

Xưởng sản xuất Amazon SageMaker là môi trường phát triển tích hợp đầy đủ (IDE) đầu tiên cho học máy (ML). Với một cú nhấp chuột, các nhà khoa học và nhà phát triển dữ liệu có thể nhanh chóng tạo ra Máy tính xách tay studio để khám phá tập dữ liệu và xây dựng mô hình. Bây giờ bạn có thể sử dụng sổ ghi chép Studio để kết nối an toàn với các cụm EMR của Amazon và chuẩn bị một lượng lớn dữ liệu để phân tích và báo cáo, đào tạo mô hình hoặc suy luận.

Bạn có thể áp dụng khả năng mới này theo một số cách. Ví dụ: các nhà phân tích dữ liệu có thể muốn trả lời một câu hỏi kinh doanh bằng cách khám phá và truy vấn dữ liệu của họ trong Amazon EMR, xem kết quả, sau đó thay đổi truy vấn ban đầu hoặc đi sâu hơn vào kết quả. Bạn có thể hoàn thành quy trình truy vấn tương tác này trực tiếp trong sổ ghi chép Studio và chạy mã Spark từ xa. Kết quả sau đó được trình bày trong giao diện sổ ghi chép.

Các kỹ sư dữ liệu và nhà khoa học dữ liệu cũng có thể sử dụng Apache Spark để xử lý trước dữ liệu và sử dụng Amazon SageMaker để đào tạo người mẫu và dẫn chương trình. SageMaker cung cấp một Thư viện Apache Spark mà bạn có thể sử dụng để dễ dàng đào tạo các mô hình trong SageMaker bằng cách sử dụng org.apache.spark.sql.DataFrame DataFrames trong các cụm EMR Spark của bạn. Sau khi đào tạo mô hình, bạn cũng có thể lưu trữ mô hình bằng dịch vụ lưu trữ của SageMaker.

Bài đăng này hướng dẫn bạn cách kết nối Studio an toàn với một cụm EMR được định cấu hình bằng xác thực Kerberos. Sau khi xác thực và kết nối với cụm EMR, chúng tôi truy vấn bảng Hive và sử dụng dữ liệu để đào tạo và xây dựng mô hình ML.

Hướng dẫn giải pháp

Chúng tôi sử dụng một Hình thành đám mây AWS mẫu để thiết lập VPC với mạng con riêng để lưu trữ cụm EMR một cách an toàn. Sau đó, chúng tôi tạo một cụm EMR được Kerberized và định cấu hình nó để cho phép kết nối an toàn từ Studio. Sau đó, chúng tôi tạo miền Studio và người dùng Studio mới. Cuối cùng, chúng tôi sử dụng nhân PySpark (SparkMagic) mới để xác thực và kết nối sổ ghi chép Studio với cụm EMR.

Nhân PySpark (SparkMagic) cho phép bạn xác định các cấu hình Spark và các biến môi trường cụ thể, đồng thời kết nối với một cụm EMR để truy vấn, phân tích và xử lý một lượng lớn dữ liệu. Studio đi kèm với hình ảnh SageMaker SparkMagic có chứa nhân PySpark. Hình ảnh SparkMagic cũng chứa một Giao diện dòng lệnh AWS (AWS CLI) tiện ích, sm-sparkmagic, mà bạn có thể sử dụng để tạo các tệp cấu hình cần thiết cho nhân PySpark để kết nối với cụm EMR. Để tăng cường bảo mật, bạn có thể chỉ định rằng kết nối đến cụm EMR sử dụng xác thực Kerberos.

Studio chạy trên môi trường do AWS quản lý. Trong giải pháp này, quyền truy cập mạng cho miền Studio mới được định cấu hình là Chỉ VPC. Để biết thêm chi tiết về các phương thức kết nối khác nhau, hãy xem Bảo mật kết nối Amazon SageMaker Studio bằng VPC riêng. Giao diện mạng đàn hồi (ENI) được tạo trong mạng con riêng tư kết nối với các dịch vụ AWS được yêu cầu thông qua các điểm cuối VPC.

Sơ đồ sau đại diện cho các thành phần khác nhau được sử dụng trong giải pháp này.

Mẫu CloudFormation tạo một cụm EMR được Kerberized và định cấu hình nó bằng hành động bootstrap để tạo người dùng Linux và cài đặt các thư viện Python (Pandas, request và Matplotlib).

Bạn có thể thiết lập xác thực Kerberos theo một số cách khác nhau (để biết thêm thông tin, hãy xem Tùy chọn kiến ​​trúc Kerberos):

  • Trung tâm phân phối khóa chuyên dụng theo cụm (KDC)
  • KDC dành riêng cho cụm với độ tin cậy xuyên lãnh vực Active Directory
  • KDC bên ngoài
  • KDC bên ngoài tích hợp với Active Directory

KDC có thể có cơ sở dữ liệu người dùng riêng hoặc có thể sử dụng sự tin tưởng xuyên quốc gia với Active Directory lưu trữ danh tính. Đối với bài đăng này, chúng tôi sử dụng KDC dành riêng cho cụm có cơ sở dữ liệu người dùng của riêng nó.

Đầu tiên, cụm EMR có cấu hình bảo mật được kích hoạt để hỗ trợ Kerberos và được khởi chạy với hành động bootstrap để tạo người dùng Linux trên tất cả các nút và cài đặt các thư viện cần thiết. Mẫu CloudFormation khởi chạy bước bash sau khi cụm đã sẵn sàng. Bước này tạo thư mục HDFS cho người dùng Linux với thông tin xác thực mặc định. Người dùng phải thay đổi mật khẩu lần đầu tiên họ đăng nhập vào cụm EMR. Mẫu cũng tạo và điền vào bảng Hive với tập dữ liệu đánh giá phim. Chúng tôi sử dụng tập dữ liệu này trong Khám phá và truy vấn dữ liệu phần của bài đăng này.

Mẫu CloudFormation cũng tạo miền Studio và người dùng có tên defaultuser. Bạn có thể truy cập tia lửa ma thuật hình ảnh từ môi trường Studio.

Triển khai các tài nguyên với CloudFormation

Bạn có thể sử dụng mẫu CloudFormation được cung cấp để thiết lập các khối xây dựng của giải pháp, bao gồm VPC, mạng con, cụm EMR, miền Studio và các tài nguyên bắt buộc khác.

Mẫu này triển khai một miền Studio mới. Đảm bảo Vùng được sử dụng để triển khai ngăn xếp CloudFormation không có miền Studio hiện có.

Hoàn thành các bước sau để triển khai môi trường:

  1. Đăng nhập vào Bảng điều khiển quản lý AWS như một Quản lý truy cập và nhận dạng AWS (IAM) người dùng, tốt nhất là người dùng quản trị.
  2. Chọn Khởi chạy Stack để khởi chạy mẫu CloudFormation:

  1. Chọn Sau.
  2. Trong Tên ngăn xếp, nhập tên cho ngăn xếp (ví dụ: blog).
  3. Để các giá trị khác làm mặc định.
  4. Tiếp tục chọn Sau và để các thông số khác ở chế độ mặc định.
  5. Trên trang đánh giá, hãy chọn hộp kiểm để xác nhận rằng AWS CloudFormation có thể tạo tài nguyên.
  6. Chọn Tạo ngăn xếp.

Chờ cho đến khi trạng thái của ngăn xếp thay đổi từ CREATE_IN_PROGRESS đến CREATE_COMPLETE. Quá trình này thường mất 10-15 phút.

Kết nối Studio Notebook với một cụm EMR

Sau khi chúng tôi triển khai ngăn xếp của mình, chúng tôi tạo kết nối giữa sổ ghi chép Studio của chúng tôi và cụm EMR. Việc thiết lập kết nối này cho phép chúng tôi kết nối mã với dữ liệu của chúng tôi được lưu trữ trên Amazon EMR.

Hoàn thành các bước sau để thiết lập và kết nối sổ ghi chép của bạn với cụm EMR:

  1. Trên bảng điều khiển SageMaker, chọn Xưởng sản xuất Amazon SageMaker.

Lần đầu tiên khởi chạy phiên Studio có thể mất vài phút để bắt đầu.

  1. Chọn Mở Studio liên kết cho defaultuser.

IDE Studio mở ra. Tiếp theo, chúng tôi tải xuống mã cho hướng dẫn này từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).

  1. Chọn Tập tin, sau đó chọn MớiThiết bị đầu cuối.
  2. Trong terminal, hãy chạy các lệnh sau:
    aws s3 cp s3://aws-ml-blog/artifacts/ml-1954/smstudio-pyspark-hive-sentiment-analysis.ipynb . aws s3 cp s3://aws-ml-blog/artifacts/ml-1954/preprocessing.py 

  3. Mở smstudio-pyspark-hive-sentiment-analysis.ipynb
  4. Trong Chọn Kernel, chọn PySpark (SparkMagic).

  1. Chạy từng ô trong sổ ghi chép và khám phá các khả năng của Sparkmagic bằng cách sử dụng nhân PySpark.

Trước khi có thể chạy mã trong sổ ghi chép, bạn cần cung cấp ID cụm của cụm EMR đã được tạo như một phần của triển khai giải pháp. Bạn có thể tìm thấy thông tin này trên bảng điều khiển EMR, trên Cụm .

  1. Thay thế giá trị trình giữ chỗ bằng ID của cụm EMR.

  1. Kết nối với cụm EMR từ sổ ghi chép bằng thư viện Studio Sparkmagic mã nguồn mở.

Thư viện SparkMagic có sẵn dưới dạng mã nguồn mở trên GitHub.

  1. Trong thanh công cụ sổ ghi chép, hãy chọn Khởi chạy thiết bị đầu cuối biểu tượng () để mở một thiết bị đầu cuối có cùng hình ảnh SparkMagic với sổ ghi chép.
  2. chạy kinit user1 để lấy vé Kerberos.
  3. Nhập mật khẩu của bạn khi được nhắc.

Vé này có giá trị trong 24 giờ theo mặc định. Nếu bạn đang kết nối với cụm EMR lần đầu tiên, bạn phải thay đổi mật khẩu.

  1. Chọn tab sổ ghi chép và khởi động lại Kernel bằng cách sử dụng Khởi động lại hạt nhân biểu tượng () từ thanh công cụ.

Điều này là bắt buộc để SparkMagic có thể nhận cấu hình đã tạo.

  1. Để xác minh rằng kết nối đã được thiết lập chính xác, hãy chạy %%info chỉ huy.

Lệnh này hiển thị thông tin phiên hiện tại.

Bây giờ chúng ta đã thiết lập kết nối, hãy khám phá và truy vấn dữ liệu.

Khám phá và truy vấn dữ liệu

Sau khi bạn định cấu hình sổ ghi chép, hãy chạy mã của các ô được hiển thị trong ảnh chụp màn hình sau. Điều này kết nối với cụm EMR để truy vấn dữ liệu.

Sparkmagic cho phép bạn chạy mã Spark với cụm EMR từ xa thông qua Livy. Livy là một máy chủ REST mã nguồn mở cho Spark. Để biết thêm thông tin, hãy xem tài liệu EMR Livy.

Sparkmagic cũng tạo một SparkContext và HiveContext tự động. Bạn có thể sử dụng HiveContext để truy vấn dữ liệu trong bảng Hive và cung cấp nó trong DataFrame tia lửa.

Bạn có thể sử dụng DataFrame để xem hình dạng của tập dữ liệu và kích thước của từng lớp (tích cực và tiêu cực) và trực quan hóa nó bằng Matplotlib. Các ảnh chụp màn hình sau đây cho thấy rằng chúng tôi có một tập dữ liệu cân bằng.

Bạn có thể sử dụng pyspark.sql.functions mô-đun như được hiển thị trong ảnh chụp màn hình sau để kiểm tra độ dài của các bài đánh giá.

Bạn có thể sử dụng các truy vấn SparkSQL bằng %%sql từ sổ ghi chép và lưu kết quả vào DataFrame cục bộ. Điều này cho phép khám phá dữ liệu nhanh chóng. Các hàng tối đa được trả về theo mặc định là 2,500. Bạn có thể đặt số hàng tối đa bằng cách sử dụng đối số -n.

Khi chúng ta tiếp tục xem qua sổ ghi chép, hãy truy vấn bảng đánh giá phim trong Hive, lưu trữ kết quả vào DataFrame. Môi trường Sparkmagic cho phép bạn gửi dữ liệu cục bộ đến cụm từ xa bằng cách sử dụng %%send_to_spark. Chúng tôi gửi các biến vị trí S3 (nhóm và khóa) đến cụm từ xa, sau đó chuyển đổi Spark DataFrame thành Pandas DataFrame. Sau đó, chúng tôi tải nó lên Amazon S3 và sử dụng dữ liệu này làm đầu vào cho bước tiền xử lý tạo dữ liệu đào tạo và xác thực. Dữ liệu này đào tạo một mô hình phân tích tình cảm bằng cách sử dụng Thuật toán SageMaker BlazingText.

Dữ liệu tiền xử lý và kỹ thuật tính năng

Chúng tôi thực hiện xử lý trước dữ liệu và kỹ thuật tính năng trên dữ liệu bằng Xử lý SageMaker. Với Xử lý SageMaker, bạn có thể tận dụng trải nghiệm được quản lý, đơn giản hóa để chạy các khối lượng công việc xử lý trước dữ liệu, xử lý hậu xử lý dữ liệu và đánh giá mô hình trên nền tảng SageMaker. Công việc xử lý tải xuống đầu vào từ Amazon S3, sau đó tải đầu ra lên Amazon S3 trong hoặc sau công việc xử lý. Các tiền xử lý.py script thực hiện xử lý trước văn bản được yêu cầu với bộ dữ liệu đánh giá phim và chia bộ dữ liệu thành dữ liệu đào tạo và dữ liệu xác thực cho đào tạo mô hình.

Máy tính xách tay sử dụng bộ xử lý Scikit-learning trong hình ảnh Docker để thực hiện công việc xử lý.

Đối với bài đăng này, chúng tôi sử dụng phiên bản SageMaker loại ml.m5.xlarge để xử lý, đào tạo và lưu trữ mô hình. Nếu bạn không có quyền truy cập vào loại phiên bản này và nhận được ResourceLimitExceeded lỗi, hãy sử dụng loại phiên bản khác mà bạn có quyền truy cập. Bạn cũng có thể yêu cầu tăng giới hạn dịch vụ bằng cách sử dụng Trung tâm hỗ trợ AWS.

Đào tạo mô hình SageMaker

Thử nghiệm Amazon SageMaker cho phép chúng tôi tổ chức, theo dõi và xem xét các thử nghiệm ML với máy tính xách tay Studio. Chúng tôi có thể ghi lại các số liệu và thông tin khi chúng tôi tiến bộ trong quá trình đào tạo và đánh giá kết quả khi chúng tôi chạy các mô hình.

Chúng tôi tạo một thử nghiệm và thử nghiệm SageMaker, một công cụ ước tính SageMaker và đặt các siêu tham số. Sau đó, chúng tôi bắt đầu một công việc đào tạo bằng cách gọi fit phương pháp trên bộ ước lượng. Chúng tôi sử dụng Phiên bản Spot để giảm chi phí đào tạo.

Triển khai mô hình và nhận dự đoán

Khi quá trình đào tạo hoàn tất, chúng tôi tổ chức mô hình để suy luận theo thời gian thực. Phương pháp triển khai của công cụ ước tính SageMaker cho phép bạn dễ dàng triển khai mô hình và tạo một điểm cuối.

Sau khi mô hình được triển khai, chúng tôi kiểm tra điểm cuối đã triển khai với dữ liệu thử nghiệm và nhận dự đoán.

Làm sạch tài nguyên

Dọn dẹp tài nguyên khi bạn hoàn tất, chẳng hạn như điểm cuối SageMaker và nhóm S3 được tạo trong sổ ghi chép.

Sản phẩm %%cleanup -f lệnh xóa tất cả các phiên Livy được tạo bởi sổ ghi chép.

Kết luận

Chúng tôi đã hướng dẫn bạn cách kết nối sổ ghi chép được hỗ trợ bởi hình ảnh Sparkmagic với một cụm EMR kerberized. Sau đó, chúng tôi khám phá và truy vấn tập dữ liệu mẫu từ bảng Hive. Chúng tôi đã sử dụng tập dữ liệu đó để đào tạo mô hình phân tích tình cảm với SageMaker. Cuối cùng, chúng tôi đã triển khai mô hình để suy luận.

Để biết thêm thông tin và các tài nguyên khác của SageMaker, hãy xem SageMaker Spark Repo GitHubBảo mật phân tích dữ liệu với phiên bản máy tính xách tay Amazon SageMaker và cụm Amazon EMR được Kerberized.


Về các tác giả

Graham Zulauf là một Kiến trúc sư Giải pháp Cấp cao. Graham tập trung vào việc giúp các khách hàng chiến lược của AWS giải quyết các vấn đề quan trọng trên quy mô lớn.

Hương Nguyễn là Giám đốc Sản phẩm của Sr. tại AWS. Cô ấy đang dẫn đầu trải nghiệm người dùng cho SageMaker Studio. Cô đã có 13 năm kinh nghiệm tạo ra các sản phẩm hướng đến khách hàng và dựa trên dữ liệu cho cả không gian doanh nghiệp và người tiêu dùng. Khi rảnh rỗi, cô thích đọc sách, hòa mình vào thiên nhiên và dành thời gian cho gia đình.

James Sun là Kiến trúc sư Giải pháp Cấp cao với Dịch vụ Web của Amazon. James có hơn 15 năm kinh nghiệm trong lĩnh vực công nghệ thông tin. Trước AWS, ông đã đảm nhiệm nhiều vị trí kỹ thuật cấp cao tại MapR, HP, NetApp, Yahoo và EMC. Ông có bằng Tiến sĩ tại Đại học Stanford.

Naresh Kumar Kolloju là một phần của nhóm khởi chạy Amazon SageMaker. Ông tập trung vào việc xây dựng các nền tảng học máy an toàn cho khách hàng. Khi rảnh rỗi, anh ấy thích đi bộ đường dài và dành thời gian cho gia đình.

Timo Kwong là một Kiến trúc sư Giải pháp có trụ sở tại California. Trong thời gian rảnh, anh ấy thích chơi nhạc và làm nghệ thuật kỹ thuật số.

Praveen Veerath là Kiến trúc sư giải pháp AI cấp cao cho AWS.

Nguồn: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-studio-notebooks-backed-by-spark-in-amazon-emr/

Dấu thời gian:

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