Các dự án Apache liên quan đến Dữ liệu lớn (Big Data)

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật phần mềm: Xây dựng DataLake hỗ trợ gợi ý tập khách hàng trong ngành bán lẻ (Trang 40 - 46)

NGÀNH CÀN LÀM RÕ

CHƯƠNG 3 HỆ SINH THÁI HADOOP

3.5 Các dự án Apache liên quan đến Dữ liệu lớn (Big Data)

Bây giờ tụi em đã phát triển sự hiểu biết về cách chương trình hoạt động va được thực thi trong môi trường Hadoop, cách phân bồ tài nguyên cho

chương trình và cách tiếp cận dữ liệu được lưu trữ của Hadoop. Thông tin này chủ yêu liên quan đến quản lý cụm và xử lý ứng dụng tùy chỉnh, nhưng

có nhiều Dự án mã nguồn mở Apache có liên quan đến xử lý dữ liệu lớn sẽ

giúp xử lý dữ liệu.

3.5.1 Apache Zookeeper

Zookeeper là một Dự án Apache mã nguồn mở cung cấp cơ sở ha tang và dịch vụ tập trung cho phép đồng bộ hóa trên một cụm. Nó chịu trách

nhiệm duy trì đồng bộ hóa giữa các đối tượng khác nhau như các tệp cau hình, không gian tên phân cấp, nhắn tin, thông báo, v.v. Khung

Trang 38

Zookeeper chủ yếu được thiết kế dé sử dung trong đồng bộ hóa thiết lập trong môi trường phân cụm. Hãy tưởng tượng răng bạn cần xây dựng một ứng dụng cho môi trường phân tán cho 10 đến 20 máy chủ yêu cầu dịch

vụ đồng bộ hóa dé bảo trì dit liệu. Mặc dù thiết lập nhỏ như vậy, bạn sẽ phải viết các dịch vụ của riêng mình và đối mặt với bất kỳ vấn đề nào phát sinh từ đồng bộ hóa. Trong tình huống này, Zookeeper sẽ là một hỗ trợ tuyệt vời. Zookeeper cũng được thiết kế rất nhanh và hoạt động tốt

VỚI tai nặng trong môi trường cụm (cluster).

| Client |

| Leader |

| Server |

⁄ \ | Follower ; ồn

: Foll / i \

\ Client py ar i aril Mee Client |

J | Server | \. /

Follower Follower

Server Server |

Hình 11: Mô hình kiến trúc của Zookeeper

3.5.2 Apache Kafka

Apache Kafka là hệ thống xử lý nguồn cấp dữ liệu thời gian thực có thê nhận dữ liệu từ nhiều nguồn được gọi là Nhà sản xuất (Producer) và có thể cung cấp đữ liệu cho nhiều điểm đến được gọi là Người tiêu dùng (Consumer) theo cách thức liên tục. Hình dưới đây minh họa luồng dữ

liệu trong khung Kafka:

Trang 39

Hình 12: Mô hình kiến trúc của Kafka

Mỗi luồng dữ liệu đến và đi từ cụm Kafka được gọi là Chủ đề (topic).

Một chủ dé (Topic) ghi nhãn dữ liệu đến từ các nhà sản xuất khác nhau.

Nó cũng giúp Consumer yêu cầu một bộ dữ liệu cụ thé từ cum Kafka

dưới dạng một Topic bắt buộc. Hình dưới đây minh họa cơ chế bên trong

của cụm Kafka:

Kafka Cluster

Apache Kafka không chỉ dành cho Hadoop; nó có thể được sử dụng trong

Trang 40

3.5.3

mọi tình huông xử lý luông đâu vào và đâu ra. Trong Hadoop, với sự trợ

giúp của Kafka, chúng ta có thé phân tích luồng dit liệu khi nó đến, thay

vì thu thập dữ liệu trước rồi chạy các công việc hàng loạt.

Confluent

Confluent là một chương trình mã nguồn nguồn mở được thiết kế cho

nhiêu mục đích với mục đích chính là một nên tảng cho việc streaming

các sự kiện (Event Streaming Platform) va trung tâm của Confluent là

Apache Kafka. Nó có các thành phần xử lý khác nhau, như sau:

Kafka Brokers : Nó là thành phần chịu sự bền bi của dữ liệu (data

persistency)

Kafka Java Client API:

+ Producer API: là 1 API giúp cho các ứng dụng có thé san xuất các

ban streaming records

+ Consumer API: là 1 API giúp cho các ứng dụng có thé theo dõi va

xử ly các luồng streaming dữ liệu

+Streams API: giúp cho ứng dung của mình đóng vai trò như là 1

phiên bản của kafka ( có khả năng xử lý luồng đữ liệu - streaming) +Connect API: giúp cho việc truyền dữ liệu giữa Kafka và các hệ thống khác theo một cách tiện dụng và mở rộng được

Control Center: La 1 hệ thông với giao diện giúp việc theo dõi và quan

lý Confluent KsqIDB : là 1 ngôn ngữ SQL với mục đích xử lý các dữ liệu đang

được streaming và các sự kiện của streaming, ksqIDB có các đặc tính

có thê mở rộng được (scalable), mềm dẻo (elastic), xử lý dữ liệu thời gian thực và khả năng chịu lỗi

Confluent Schema Registry :Đề đảm bảo các thành phan khác nhau

Trang 41

của hệ thống có thé tương tác với nhau,thi các hệ thống phải sử dụng 1

format với nhau,và Confluent Schema Registry quản lý việc đảm bao

data ở các phần trong hệ thống giống nhau

— Confluent REST proxy : giúp cho việc xây dựng các ứng dụng có thé

tương tác với Kafka trở nên đơn giản hơn bằng việc tạo nên một

service (dịch vụ ) cho các RESTful HTTP

Hình dưới đây minh họa các thành phần của Confluent:

Other Log Events loT Data Web Events Events

DATA REAL-TIME

INTEGRATION Confluent Platform APPLICATIONS

Hadoop Manggetiens & Monitoring Transformation

Control Center acutity

Database prise M Hens ae Custom Apps

Data Compatibility

Wee Schema Registry Analytics

Development & Connectivity

CRM lients ectors | RE KSQL Monitoring

Apache Kafka”

Other kho Ma : zai Other

[ Customer self-managed l c ent Í @ commerciat sorrware

elle Confluen @ communrry sorrware

Hình 14: Mô hình kiến trúc của Apache Confluent

3.5.4 Apache Spark

Apache Spark trong một chương trình mã nguồn nguồn mở được thiết kế cho nhiều mục đích. Nó có các thành phần xử lý khác nhau, như sau:

— Spark Core: Nó giống như bộ não chính của Spark. Nó xử lý các chức

năng quan trọng nhất trong Spark, chăng hạn như lập lịch tác vụ.

— Spark SQL: Nó được thiết kế dé làm việc với đữ liệu có cấu trúc. Nó có

thê chạy SQL cũng như các truy van HiveQL dé tích hợp liền mach Spark trong một ứng dụng hiện có. Nó cũng hỗ trợ các trình kết nối JDBC và

Trang 42

ODBC theo tiêu chuẩn ngành dé kết nối với các công cu Business

Intelligence.

Spark Streaming: Nó được thiết kế đề hoạt động với các luồng đữ liệu

theo cách có thé mở rộng và chịu lỗi. Nó phân chia dữ liệu truyền phát

thành các lô nhỏ và sau đó thực hiện một công việc. Nó cũng có thé được liên kết với một luồng dữ liệu hiện có, như trong HDFS, Kafka và Flume. Bạn cũng có thể tạo nguồn dữ liệu của riêng ban nếu cần.

MLib: Nó được thiết kế đề thực hiện thuật toán học máy và thực hiện

phân tích thống kê trên dữ liệu lớn của bạn với khả năng xử lý siêu nhanh của Spark. Danh sách các chủ đề thuật toán bao gồm phân loại, hồi quy,

cây quyết định, rừng ngẫu nhiên và cây được tăng cường độ dốc. Nó cũng chứa các thuật toán liên quan đến khuyến nghị, phân cụm, mô hình chủ

đề, các mục thường xuyên, quy tắc kết hợp và khai thác mẫu tuần tự.

GraphX: Nó được thiết kế dé phân tích liên quan đến đồ thị. Nó có một

danh sách lớn các thuật toán đã được đóng góp bởi người dùng của nó.

Hình đưới đây minh họa các thành phần của Spark trong Hệ sinh thái

Hadoop:

Trang 43

Spark Spark

SOI Streaming

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật phần mềm: Xây dựng DataLake hỗ trợ gợi ý tập khách hàng trong ngành bán lẻ (Trang 40 - 46)

Tải bản đầy đủ (PDF)

(152 trang)