Apache Spark trên Amazon EMR

Tại sao nên chọn Apache Spark trên EMR?

Amazon EMR là nơi tốt nhất để chạy Apache Spark. Bạn có thể nhanh chóng và dễ dàng tạo các cụm Spark được quản lý từ Bảng điều khiển quản lý AWS, AWS CLI hoặc Amazon EMR API. Ngoài ra, bạn có thể tận dụng các tính năng bổ sung của Amazon EMR, bao gồm kết nối Amazon S3 nhanh bằng cách sử dụng Hệ thống tệp Amazon EMR (EMRFS), khả năng tích hợp với thị trường Amazon EC2 Dùng ngay và Danh mục dữ liệu AWS Glue, cũng như Điều chỉnh quy mô được quản lý EMR để thêm hoặc loại bỏ các phiên bản khỏi cụm của bạn. AWS Lake Formation mang lại khả năng kiểm soát truy cập chi tiết, trong khi đó việc tích hợp với AWS Step Functions sẽ giúp điều phối các quy trình dữ liệu của bạn. Studio EMR (bản xem trước) là môi trường phát triển tích hợp (IDE) giúp các nhà khoa học dữ liệu và kỹ sư dữ liệu dễ dàng phát triển, trực quan hóa và gỡ lỗi các ứng dụng kỹ thuật dữ liệu và khoa học dữ liệu được viết bằng R, Python, Scala và PySpark. EMR Studio cung cấp sổ ghi chép Jupyter được quản lý đầy đủ và các công cụ như Spark UI và YARN Timeline Service để đơn giản hóa việc gỡ lỗi. Sổ tay EMR giúp bạn dễ dàng thử nghiệm và xây dựng các ứng dụng với Spark. Nếu thích, bạn có thể sử dụng Apache Zeppelin để tạo các sổ tay tương tác và cộng tác để khám phá dữ liệu bằng Spark.

Tìm hiểu thêm về Apache Spark tại đây

Tính năng và lợi ích

EMR có Thời gian hoạt động của Amazon EMR dành cho Apache Spark, một môi trường thời gian hoạt động được tối ưu hóa hiệu năng dành cho Apache Spark, được bật mặc định trên các cụm Amazon EMR. Thời gian chạy Amazon EMR dành cho Apache Spark có thể nhanh hơn gấp 3 lần so với các cụm không có thời gian chạy EMR và có khả năng tương thích API 100% với Apache Spark tiêu chuẩn. Hiệu năng được cải thiện này đồng nghĩa với khối lượng công việc chạy nhanh hơn và tiết kiệm chi phí điện toán mà không thực hiện bất kỳ thay đổi nào đối với các ứng dụng của bạn.

Bằng cách sử dụng công cụ thực thi đồ thị không theo chu trình (DAG), Spark có thể tạo ra các kế hoạch truy vấn hiệu quả cho các hoạt động chuyển đổi dữ liệu. Spark cũng lưu trữ dữ liệu đầu vào, đầu ra và trung gian trong bộ nhớ dưới dạng các tập hợp dữ liệu phân tán dạng cột linh hoạt, cho phép xử lý nhanh mà không có chi phí I/O, tăng hiệu năng của các khối lượng công việc lặp lại hoặc tương tác.

Apache Spark mặc định hỗ trợ Java, Scala, SQL và Python, cung cấp cho bạn nhiều ngôn ngữ để xây dựng các ứng dụng của mình. Ngoài ra, bạn có thể gửi các truy vấn SQL hoặc HiveQL bằng việc sử dụng mô-đun Spark SQL. Ngoài các ứng dụng đang chạy, bạn có thể sử dụng API Spark tương tác trực tiếp với Python hoặc Scala trong lệnh shell Spark, qua Studio EMR hoặc qua sổ tay Jupyter trên cụm của bạn. Hỗ trợ cho Apache Hadoop 3.0 trong EMR 6.0 mang lại hỗ trợ bộ chứa Docker giúp đơn giản hóa việc quản lý các thành phần phụ thuộc. Bạn cũng có thể tận dụng Sổ tay EMR không phụ thuộc vào cụm (dựa trên Jupyter) hoặc sử dụng Zeppelin để tạo các sổ tay tương tác và cộng tác để khám phá và trực quan hóa dữ liệu. Bạn có thể điều chỉnh và gỡ lỗi khối lượng công việc của mình trong bảng điều khiển EMR có Máy chủ lịch sử Spark lâu bền và nằm ngoài cụm.

Apache Spark chứa một số thư viện để giúp xây dựng các ứng dụng cho machine learning (MLlib), xử lý luồng dữ liệu (Spark Streaming) và xử lý biểu đồ (GraphX). Các thư viện này được tích hợp chặt chẽ trong hệ sinh thái Spark và chúng có thể được tận dụng ngay để giải quyết nhiều trường hợp sử dụng khác nhau. Ngoài ra, bạn có thể sử dụng các khung về deep learning như Apache MXNet với các ứng dụng Spark của bạn. Việc tích hợp với AWS Step Functions cho phép bạn thêm quy trình tự động hóa và điều phối quy trình làm việc phi máy chủ vào các ứng dụng của mình.

Gửi các tác vụ Apache Spark với API EMR Step, sử dụng Spark với EMRFS để truy cập trực tiếp dữ liệu trong S3, tiết kiệm chi phí bằng cách sử dụng dung lượng phiên bản Dùng ngay EC2, sử dụng Điều chỉnh quy mô được quản lý EMR để linh động thêm và loại bỏ dung lượng và khởi chạy các cụm hoạt động lâu dài hoặc tạm thời để phù hợp với khối lượng công việc của bạn. Bạn cũng có thể dễ dàng định cấu hình mã hóa Spark và xác thực bằng Kerberos thông qua việc sử dụng cấu hình bảo mật EMR. Ngoài ra, bạn có thể sử dụng Danh mục dữ liệu AWS Glue để lưu trữ siêu dữ liệu bảng Spark SQL hoặc sử dụng Amazon SageMaker với các quy trình máy học Spark của bạn. EMR cài đặt và quản lý Spark trên Hadoop YARN và bạn cũng có thể thêm các ứng dụng dữ liệu lớn khác trên cụm của mình. EMR với Apache Hudi cho phép bạn quản lý hiệu quả hơn việc thu thập dữ liệu thay đổi (CDC) và hỗ trợ với các quy định về quyền riêng tư như GDPR và CCPA bằng cách đơn giản hóa việc xóa hồ sơ. Nhấp vào đây để biết thêm chi tiết về các tính năng của EMR.

Trường hợp sử dụng

Sử dụng và xử lý dữ liệu theo thời gian thực từ Amazon Kinesis, Apache Kafka hoặc các luồng dữ liệu khác bằng Spark Streaming trên EMR. Thực hiện các phân tích luồng dữ liệu theo cách có dung sai cao và ghi kết quả lên S3 hoặc trên cụm HDFS.

Apache Spark trên EMR cung cấp MLlib cho các thuật toán machine learning có khả năng thay đổi quy mô hoặc bạn có thể tự sử dụng các thư viện của mình. Bằng cách lưu trữ các bộ dữ liệu trong bộ nhớ khi thực hiện một tác vụ, Spark mang đến hiệu năng tuyệt vời cho các truy vấn lặp lại thường gặp trong khối lượng công việc máy học. Bạn có thể nâng cao khả năng của Amazon SageMaker bằng cách kết nối phiên bản sổ ghi chép với một cụm Apache Spark chạy trên Amazon EMR với Amazon SageMaker Spark để dễ dàng đào tạo và lưu trữ các mô hình.

Sử dụng Spark SQL cho các truy vấn tương tác, có độ trễ thấp với SQL hoặc HiveQL. Spark trên EMR có thể tận dụng EMRFS, vì vậy, bạn có quyền truy cập vào bộ dữ liệu của mình trong S3, khi cần. Ngoài ra, bạn có thể sử dụng EMR Studio, EMR Notebooks, sổ ghi chép Zeppelin hoặc công cụ BI thông qua kết nối ODBC và JDBC.

Thành công của khách hàng

  • Yelp

    Nhóm nhắm mục tiêu quảng cáo của Yelp tạo ra các mô hình dự đoán để xác định khả năng người dùng tương tác với một quảng cáo. Bằng cách sử dụng Apache Spark trên Amazon EMR để xử lý lượng dữ liệu lớn nhằm giúp huấn luyện các mô hình machine learning, Yelp đã tăng doanh thu và tỷ lệ nhấp chuột vào quảng cáo.

  • The Washington Post

    The Washington Post sử dụng Apache Spark trên Amazon EMR để xây dựng các mô hình hỗ trợ công cụ đề xuất của trang web nhằm tăng sự gắn kết và hài lòng của người đọc. Các mô hình này tận dụng khả năng kết nối hiệu năng của Amazon EMR với Amazon S3 để cập nhật các mô hình gần theo thời gian thực.

  • Krux

    Là một phần của Nền tảng quản lý dữ liệu cho thông tin chi tiết của khách hàng, Krux chạy machine learning và xử lý chung khối lượng công việc bằng cách sử dụng Apache Spark. Krux sử dụng các cụm Amazon EMR tạm thời với công suất Amazon EC2 Spot để tiết kiệm chi phí và sử dụng Amazon S3 với EMRFS như một lớp dữ liệu cho Apache Spark.

    Đọc thêm »
  • GumGum

    GumGum, nền tảng quảng cáo theo hình ảnh và trên màn hình, sử dụng Spark trên Amazon EMR để dự báo tài nguyên quảng cáo, xử lý nhật ký nhấp chuột và phân tích đặc biệt dữ liệu phi cấu trúc trong Amazon S3. Những cải tiến về hiệu năng của Spark đã giúp GumGum tiết kiệm thời gian và tiền bạc cho những luồng công việc này.

    Đọc thêm »
  • Hearst Corporation

    Hearst Corporation là một công ty truyền thông và thông tin đa dạng lớn, có các khách hàng xem nội dung trên hơn 200 thuộc tính web. Sử dụng Apache Spark Streaming trên Amazon EMR, nhân viên biên tập của Hearst có thể giữ nhịp thời gian thực về các bài viết đang hoạt động tốt và chủ đề nào đang thịnh hành.

    Đọc thêm »
  • CrowdStrike

    CrowdStrike cung cấp bảo vệ điểm cuối để ngăn chặn vi phạm. Họ sử dụng Amazon EMR với Spark để xử lý hàng trăm terabyte dữ liệu sự kiện và tổng hợp dữ liệu thành các mô tả hành vi cấp cao hơn trên máy chủ. Từ dữ liệu đó, CrowdStrike có thể kéo dữ liệu sự kiện lại với nhau và xác định sự hiện diện của hoạt động độc hại.

    Đọc thêm »