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

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:

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.

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.


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.


