Xử lý dữ liệu mạng xã hội trên Hadoop Cluster với Raspberry Pi

Social Media Data Processing on Raspberry Pi Hadoop Cluster

Sự phát triển mạnh mẽ của các nền tảng mạng xã hội như Reddit đã tạo ra lượng dữ liệu khổng lồ phát sinh liên tục theo thời gian thực, đặt ra những thách thức lớn về thu thập, lưu trữ, quản lý và khai thác thông tin. Việc xây dựng các hệ thống xử lý dữ liệu lớn có khả năng vận hành ổn định, đáp ứng tốt tốc độ và quy mô của dữ liệu mạng xã hội đang là nhu cầu cấp thiết trong nhiều lĩnh vực như nghiên cứu xã hội, truyền thông, kinh doanh, và khoa học dữ liệu. Trước yêu cầu đó, đề tài này tập trung vào việc thiết kế và xây dựng một hệ thống hoàn chỉnh cho phép thu thập dữ liệu Reddit theo thời gian thực, truyền tải dữ liệu hiệu quả qua Apache Kafka, lưu trữ bền vững trên hệ thống tệp phân tán HDFS và tiến hành các tác vụ phân tích, truy vấn dữ liệu sử dụng Apache Spark. Hệ thống được triển khai trên kiến trúc phân tán với một node master và hai node worker, nhằm tối ưu hóa khả năng mở rộng, phân phối tài nguyên và nâng cao hiệu suất xử lý dữ liệu lớn.

Quá trình thu thập dữ liệu được tự động hóa bằng PRAW, cho phép thu nhận liên tục các bài viết và bình luận mới từ Reddit, đảm bảo dòng dữ liệu đầu vào luôn cập nhật theo thời gian thực. Dữ liệu sau đó được gửi vào Apache Kafka, đóng vai trò như một hàng đợi thông điệp phân tán chịu tải lớn, giúp giải quyết các vấn đề về đồng bộ hóa và truyền tải dữ liệu giữa các thành phần trong hệ thống. Tiếp theo, dữ liệu được lưu trữ tập trung trên HDFS với mức độ an toàn, tin cậy và khả năng mở rộng linh hoạt, tạo nền tảng vững chắc cho các tác vụ phân tích sâu hơn. Apache Spark, kết hợp cùng Spark SQL, được sử dụng để thực hiện các truy vấn, tổng hợp và phân tích xu hướng trực tiếp trên kho dữ liệu lớn. Việc áp dụng Spark cho phép khai thác dữ liệu một cách hiệu quả với tốc độ xử lý cao, tận dụng tối đa khả năng song song hóa và phân tán của cụm máy chủ. Các kết quả thực nghiệm xác nhận hệ thống đáp ứng tốt các tiêu chí về tính liên tục, độ ổn định, hiệu suất và độ tin cậy trong việc thu thập, lưu trữ và phân tích dữ liệu Reddit theo thời gian thực.

Đề tài này không chỉ góp phần cung cấp một giải pháp khả thi cho bài toán xử lý dữ liệu mạng xã hội ở quy mô lớn mà còn tạo nền tảng vững chắc để phát triển các hướng nghiên cứu tiếp theo như phân tích cảm xúc, nhận diện chủ đề, dự báo xu hướng, hoặc mở rộng tích hợp với các nguồn dữ liệu khác trong tương lai. Những đóng góp này khẳng định tiềm năng ứng dụng rộng rãi của hệ thống trong thực tiễn và giá trị lâu dài đối với các bài toán phân tích dữ liệu lớn từ mạng xã hội.

TÁC GIẢ

Nguyễn Phương Minh Trí

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

TỔNG QUAN

Trong thời đại bùng nổ của công nghệ thông tin, dữ liệu đã trở thành nguồn tài nguyên quý giá, đóng vai trò quan trọng trong hầu hết các lĩnh vực của đời sống xã hội, từ kinh tế, giáo dục, y tế, cho đến truyền thông, giải trí và nghiên cứu khoa học. Sự phát triển mạnh mẽ của các nền tảng mạng xã hội như Reddit, Twitter, Facebook, TikTok… đã góp phần tạo ra một khối lượng dữ liệu khổng lồ với tốc độ tăng trưởng chưa từng có tiền lệ. Đặc biệt, dữ liệu phát sinh theo thời gian thực (real-time data) ngày càng giữ vai trò then chốt trong việc nắm bắt xu hướng, dự báo sự kiện, cũng như hỗ trợ ra quyết định một cách kịp thời, hiệu quả. 

Reddit là một trong những diễn đàn trực tuyến lớn nhất thế giới, nơi hội tụ hàng triệu người dùng tham gia thảo luận, chia sẻ, phản hồi về mọi lĩnh vực của đời sống. Các chủ đề “hot”, bình luận, lượt bình chọn (upvote/downvote), và cảm xúc của cộng đồng trên Reddit không chỉ phản ánh ý kiến cá nhân mà còn cho thấy những xu hướng, quan điểm chung trong xã hội. Do đó, việc thu thập, lưu trữ và phân tích dữ liệu Reddit theo thời gian thực sẽ mang lại giá trị lớn cho các tổ chức truyền thông, doanh nghiệp, nhà nghiên cứu xã hội và cả cá nhân quan tâm tới dữ liệu mở. 

Tuy nhiên, việc xử lý khối lượng dữ liệu lớn (Big Data) từ các nền tảng như Reddit đặt ra nhiều thách thức về hạ tầng, tốc độ truy xuất, khả năng mở rộng, lưu trữ lâu dài và khai thác hiệu quả. Các giải pháp truyền thống không còn đáp ứng được yêu cầu về cả hiệu năng lần tính linh hoạt. Do đó, việc ứng dụng các công nghệ Big Data hiện đại như Hadoop, HDFS, Spark, Kafka vào việc xây dựng hệ thống thu thập và phân tích dữ liệu đã trở thành xu thế tất yếu trong nghiên cứu và thực tiễn. 

Trước bối cảnh đó, đề tài “Xử lý dữ liệu mạng xã hội trên Hadoop Cluster với Raspberry Pi” được thực hiện nhằm xây dựng một giải pháp hoàn chỉnh: từ thu thập dữ liệu Reddit theo thời gian thực qua Kafka, lưu trữ an toàn trên HDFS, đến phân tích dữ liệu bằng Spark. Hệ thống sử dụng kiến trúc phân tán với một node master 4 (quản lý HDFS, Spark, Kafka, Zookeeper, Livy) và các node worker (datanode, Spark worker), đảm bảo khả năng mở rộng và hiệu suất cao. 

Đề tài đã xây dựng hệ thống các API backend cho phép quản lý dữ liệu, upload file lên HDFS, thực hiện truy vấn Spark SQL cũng như theo dõi trạng thái các thành phần trong hệ thống, qua đó đơn giản hóa quy trình khai thác và phân tích dữ liệu lớn. 

Hệ thống này không chỉ giúp sinh viên làm chủ các công nghệ dữ liệu lớn mà còn có tiềm năng ứng dụng thực tiễn trong khai thác, dự báo xu hướng xã hội từ mạng xã hội, và là nền tảng mở rộng cho các nghiên cứu về dữ liệu lớn và trí tuệ nhân tạo sau này. 

Mục tiêu 

• Xây dựng một hệ thống cho phép thu thập dữ liệu Reddit theo thời gian thực và lưu trữ trên hệ thống file phân tán HDFS. 

• Tích hợp Spark để thực hiện các truy vấn phân tích dữ liệu, phát hiện và đánh giá xu hướng từ dữ liệu Reddit thu thập được.

• Ứng dụng Kafka làm kênh truyền dữ liệu thời gian thực giữa các thành phần của hệ thống. 

• Xây dựng các API backend quản lý dữ liệu, upload file, thực thi truy vấn Spark SQL và theo dõi trạng thái các dịch vụ trong hệ thống. 

• Tạo nền tảng thực tiễn cho việc nghiên cứu, triển khai và mở rộng các giải pháp xử lý dữ liệu lớn, dữ liệu thời gian thực trong thực tế.

Đối tượng 

• Dữ liệu các bài viết, bình luận, chủ đề trên nền tảng Reddit, được thu thập thông qua Reddit API. 

• Dữ liệu dạng văn bản (text), bán cấu trúc (semi-structured) ở định dạng JSON. 

• Người dùng có nhu cầu quản lý, phân tích và khai thác dữ liệu lớn từ các mạng xã hội, đặc biệt là Reddit. 

• Các thành phần kỹ thuật của hệ thống như HDFS, Spark, Kafka, Livy, API backend

Phạm vi nghiên cứu 

• Thu thập dữ liệu giới hạn ở nền tảng Reddit và các subreddits được lựa chọn 

• Chỉ tập trung xử lý và phân tích dữ liệu văn bản, chưa mở rộng sang dữ liệu hình ảnh hoặc video. 

• Hệ thống triển khai trên mô hình gồm một node master và hai node worker, có thể mở rộng về sau. 

• Chức năng phân tích chủ yếu là truy vấn Spark SQL và quan sát xu hướng, chưa tích hợp các mô hình machine learning, phân tích cảm xúc nâng cao. 

• Phạm vi nghiên cứu chủ yếu là thử nghiệm, minh họa khả năng xử lý dữ liệu lớn và real-time bằng công nghệ Big Data hiện đại.

PHÂN TÍCH THIẾT KẾ ỨNG DỤNG

Kiến trúc hệ thống và thành phần chính

image 40

Hệ thống được triển khai trên mô hình phân tán, các thành phần chạy trên các máy ảo khác nhau trong cùng một mạng nội bộ, đảm bảo hiệu năng và tính sẵn sàng.

1. Data Collector (PRAW Collector) 

Chức năng: Kết nối đến Reddit thông qua API, thu thập bài viết hoặc comment mới theo từ khóa hoặc subreddit, chuyển đổi về dạng JSON record. 

Cách hoạt động: 

• Sử dụng thư viện PRAW. 

• Định kỳ truy vấn dữ liệu mới. 

• Đẩy dữ liệu vào Kafka topic bằng Producer API. 

2. Message Queue (Kafka Cluster) 

Chức năng: 

• Lưu trữ tạm thời dữ liệu streaming, tách biệt hoàn toàn quá trình thu thập và xử lý. 

• Đảm bảo không mất dữ liệu ngay cả khi Spark hoặc downstream pipeline tạm dừng. 

Cách hoạt động: 

• PRAW Collector gửi message tới topic định sẵn.

 • Spark Consumer hoặc các dịch vụ downstream có thể đọc lại message bất cứ lúc nào . 

3. Backend API Server (BE) 

Chức năng: 

• Đóng vai trò trung tâm điều phối hệ thống . 

• Quản lý trạng thái pipeline, submit các job Spark, thao tác file với HDFS (qua WebHDFS), tạo topic Kafka, kiểm tra trạng thái service… 

Cách hoạt động: 

• Gửi job Spark lên Livy qua HTTP REST API.

• Kiểm tra status và log các job Spark. 

• Thao tác với HDFS qua WebHDFS (tạo, xóa, truy vấn file/directory). 

• Kiểm tra trạng thái các dịch vụ (HDFS, Kafka, Spark). 

4. Livy Server 

Chức năng: Là một REST Server trung gian để BE submit job Spark quản lý và monitor các Spark job trên cluster. 

Cách hoạt động:

• BE gửi HTTP request (submit job, get status, get log) đến Livy. 

• Livy khởi tạo Spark Driver cho từng job, chuyển task đến Spark Standalone. 

• Livy trả trạng thái và log job về cho BE. 

5. Spark Standalone (Master, Driver, Workers) 

Chức năng: Xử lý, biến đổi, tổng hợp, phân tích dữ liệu lớn từ Kafka và ghi lại vào HDFS (có thể streaming hoặc batch). 

Cách hoạt động:

• Spark Driver do Livy quản lý nhận job, lập kế hoạch phân tán task cho Spark Workers. 

• Các Spark Worker song song đọc dữ liệu từ Kafka, xử lý và ghi dữ liệu partition vào HDFS.

• Spark Master điều phối, phân công task. 

6. HDFS Cluster Chức năng: Lưu trữ dữ liệu đầu vào, dữ liệu đầu ra, checkpoint, metadata trên hệ thống file phân tán chịu lỗi cao. 

Cách hoạt động: 

• DataNode lưu dữ liệu thực tế, NameNode quản lý metadata. 

• BE thao tác với HDFS qua WebHDFS (REST API) để quản lý file và folder. 

Mô hình triển khai này giúp hệ thống dễ dàng nâng cấp, mở rộng, bảo trì và tối ưu hiệu năng, đồng thời đảm bảo an toàn, dự phòng và khôi phục khi xảy ra sự cố.

TRIỂN KHAI

Kiến trúc triển khai hệ thống

Hệ thống được triển khai trên môi trường mạng gồm nhiều máy ảo và máy thật, tổ chức thành hai vùng mạng chính: mạng xử lý dữ liệu lớn (Bis Data Cluster – 192.168.142.0/24) và mạng ứng dụng (Application Network – 192.168.0.0/24). Sơ đồ kiến trúc triển khai vật lý như sau: 

image 41

Mô tả môi trường và cấu hình phần cứng 

Hệ thống được xây dựng trên nền tảng kết hợp giữa máy tính cá nhân và các máy ảo, triển khai thông qua phần mềm VMware Workstation 17.5. Giải pháp này cho phép mô phỏng một cách toàn diện các thành phần cốt lõi của một cụm xử lý dữ liệu lớn (Big Data Cluster) theo kiến trúc phân tán hiện đại. Việc sử dụng môi trường ảo hóa không chỉ giúp tối ưu tài nguyên phần cứng, dễ mở rộng, quản lý, mà còn đảm bảo các điều kiện thử nghiệm thực tế tương đương với mô hình triển khai trên các hệ thống dữ liệu lớn chuyên nghiệp

KẾT QUẢ ĐẠT ĐƯỢC

Kết quả triển khai hệ thống 

Sau quá trình xây dựng và cấu hình, hệ thống được triển khai thành công trên mô hình gồm 1 node master và 2 node worker chạy trên môi trường ảo hóa. Các thành phần chính (PRAW Collector, Kafka, HDFS, Spark, Livy, Backend API) hoạt động ổn định, phối hợp với nhau nhịp nhàng, đảm bảo pipeline xử lý dữ liệu Reddit thu thập, truyền tải, lưu trữ đến phân tích đều thực hiện tự động.

image 42

Dữ liệu được thu thập liên tục từ các subreddit mục tiêu thông qua API của Reddit, lưu vào Kafka, chuyển sang Spark để xử lý và cuối cùng được ghi xuống HDFS dưới dạng file Parquet. Các API backend đã phát triển cũng cho phép query, quản lý và kiểm tra trạng thái pipeline một cách dễ dàng. 

image 43
image 44

KẾT LUẬN

Đề tài đã xây dựng thành công một hệ thống thu thập và phân tích dữ liệu Reddit theo thời gian thực trên nền tảng Big Data phân tán. Hệ thống tích hợp hiệu quả các công nghệ chủ chốt như PRAW, Apache Kafka, HDFS, Spark và Livy, cho phép thu thập dữ liệu liên tục, lưu trữ an toàn trên hệ thống file phân tán, đồng thời thực hiện các truy vấn và phân tích dữ liệu lớn một cách nhanh chóng và linh hoạt thông qua các API backend. Kết quả triển khai thực tế cho thấy hệ thống đáp ứng tốt các yêu cầu về khả năng mở rộng, tính ổn định và hiệu quả xử lý, đồng thời thể hiện tiềm năng ứng dụng rộng rãi trong các bài toán phân tích dữu liệu mạng xã hội hiện đại.

HƯỚNG PHÁT TRIỂN 

• Mở rộng khả năng thu thập dữ liệu sang các nền tảng mạng xã hội khác như Twitter, Facebook, hoặc các nguồn dữ liệu trực tuyến đa dạng. 

• Tích hợp các mô hình phân tích nâng cao như phân tích cảm xúc, phát hiện chủ đề, học máy nhằm khai thác sâu giá trị tiềm ẩn trong dữ liệu.

• Phát triển dashboard trực quan hóa dữ liệu và xu hướng theo thời gian thực, nâng cao trải nghiệm người dùng. 

• Nâng cao hiệu năng hệ thống, triển khai cơ chế tự động mở rộng tài nguyên để đáp ứng khối lượng dữ liệu lớn và thay đổi liên tục. 

• Bổ sung các chức năng giám sát, cảnh báo thông minh nhằm đảm bảo an toàn và duy trì hoạt động ổn định cho toàn bộ hệ thống.