Để cải thiện hiệu quả của ứng dụng Spark, điều cần thiết là phải theo dõi hiệu suất và hành vi của ứng dụng đó. Trong bài đăng này, chúng tôi trình bày cách xuất bản số liệu Spark chi tiết từ Amazon EMR đến amazoncloudwatch. Điều này sẽ cung cấp cho bạn khả năng xác định các điểm nghẽn trong khi tối ưu hóa việc sử dụng tài nguyên.
CloudWatch cung cấp giải pháp giám sát mạnh mẽ, có thể mở rộng và tiết kiệm chi phí cho các tài nguyên và ứng dụng AWS, với các tùy chọn tùy chỉnh mạnh mẽ và tích hợp liền mạch với các dịch vụ AWS khác. Theo mặc định, Amazon EMR gửi số liệu cơ bản tới CloudWatch để theo dõi hoạt động và tình trạng của một cụm. Hệ thống số liệu có thể định cấu hình của Spark cho phép thu thập số liệu trong nhiều hệ thống lưu trữ khác nhau, bao gồm các tệp HTTP, JMX và CSV, nhưng cần có cấu hình bổ sung để cho phép Spark xuất bản số liệu lên CloudWatch.
Tổng quan về giải pháp
Giải pháp này bao gồm cấu hình Spark để gửi số liệu đến vùng lưu trữ tùy chỉnh. Phần chìm tùy chỉnh chỉ thu thập các số liệu được xác định trong tệp Metricfilter.json. Nó sử dụng tác nhân CloudWatch để xuất bản số liệu lên không gian tên Cloudwatch tùy chỉnh. Tập lệnh hành động bootstrap đi kèm chịu trách nhiệm cài đặt và định cấu hình tác nhân CloudWatch cũng như thư viện số liệu trên Đám mây điện toán đàn hồi Amazon (Amazon EC2) Phiên bản EMR. Bảng thông tin CloudWatch có thể cung cấp thông tin chi tiết tức thì về hiệu suất của ứng dụng.
Sơ đồ sau minh họa kiến trúc giải pháp và quy trình làm việc.
Quy trình làm việc bao gồm các bước sau:
- Người dùng bắt đầu công việc Spark EMR, tạo một bước trên cụm EMR. Với Apache Spark, khối lượng công việc được phân bổ trên các nút khác nhau của cụm EMR.
- Trong mỗi nút (phiên bản EC2) của cụm, thư viện Spark thu thập và đẩy dữ liệu chỉ số đến tác nhân CloudWatch, tác nhân này tổng hợp dữ liệu chỉ số trước khi đẩy chúng lên CloudWatch mỗi giây 30.
- Người dùng có thể xem số liệu truy cập vào không gian tên tùy chỉnh trên bảng điều khiển CloudWatch.
Chúng tôi cung cấp một Hình thành đám mây AWS mẫu trong bài đăng này như một hướng dẫn chung. Mẫu này trình bày cách đặt cấu hình tác nhân CloudWatch trên Amazon EMR để đẩy số liệu Spark lên CloudWatch. Bạn có thể xem lại và tùy chỉnh nó nếu cần để bao gồm các cấu hình bảo mật Amazon EMR của mình. Cách tốt nhất là bạn nên đưa cấu hình bảo mật Amazon EMR của mình vào mẫu để mã hóa dữ liệu trên đường truyền.
Bạn cũng nên lưu ý rằng một số tài nguyên được triển khai bởi ngăn xếp này sẽ phát sinh chi phí khi chúng vẫn được sử dụng. Ngoài ra, Số liệu EMR không phải chịu chi phí CloudWatch. Tuy nhiên, số liệu tùy chỉnh sẽ bị tính phí dựa trên mức giá của số liệu CloudWatch. Để biết thêm thông tin, xem Giá Amazon CloudWatch.
Trong các phần tiếp theo, chúng ta sẽ thực hiện các bước sau:
- Tạo và tải thư viện số liệu, tập lệnh cài đặt và định nghĩa bộ lọc lên một Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) xô.
- Sử dụng mẫu CloudFormation để tạo các tài nguyên sau:
- Theo dõi số liệu Spark trên bảng điều khiển CloudWatch.
Điều kiện tiên quyết
Bài đăng này giả định rằng bạn có những điều sau đây:
- An Tài khoản AWS.
- Vùng lưu trữ S3 để lưu trữ tập lệnh khởi động, thư viện và định nghĩa bộ lọc số liệu.
- Một VPC được tạo trong Đám mây riêng ảo Amazon (Amazon VPC), nơi cụm EMR của bạn sẽ được khởi chạy.
- Vai trò dịch vụ IAM mặc định cho quyền của Amazon EMR đối với các dịch vụ và tài nguyên AWS. Bạn có thể tạo các vai trò này bằng lệnh aws emr create-default-roles trong Giao diện dòng lệnh AWS (AWS CLI).
- Cặp khóa EC2 tùy chọn, nếu bạn định kết nối với cụm của mình thông qua SSH thay vì Quản lý phiên, một khả năng của Người quản lý hệ thống AWS.
Xác định các số liệu cần thiết
Để tránh gửi dữ liệu không cần thiết tới CloudWatch, giải pháp của chúng tôi triển khai bộ lọc số liệu. Xem lại Tài liệu Spark để làm quen với các không gian tên và số liệu liên quan của chúng. Xác định số liệu nào có liên quan đến ứng dụng cụ thể và mục tiêu hiệu suất của bạn. Các ứng dụng khác nhau có thể yêu cầu các số liệu khác nhau để giám sát, tùy thuộc vào khối lượng công việc, yêu cầu xử lý dữ liệu và mục tiêu tối ưu hóa. Tên chỉ số bạn muốn theo dõi phải được xác định trong tệp Metricfilter.json, cùng với các vùng tên liên quan của chúng.
Chúng tôi đã tạo một định nghĩa Metricfilter.json mẫu, bao gồm việc thu thập các số liệu liên quan đến I/O dữ liệu, thu gom rác, áp suất bộ nhớ và CPU cũng như các số liệu về công việc, giai đoạn và nhiệm vụ của Spark.
Lưu ý rằng một số số liệu nhất định không có sẵn trong tất cả các phiên bản phát hành Spark (ví dụ: appStatus đã được giới thiệu trong Spark 3.0).
Tạo và tải các tệp cần thiết lên vùng lưu trữ S3
Để biết thêm thông tin, xem Tải lên các đối tượng và Cài đặt và chạy tác nhân CloudWatch trên máy chủ của bạn.
Để tạo và tải lên tập lệnh bootstrap, hãy hoàn thành các bước sau:
- Trên bảng điều khiển Amazon S3, chọn bộ chứa S3 của bạn.
- trên Đối tượng tab, chọn Tải lên.
- Chọn Thêm file, sau đó chọn Bộ lọc số liệu.json, trình cài đặt.shvà ví dụjob.sh các tập tin.
- Ngoài ra, hãy tải lên
emr-custom-cw-sink-0.0.1.jar
tệp thư viện số liệu tương ứng với phiên bản phát hành Amazon EMR mà bạn sẽ sử dụng: - Chọn Tải lênvà ghi lại các URI S3 cho các tệp.
Cung cấp tài nguyên với mẫu CloudFormation
Chọn Khởi chạy Stack để khởi chạy ngăn xếp CloudFormation trong tài khoản của bạn và triển khai mẫu:
Mẫu này tạo vai trò IAM, hồ sơ phiên bản IAM, cụm EMR và bảng thông tin CloudWatch. Cụm bắt đầu một cơ bản Ứng dụng ví dụ Spark. Bạn sẽ bị tính phí cho các tài nguyên AWS đã sử dụng nếu bạn tạo một ngăn xếp từ mẫu này.
Trình hướng dẫn CloudFormation sẽ yêu cầu bạn sửa đổi hoặc cung cấp các tham số sau:
- Loại phiên bản - loại trường hợp cho tất cả các nhóm phiên bản. Mặc định là m5.2xlarge.
- InstanceCountLõi – Số lượng phiên bản trong nhóm phiên bản lõi. Mặc định là 4.
- EMRRPhát hànhNhãn - Nhãn phát hành Amazon EMR bạn muốn sử dụng. Mặc định là emr-6.9.0.
- BootstrapScriptPath – Đường dẫn S3 của tập lệnh khởi động cài đặt Installer.sh mà bạn đã sao chép trước đó.
- Đường dẫn bộ lọc số liệu – Đường dẫn S3 của định nghĩa Metricfilter.json mà bạn đã sao chép trước đó.
- Đường dẫn thư viện số liệu – Đường dẫn S3 của thư viện CloudWatch emr-custom-cw-sink-0.0.1.jar mà bạn đã sao chép trước đó.
- CloudWatchKhông gian tên – Tên của vùng chứa tên CloudWatch tùy chỉnh sẽ được sử dụng.
- Đường dẫn ứng dụng SparkDemo – Đường dẫn S3 của tập lệnh examplejob.sh mà bạn đã sao chép trước đó.
- Mạng con – Mạng con EC2 nơi khởi chạy cụm. Bạn phải cung cấp thông số này.
- EC2KeyPairName – Cặp khóa EC2 tùy chọn để kết nối với các nút cụm, thay thế cho Trình quản lý phiên.
Xem số liệu
Sau khi ngăn xếp CloudFormation triển khai thành công, công việc mẫu sẽ tự động bắt đầu và mất khoảng 15 phút để hoàn thành. Trên bảng điều khiển CloudWatch, chọn Biểu đồ trong ngăn điều hướng. Sau đó lọc danh sách theo tiền tố SparkMonitoring.
Trang tổng quan mẫu bao gồm thông tin về cụm và tổng quan về các công việc, giai đoạn và nhiệm vụ của Spark. Số liệu cũng có sẵn trong không gian tên tùy chỉnh bắt đầu bằng EMRCustomSparkCloudWatchSink
.
Bộ nhớ, CPU, I/O và các số liệu phân bổ tác vụ bổ sung cũng được bao gồm.
Cuối cùng, các số liệu thu thập rác Java chi tiết có sẵn cho mỗi người thực thi.
Làm sạch
Để tránh các khoản phí trong tương lai trong tài khoản của bạn, hãy xóa tài nguyên bạn đã tạo trong hướng dẫn này. Cụm EMR sẽ bị tính phí miễn là cụm này đang hoạt động, vì vậy hãy dừng cụm này khi bạn hoàn tất. Hoàn thành các bước sau:
- Trên bảng điều khiển CloudFormation, trong ngăn điều hướng, hãy chọn Stacks.
- Chọn ngăn xếp bạn đã khởi chạy (
EMR-CloudWatch-Demo
), tiếp đó hãy chọn Xóa bỏ. - Làm trống bộ chứa S3 bạn đã tạo.
- Xóa bộ chứa S3 bạn đã tạo.
Kết luận
Bây giờ bạn đã hoàn thành các bước trong hướng dẫn này, tác nhân CloudWatch đang chạy trên các máy chủ cụm của bạn và được định cấu hình để đẩy các chỉ số Spark lên CloudWatch. Với tính năng này, bạn có thể giám sát hiệu quả tình trạng và hiệu suất của các công việc Spark đang chạy trên Amazon EMR, phát hiện các sự cố nghiêm trọng trong thời gian thực và nhanh chóng xác định nguyên nhân gốc rễ.
Bạn có thể đóng gói và triển khai giải pháp này thông qua mẫu CloudFormation giống như mẫu ví dụ này. Mẫu này sẽ tạo vai trò hồ sơ phiên bản IAM, bảng thông tin CloudWatch và cụm EMR. Mã nguồn của thư viện có sẵn trên GitHub để tùy chỉnh.
Để tiến xa hơn, hãy cân nhắc sử dụng các số liệu này trong cảnh báo CloudWatch. Bạn có thể thu thập chúng cùng với các báo động khác thành một báo động tổng hợp hoặc định cấu hình các hành động báo động như gửi Dịch vụ thông báo đơn giản của Amazon thông báo (Amazon SNS) để kích hoạt các quy trình hướng sự kiện, chẳng hạn như AWS Lambda chức năng.
Lưu ý
Le Clue Lubbe là Kỹ sư chính tại AWS. Anh ấy làm việc với các khách hàng doanh nghiệp lớn nhất của chúng tôi để giải quyết một số vấn đề kỹ thuật phức tạp nhất của họ. Ông thúc đẩy các giải pháp rộng rãi thông qua đổi mới nhằm tác động và cải thiện cuộc sống của khách hàng.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Ô tô / Xe điện, Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- ChartPrime. Nâng cao trò chơi giao dịch của bạn với ChartPrime. Truy cập Tại đây.
- BlockOffsets. Hiện đại hóa quyền sở hữu bù đắp môi trường. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :là
- :không phải
- :Ở đâu
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- có khả năng
- truy cập
- Tài khoản
- hiểu biết
- ngang qua
- Hoạt động
- hành động
- hoạt động
- hoạt động
- thêm vào
- Ngoài ra
- Đại lý
- báo động
- Tất cả
- cho phép
- dọc theo
- Ngoài ra
- thay thế
- đàn bà gan dạ
- Amazon EC2
- Amazon EMR
- Amazon Web Services
- an
- và
- Apache
- Apache Spark
- Các Ứng Dụng
- các ứng dụng
- khoảng
- kiến trúc
- kiến trúc
- LÀ
- AS
- liên kết
- giả định
- At
- tác giả
- tự động
- có sẵn
- tránh
- nhận thức
- AWS
- dựa
- cơ bản
- BE
- trước
- BEST
- bootstrap
- rộng
- nhưng
- by
- CAN
- khả năng
- chụp
- Chụp
- nguyên nhân
- nhất định
- tải
- Chọn
- cụm
- mã
- thu thập
- bộ sưu tập
- thu thập
- hoàn thành
- Hoàn thành
- phức tạp
- Tính
- Cấu hình
- cấu hình
- Kết nối
- Kết nối
- Hãy xem xét
- An ủi
- Trung tâm
- tương ứng
- chi phí-hiệu quả
- Chi phí
- có thể
- CPU
- tạo
- tạo ra
- tạo ra
- Tạo
- quan trọng
- khách hàng
- khách hàng
- tùy biến
- tùy chỉnh
- bảng điều khiển
- dữ liệu
- xử lý dữ liệu
- Mặc định
- xác định
- định nghĩa
- chứng minh
- chứng minh
- Tùy
- triển khai
- triển khai
- triển khai
- chi tiết
- Xác định
- khác nhau
- phân phối
- phân phối
- thực hiện
- dont
- ổ đĩa
- mỗi
- Sớm hơn
- hiệu quả
- hiệu quả
- cho phép
- ky sư
- Doanh nghiệp
- khách hàng doanh nghiệp
- thiết yếu
- Ether (ETH)
- ví dụ
- Đặc tính
- Tập tin
- Các tập tin
- lọc
- tiếp theo
- Trong
- từ
- chức năng
- xa hơn
- tương lai
- Tổng Quát
- được
- Cho
- Go
- Các mục tiêu
- Nhóm
- Các nhóm
- hướng dẫn
- Có
- he
- cho sức khoẻ
- host
- Độ đáng tin của
- Hướng dẫn
- Tuy nhiên
- HTML
- http
- HTTPS
- IAM
- xác định
- xác định
- if
- minh họa
- minh họa
- Va chạm
- thực hiện
- nâng cao
- in
- bao gồm
- bao gồm
- bao gồm
- Bao gồm
- thông tin
- sự đổi mới
- cái nhìn sâu sắc
- cài đặt
- Cài đặt
- ví dụ
- ngay lập tức
- hội nhập
- trong
- giới thiệu
- các vấn đề
- IT
- ITS
- Java
- Việc làm
- việc làm
- json
- Key
- lớn nhất
- phóng
- phát động
- ra mắt
- Thư viện
- Cuộc sống
- Lượt thích
- Dòng
- Danh sách
- dài
- giám đốc
- Có thể..
- Bộ nhớ
- số liệu
- Metrics
- phút
- sửa đổi
- Màn Hình
- giám sát
- chi tiết
- hầu hết
- phải
- tên
- tên
- THÔNG TIN
- cần thiết
- tiếp theo
- nút
- các nút
- ghi
- thông báo
- thông báo
- con số
- mục tiêu
- of
- on
- có thể
- tối ưu hóa
- tối ưu hóa
- Các lựa chọn
- or
- Nền tảng khác
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- tổng quan
- gói
- đôi
- cửa sổ
- tham số
- thông số
- con đường
- mỗi
- hiệu suất
- quyền
- kế hoạch
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- chân dung
- Bài đăng
- mạnh mẽ
- thực hành
- áp lực
- giá
- Hiệu trưởng
- riêng
- vấn đề
- Quy trình
- xử lý
- Hồ sơ
- cho
- cung cấp
- xuất bản
- Đẩy
- đẩy
- Đẩy
- Mau
- hơn
- thực
- thời gian thực
- giới thiệu
- liên quan
- phát hành
- có liên quan
- vẫn
- yêu cầu
- cần phải
- Yêu cầu
- tài nguyên
- Tận dụng nguồn tài nguyên
- Thông tin
- chịu trách nhiệm
- xem xét
- mạnh mẽ
- Vai trò
- vai trò
- nguồn gốc
- chạy
- khả năng mở rộng
- liền mạch
- Phần
- phần
- an ninh
- xem
- gửi
- gửi
- gửi
- dịch vụ
- DỊCH VỤ
- Phiên
- nên
- Đơn giản
- So
- giải pháp
- Giải pháp
- động SOLVE
- một số
- nguồn
- mã nguồn
- Spark
- riêng
- ngăn xếp
- Traineeship
- giai đoạn
- Bắt đầu
- Bắt đầu
- bắt đầu
- Bước
- Các bước
- Dừng
- là gắn
- subnet
- Thành công
- như vậy
- TÓM TẮT
- hệ thống
- hệ thống
- Hãy
- mất
- Nhiệm vụ
- nhiệm vụ
- Kỹ thuật
- mẫu
- hơn
- việc này
- Sản phẩm
- Nguồn
- cung cấp their dịch
- Them
- sau đó
- Kia là
- họ
- điều này
- Thông qua
- thời gian
- đến
- theo dõi
- kích hoạt
- Dưới
- sử dụng
- đã sử dụng
- sử dụng
- sử dụng
- nhiều
- phiên bản
- Xem
- ảo
- hương
- muốn
- là
- we
- web
- các dịch vụ web
- khi nào
- cái nào
- trong khi
- sẽ
- với
- quy trình làm việc
- công trinh
- X
- khoai mỡ
- bạn
- trên màn hình
- zephyrnet