Apache Hadoop trên Amazon EMR

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

Apache™ Hadoop® là dự án phần mềm mã nguồn mở có thể sử dụng để xử lý hiệu quả các bộ dữ liệu lớn. Thay vì sử dụng một máy tính lớn để xử lý và lưu trữ dữ liệu, Hadoop cho phép nhóm phần cứng thông dụng lại với nhau để phân tích song song các bộ dữ liệu quy mô lớn.

Có nhiều ứng dụng và công cụ thực thi trên hệ sinh thái Hadoop, cung cấp nhiều công cụ khác nhau để đáp ứng nhu cầu khối lượng công việc phân tích của bạn. Amazon EMR giúp dễ dàng tạo và quản lý các cụm phiên bản Amazon EC2 được cấu hình đầy đủ, linh hoạt, chạy Hadoop và các ứng dụng khác trên hệ sinh thái Hadoop.

Ứng dụng và framework trên hệ sinh thái Hadoop

Hadoop thường nói đến dự án Apache Hadoop, bao gồm MapReduce (framework thực thi), YARN (trình quản lý tài nguyên) và HDFS (bộ lưu trữ phân tán). Bạn cũng có thể cài đặt Apache Tez, một khung thế hệ tiếp theo có thể sử dụng làm công cụ thực thi thay cho Hadoop MapReduce. Amazon EMR cũng bao gồm EMRFS, một bộ kết nối cho phép Hadoop sử dụng Amazon S3 làm lớp lưu trữ.

Tuy nhiên, cũng có các ứng dụng và framework khác trên hệ sinh thái Hadoop, bao gồm công cụ cho phép truy vấn độ trễ thấp, GUI để truy vấn tương tác, nhiều giao diện khác nhau như SQL và cơ sở dữ liệu NoSQL phân tán. Hệ sinh thái Hadoop bao gồm nhiều công cụ mã nguồn mở được thiết kế để dựng tính năng bổ sung trên các thành phần lõi của Hadoop và bạn có thể sử dụng Amazon EMR để dễ dàng cài đặt và cấu hình các công cụ như Hive, Pig, Hue, Ganglia, Oozie và HBase trên cụm của bạn. Bạn cũng có thể chạy các khung khác như Apache Spark để xử lý trong bộ nhớ hoặc Presto cho SQL tương tác, ngoài Hadoop trên Amazon EMR.

Hadoop: những thành phần cơ bản

Amazon EMR cài đặt và cấu hình các ứng dụng bằng phương thức lập trình trên dự án Hadoop, bao gồm Hadoop MapReduce, YARN, HDFS và Apache Tez trên các nút trong cụm của bạn.

Hadoop MapReduce và Tez, các công cụ thực thi trên hệ sinh thái Hadoop, xử lý khối lượng công việc bằng cách sử dụng những framework có khả năng chia tác vụ thành những phần việc nhỏ hơn để phân tán trên các nút thuộc cụm Amazon EMR của bạn. Các công cụ này được xây dựng với kỳ vọng rằng bất kỳ công cụ nào thuộc cụm của bạn cũng có thể gặp sự cố vào bất kỳ lúc nào và được thiết kế có khả năng chịu lỗi. Nếu máy chủ chạy tác vụ gặp sự cố, Hadoop chạy lại tác vụ đó trên một công cụ khác cho đến khi hoàn tất.

Bạn có thể viết chương trình MapReduce và Tez bằng Java, sử dụng Phát trực tuyến Hadoop để thực thi song song mã cụm, sử dụng Hive và Pig để đạt mức độ trừu tượng hóa ở cấp cao hơn so với MapReduce và Tez hoặc các công cụ khác để tương tác với Hadoop.

Bắt đầu với Hadoop 2, quản lý tài nguyên được quản lý bởi Yet Another Resource Negotiator (YARN). YARN theo dõi toàn bộ các tài nguyên trong cụm của bạn và đảm bảo rằng các tài nguyên này được phân bổ động để hoàn tất các tác vụ trong tác vụ xử lý của bạn. YARN có khả năng quản lý khối lượng công việc Hadoop MapReduce và Tez cũng như các framework phân tán khác như Apache Spark.

Bằng cách sử dụng Hệ thống tệp EMR (EMRFS) trên cụm Amazon EMR, bạn có thể tận dụng Amazon S3 làm lớp dữ liệu cho Hadoop. Amazon S3 có quy mô rất linh hoạt, có mức chi phí thấp và được thiết kế có độ bền cao, khiến hệ thống này trở thành kho chứa dữ liệu tuyệt vời để xử lý dữ liệu lớn. Bằng cách lưu trữ dữ liệu trên Amazon S3, bạn có thể tách lớp điện toán khỏi lớp lưu trữ, cho phép bạn xác định kích thước cụm Amazon EMR cho khối lượng CPU và bộ nhớ cần có cho khối lượng công việc thay vì bố trí thêm nút trên cụm của bạn để tối đa hóa bộ lưu trữ trên cụm. Ngoài ra, bạn có thể dừng cụm Amazon EMR khi cụm ở trạng thái rảnh để tiết kiệm chi phí trong khi dữ liệu của bạn vẫn ở trên Amazon S3.

EMRFS được tối ưu hóa cho Hadoop để trực tiếp đọc và ghi song song lên Amazon S3 với hiệu suất cao và có thể xử lý đối tượng được mã hóa bằng tính năng mã hóa phía máy chủ và phía máy khách của Amazon S3. EMRFS cho phép bạn sử dụng Amazon S3 làm kho dữ liệu và có thể sử dụng Hadoop trên Amazon EMR làm lớp truy vấn linh hoạt.

Hadoop cũng bao gồm hệ thống lưu trữ phân tán, Hệ thống tệp Hadoop (HDFS), lưu trữ dữ liệu dưới dạng các khối lớn trên nhiều ổ đĩa cục bộ trên cụm của bạn. HDFS có hệ số sao chép có thể cấu hình được (với hệ số mặc định bằng 3x), giúp cải thiện độ khả dụng và độ bền. HDFS giám sát quá trình sao chép và cân bằng dữ liệu của bạn giữa các nút khi nút gặp sự cố và nút mới được bổ sung thêm.

HDFS được tự động cài kèm sẵn Hadoop trên cụm Amazon EMR và bạn có thể sử dụng HDFS kết hợp với Amazon S3 để lưu trữ dữ liệu đầu vào và đầu ra. Bạn có thể dễ dàng mã hóa HDFS bằng cấu hình bảo mật Amazon EMR. Đồng thời, Amazon EMR cấu hình Hadoop để sử dụng HDFS và ổ đĩa cục bộ cho dữ liệu trung gian được tạo ra trong thời gian thực hiện các tác vụ Hadoop MapReduce, kể cả khi dữ liệu đầu vào của bạn nằm trên Amazon S3.

Lợi thế của Apache Hadoop trên Amazon EMR

Bạn có thể khởi chạy một cụm Hadoop mới linh hoạt và nhanh chóng hoặc thêm máy chủ vào cụm Amazon EMR hiện tại, giúp giảm đáng kể thời gian cần thiết để cung cấp tài nguyên đến người dùng và nhà khoa học dữ liệu. Sử dụng Hadoop trên nền tảng AWS có thể cải thiện rất nhiều tính linh hoạt của tổ chức bằng cách giảm thiểu chi phí và thời gian cần thiết để phân phối tài nguyên cho thử nghiệm và phát triển.

Việc cấu hình, kết nối mạng, cài máy chủ, cấu hình bảo mật và bảo trì quản trị Hadoop có thể là công việc phức tạp và đầy thách thức. Là dịch vụ được quản lý, Amazon EMR đáp ứng các yêu cầu cơ sở hạ tầng Hadoop nên bạn có thể tập trung vào công việc chính của mình.

Bạn có thể dễ dàng tích hợp môi trường Hadoop với các dịch vụ khác như Amazon S3, Amazon Kinesis, Amazon RedshiftAmazon DynamoDB để cho phép di chuyển dữ liệu, quy trình làm việc và phân tích giữa nhiều dịch vụ khác nhau trên nền tảng AWS. Ngoài ra, bạn có thể sử dụng Danh mục dữ liệu AWS Glue làm kho siêu dữ liệu được quản lý cho Apache Hive và Apache Spark.

Nhiều tác vụ Hadoop có bản chất khó thực hiện. Ví dụ: tác vụ ETL có thể chạy hàng giờ, hàng ngày hoặc hàng tháng trong khi việc mô hình hóa tác vụ cho các hãng tài chính hoặc sắp xếp chuỗi gien có thể xảy ra vài lần trong năm. Sử dụng Hadoop trên Amazon EMR cho phép bạn tăng tốc các cụm khối lượng công việc này một cách dễ dàng, lưu kết quả và đóng tài nguyên Hadoop khi không cần sử dụng nữa, để tránh chi phí hạ tầng không cần thiết. EMR 6.x hỗ trợ Hadoop 3, cho phép YARN NodeManager khởi chạy các bộ chứa trực tiếp trên máy chủ cụm EMR hoặc bên trong bộ chứa Docker. Vui lòng xem các tài liệu của chúng tôi để tìm hiểu thêm.

Khi sử dụng Hadoop trên Amazon EMR, bạn có thể khởi chạy các cụm một cách linh hoạt trên số lượng Vùng sẵn sàng tùy ý trong bất kỳ khu vực AWS nào. Một vấn đề hoặc mối đe dọa có thể xảy ra trong một khu vực hay vùng có thể dễ dàng được cách ly bằng cách khởi chạy cụm ở một vùng khác trong vài phút.

Hoạch định công suất trước khi triển khai môi trường Hadoop thường dẫn đến việc tài nguyên tốn kém không được sử dụng hoặc giới hạn về tài nguyên. Với Amazon EMR, bạn có thể tạo cụm có công suất yêu cầu trong vài phút và sử dụng Mở rộng quy mô được quản lý EMR để tăng và giảm quy mô một cách linh hoạt trên các nút.

Hadoop và dữ liệu lớn có quan hệ với nhau như thế nào?

Hadoop thường được sử dụng để xử lý khối lượng công việc dữ liệu lớn vì hệ thống có quy mô linh hoạt trên diện rộng. Để tăng công suất xử lý cụm Hadoop của bạn, thêm nhiều máy chủ có tài nguyên CPU và bộ nhớ yêu cầu để đáp ứng nhu cầu của bạn.

Hadoop đảm bảo độ bền và độ khả dụng cao trong khi vẫn có khả năng xử lý song song khối lượng công việc phân tích điện toán. Độ khả dụng, độ bền và quy mô linh hoạt trong xử lý khiến Hadoop mặc nhiên phù hợp cho khối lượng công việc dữ liệu lớn. Bạn có thể sử dụng Amazon EMR để tạo và cấu hình một cụm phiên bản Amazon EC2 chạy Hadoop chỉ trong vài phút và bắt đầu tạo ra giá trị từ dữ liệu của bạn.

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

Apache và Hadoop là các thương hiệu của Apache Software Foundation.

Có thể sử dụng Hadoop để phân tích dữ liệu về luồng dữ liệu nhấp chuột trên màn hình của người dùng để phân loại người dùng và tìm hiểu sở thích người dùng. Nhà quảng cáo cũng có thể phân tích luồng dữ liệu nhấp chuột trên màn hình của người dùng và nhật ký lượt hiển thị quảng cáo để đảm bảo quảng cáo hiệu quả hơn.

Tìm hiểu thêm về cách Razorfish sử dụng Hadoop trên Amazon EMR để phân tích luồng dữ liệu nhấp chuột

Có thể sử dụng Hadoop để xử lý nhật ký do các ứng dụng web và di động tạo ra. Hadoop giúp bạn biến hàng petabyte dữ liệu không có cấu trúc hoặc bán cấu trúc thành thông tin chi tiết hữu ích về ứng dụng của bạn hoặc người dùng.

Tìm hiểu cách Yelp sử dụng Hadoop trên Amazon EMR để thúc đẩy các tính năng chính của trang web

 

Ứng dụng trên hệ sinh thái Hadoop như Hive cho phép người dùng tận dụng Hadoop MapReduce bằng cách sử dụng giao diện SQL, cho phép phân tích ở kho dữ liệu quy mô rộng, phân tán và có khả năng chịu lỗi. Sử dụng Hadoop để lưu trữ dữ liệu và cho phép người dùng gửi truy vấn dữ liệu thuộc mọi kích thước.

Xem cách Netflix sử dụng Hadoop trên Amazon EMR để vận hành kho dữ liệu có quy mô petabyte

Có thể sử dụng Hadoop để xử lý khối lượng dữ liệu gen cực lớn và các bộ dữ liệu khoa học lớn khác một cách nhanh chóng và hiệu quả. AWS đã giúp công khai dữ liệu của Dự án 1000 bộ gen cho cộng đồng sử dụng miễn phí.

Đọc thêm về Nghiên cứu gen trên AWS

 

Có quy mô linh hoạt trên diện rộng và chi phí thấp hơn, Hadoop phù hợp một cách lý tưởng cho các khối lượng công việc ETL thông thường như thu thập, phân loại, ghép nối và tổng hợp các bộ dữ liệu lớn để các hệ thống tầng dưới dễ dàng sử dụng hơn.

Đọc về cách Euclid sử dụng Hadoop trên Amazon EMR cho quá trình ETL và tổng hợp dữ liệu