Bối cảnh và vấn đề nghiên cứu

Sự phát triển của công nghệ thông tin và truyền thông trong những thập niên gần đây đã dẫn đến hiện tượng bùng nổ dữ liệu trên phạm vi toàn cầu. Theo số liệu được tác giả nêu trong văn bản, vào năm 2000, chỉ có khoảng 1/4 lượng thông tin trên thế giới được lưu trữ dưới dạng kỹ thuật số, trong khi 3/4 còn lại nằm trên giấy tờ, phim và các phương tiện analog. Tuy nhiên, khối lượng dữ liệu kỹ thuật số sau đó tăng theo cấp số nhân (chu kỳ tăng gấp đôi sau mỗi 3 năm), đảo ngược hoàn toàn cục diện: đến thời điểm nghiên cứu, chỉ còn dưới 2% tổng lượng thông tin chưa được số hóa.

Bối cảnh thực tiễn này đặt ra những thách thức lớn đối với hạ tầng công nghệ:

  • Quy mô dữ liệu đạt mức hàng trăm Terabyte đến Petabyte cho một tập hợp dữ liệu đơn lẻ.
  • Hơn 80% dữ liệu phát sinh trong thực tế là dữ liệu phi cấu trúc (như văn bản, tài liệu, blog, hình ảnh, âm thanh, video, dữ liệu cảm biến và thiết bị y tế).
  • Các hệ thống cơ sở dữ liệu truyền thống bộc lộ rõ giới hạn về khả năng mở rộng, không thể liên kết hoặc xử lý đồng thời nhiều định dạng dữ liệu khác nhau, đồng thời tốc độ đáp ứng truy vấn không đáp ứng được yêu cầu xử lý tức thời (tính bằng mili giây).

Trước thực trạng đó, công nghệ dữ liệu lớn (Big Data) và các hệ thống lưu trữ, tính toán phân tán đã ra đời. Để nghiên cứu giải pháp kỹ thuật cho bài toán này, tác giả đã thực hiện đồ án tốt nghiệp với các nhiệm vụ nghiên cứu cụ thể:

  1. Tìm hiểu về các thành phần công nghệ và quản lý Big Data.
  2. Tìm hiểu mô hình xử lý dữ liệu phân tán MapReduce.
  3. Tìm hiểu hệ thống phân tán mã nguồn mở Apache Hadoop.
  4. Đề xuất phương pháp xây dựng hệ thống lưu trữ phân tán.
  5. Thử nghiệm với các công cụ để giải quyết bài toán lưu trữ và quản lý dữ liệu.

Các yêu cầu kỹ thuật cần giải quyết gồm:

  1. Nắm vững các thành phần công nghệ cốt lõi trong hệ sinh thái Big Data.
  2. Nắm vững nguyên lý hoạt động của mô hình MapReduce.
  3. Nắm vững quy trình hoạt động cơ bản của hệ thống Hadoop.
  4. Áp dụng kiến thức đã tổng hợp vào việc xây dựng phần mềm/hệ thống thử nghiệm thực tế.

Đối tượng và phạm vi nghiên cứu của đồ án:

  • Đối tượng nghiên cứu: Các kỹ thuật quản lý, lưu trữ Big Data, cơ sở dữ liệu NoSQL, hệ thống tập tin phân tán HDFS và mô hình xử lý phân tán MapReduce trên nền tảng Hadoop.
  • Không gian thực hiện: Bộ môn Tin học, Khoa Công nghệ Thông tin, Trường Đại học Dân lập Hải Phòng.
  • Thời gian thực hiện: Đề tài được giao ngày 03 tháng 10 năm 2016 và hoàn thành vào tháng 12 năm 2016.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đồ án được xây dựng dựa trên các tiêu chuẩn hạ tầng, mô hình dữ liệu và công nghệ tính toán phân tán:

  • Nguyên tắc hạ tầng dữ liệu lớn: Hệ thống phải cân đối giữa 5 yếu tố kỹ thuật gồm Hiệu năng (Performance), Tính sẵn có (Availability), Khả năng mở rộng (Scalability), Tính linh hoạt (Flexibility) và Chi phí (Cost).
  • Mô hình giao dịch và cơ sở dữ liệu: Đối chiếu các nguyên lý toàn vẹn giao dịch ACID (Atomicity, Consistency, Isolation, Durability) trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) với mô hình nhất quán cuối cùng (Eventual Consistency) của cơ sở dữ liệu phi quan hệ (NoSQL).
  • Mô hình dữ liệu NoSQL: Khảo cứu cấu trúc cặp Khóa - Giá trị (Key-Value Pair - KVP) và cơ sở dữ liệu tài liệu (Document Database) dựa trên định dạng JavaScript Object Notation (JSON) cùng dạng nhị phân BSON.
  • Công nghệ ảo hóa và đám mây: Cơ chế hoạt động của màn hình máy ảo (Hypervisor), nguyên lý trừu tượng hóa tài nguyên cùng ba đặc tính cốt lõi: Phân vùng (Partitioning), Cô lập (Isolation) và Đóng gói (Encapsulation). Khung kiến trúc điện toán đám mây với 4 mô hình dịch vụ: Hạ tầng như một dịch vụ (IaaS), Nền tảng như một dịch vụ (PaaS), Phần mềm như một dịch vụ (SaaS), Dữ liệu như một dịch vụ (DaaS); cùng 3 mô hình triển khai: Đám mây công cộng (Public Cloud), Đám mây riêng (Private Cloud) và Đám mây lai (Hybrid Cloud).

Phương pháp nghiên cứu được tác giả áp dụng trong đồ án:

  • Phương pháp phân tích - tổng hợp lý thuyết: Hệ thống hóa các tài liệu chuyên ngành về công nghệ Big Data, phân tích kiến trúc phần cứng, mạng dự phòng, giao diện lập trình ứng dụng (API, XML) và các giải pháp đám mây thương mại (Amazon Web Services, Google Cloud Platform, Microsoft Azure HDInsight, OpenStack).
  • Phương pháp so sánh, đối chiếu kỹ thuật: Đánh giá ưu nhược điểm giữa cơ sở dữ liệu quan hệ (PostgreSQL) và các hệ thống NoSQL tiêu biểu (MongoDB, CouchDB); đối chiếu giữa lưu trữ dữ liệu có cấu trúc và dữ liệu văn bản phi cấu trúc.
  • Phương pháp thực nghiệm kỹ thuật: Thiết lập cụm Hadoop cluster trên hệ điều hành Linux, cấu hình tài khoản phân quyền quản trị, khởi chạy các dịch vụ phân tán và thực hiện thao tác lưu trữ tệp dữ liệu văn bản vào hệ thống tập tin phân tán HDFS.

Nguồn dữ liệu sử dụng:

  • Tài liệu kỹ thuật, đặc tả công nghệ của Apache Software Foundation, 10gen, Google, Amazon và Microsoft.
  • Dữ liệu thử nghiệm thực tế: Hồ sơ cuộc gọi mẫu, thư mục dữ liệu vidu và tệp văn bản phi cấu trúc vanban.txt dùng để nạp vào hệ thống phân tán.

Thiết kế và triển khai

Hệ thống phân tán được đồ án tập trung nghiên cứu, thiết kế và cài đặt thực nghiệm là Apache Hadoop chạy trên nền hệ điều hành Linux, ứng dụng kiến trúc tính toán Master/Slave:

[Master Node]                                   [Slave Nodes / DataNodes]
- NameNode (Quản lý Namespace, Metadata) ------> DataNode 1 (Lưu trữ Block dữ liệu)
- JobTracker (Điều phối tác vụ MapReduce) ------> DataNode 2 (Nhân bản Block)
- SecondaryNameNode (Sao lưu Metadata định kỳ)-> TaskTracker (Thực thi Mapper / Reducer)

Kiến trúc các thành phần Hadoop

  1. Hệ thống tập tin phân tán Hadoop (HDFS):

    • NameNode (Master): Quản lý toàn bộ hệ thống tập tin (namespace), lưu giữ bảng thông tin cấu trúc thư mục và ánh xạ vị trí các khối dữ liệu (block) trên các máy tính trong cụm.
    • DataNode (Slave): Trực tiếp lưu trữ các block dữ liệu vật lý trên ổ đĩa, thực hiện các thao tác đọc/ghi theo yêu cầu từ client và định kỳ gửi tín hiệu báo cáo trạng thái khối dữ liệu (block report) về NameNode.
    • Cơ chế nhân bản (Replication): Dữ liệu đưa vào HDFS được chia thành các block có dung lượng cố định và tự động nhân bản sang nhiều node khác nhau để đảm bảo khả năng chịu lỗi khi có sự cố phần cứng.
    • Cơ chế đọc/ghi: Quá trình đọc dữ liệu được tối ưu hóa bằng cách kết nối trực tiếp client với DataNode gần nhất; quá trình ghi dữ liệu thực hiện theo cơ chế ống dẫn (pipeline) giữa các DataNode.
  2. Mô hình xử lý dữ liệu phân tán MapReduce:

    • JobTracker: Tiếp nhận tác vụ MapReduce từ người dùng, lập lịch và phân bổ công việc tính toán tới các node đang chứa dữ liệu tương ứng.
    • TaskTracker: Chạy trên từng máy trạm slave, nhận lệnh từ JobTracker để khởi tạo và giám sát tiến trình Mapper hoặc Reducer.
    • Quy trình xử lý: Gồm 4 giai đoạn nối tiếp: Tách dữ liệu đầu vào (Split) -> Xử lý ánh xạ tạo cặp khóa - giá trị trung gian (Mapper) -> Gom nhóm và sắp xếp theo khóa (Shuffle/Sort) -> Tổng hợp kết quả đầu ra (Reducer).

Quy trình cài đặt và thực nghiệm

Quá trình triển khai thử nghiệm trên hệ thống được thực hiện theo các bước kỹ thuật:

  • Thiết lập môi trường và tài khoản: Tạo và cấu hình tài khoản người dùng chuyên trách có tên hduser trên hệ thống Linux để quản lý và vận hành cụm Hadoop cluster.
  • Khởi động hệ thống: Thực thi các script điều khiển để khởi chạy toàn bộ daemon phân tán gồm NameNode, DataNode, SecondaryNameNode, JobTracker và TaskTracker.
  • Kiểm tra trạng thái qua giao diện Web:
    • Kiểm tra trạng thái ứng dụng qua trang Hadoop All Applications.
    • Giám sát tình trạng hoạt động của node chủ qua trang quản lý Hadoop Namenode.
    • Kiểm tra tình trạng đồng bộ metadata qua trang Hadoop SecondaryNamenode.
    • Duyệt cấu trúc cây thư mục phân tán qua trang Hadoop Directory.
  • Thực nghiệm lưu trữ tệp dữ liệu văn bản:
    • Khởi tạo thư mục cục bộ có tên vidu trên máy chủ.
    • Tạo tệp tin văn bản phi cấu trúc vanban.txt bên trong thư mục vidu.
    • Sử dụng dòng lệnh tương tác với HDFS để sao chép toàn bộ thư mục vidu cùng tệp tin vanban.txt từ hệ thống tệp cục bộ vào cụm phân tán HDFS.
    • Xác minh sự hiện diện và tính toàn vẹn của tệp vanban.txt trên giao diện quản trị thư mục phân tán của NameNode.

Nội dung chính theo từng chương

CHƯƠNG 1: CÔNG NGHỆ QUẢN LÝ DỮ LIỆU LỚN

Chương 1 tập trung khảo cứu toàn diện nền tảng công nghệ, cơ sở hạ tầng, mô hình điện toán và các hệ quản trị cơ sở dữ liệu phục vụ xử lý dữ liệu lớn. Tác giả phân tích sâu các tầng kiến trúc:

  • Cơ sở hạ tầng vật lý và an ninh: Khảo sát yêu cầu về mạng truyền thông dự phòng, máy chủ xử lý tốc độ cao và các cơ chế bảo mật (kiểm soát truy cập dữ liệu, bảo mật API, mã hóa dữ liệu lớn và phát hiện đe dọa vòng ngoài).
  • Ảo hóa và tính toán phân tán: Phân tích vai trò của Hypervisor trong việc trừu tượng hóa phần cứng; đánh giá tác động của ảo hóa máy chủ, ảo hóa ứng dụng (đáp ứng thỏa thuận mức dịch vụ SLA), ảo hóa mạng, bộ xử lý/bộ nhớ ảo hóa, cũng như ảo hóa dữ liệu và lưu trữ. Nền tảng ảo hóa cung cấp môi trường độc lập cho từng tác vụ MapReduce vận hành song song hiệu quả.
  • Điện toán đám mây: Phân tích các mô hình triển khai (Public, Private, Hybrid Cloud), mô hình dịch vụ (IaaS, PaaS, SaaS, DaaS), các đặc tính co giãn tài nguyên theo thời gian thực (Elasticity), cơ chế chia sẻ tài nguyên và mô hình thanh toán Pay-as-you-go. Khảo cứu các dịch vụ đám mây thực tế:
    • Amazon Web Services: Dịch vụ máy chủ ảo EC2, tính toán phân tán Elastic MapReduce (EMR) kết hợp S3 và HBase, cơ sở dữ liệu NoSQL DynamoDB trên ổ cứng SSD, hạ tầng tính toán hiệu năng cao HPC, và kho dữ liệu RedShift quy mô Petabyte.
    • Google Cloud Platform: Google Compute Engine, dịch vụ phân tích dữ liệu lớn tốc độ cao Google BigQuery (xử lý truy vấn 5 Terabyte chỉ trong 15 giây), và công cụ học máy Google Prediction API.
    • Microsoft Azure: Nền tảng HDInsight xây dựng trên bản phân phối Hortonworks Data Platform (HDP), tương thích 100% với Apache Hadoop.
    • OpenStack: Nền tảng đám mây mã nguồn mở do Rackspace và NASA khởi xướng, hỗ trợ triển khai cụm Hadoop trên hạ tầng Ubuntu/Red Hat Linux.
  • Quản lý dữ liệu lớn (RDBMS và NoSQL):
    • Khảo cứu hệ quản trị quan hệ mã nguồn mở PostgreSQL: Hỗ trợ chuẩn SQL, 5 mức chuẩn hóa dữ liệu, xử lý trực tiếp đối tượng, trigger, đa phiên bản đồng thời (MVCC) và khả năng mở rộng kiểu dữ liệu.
    • Khảo cứu các cơ sở dữ liệu NoSQL: Mô hình cặp Khóa - Giá trị (KVP) linh hoạt nhưng không hỗ trợ ACID; mô hình cơ sở dữ liệu tài liệu sử dụng JSON/BSON. Phân tích chi tiết MongoDB (cấu trúc database, collection, document, GridFS, tích hợp sẵn MapReduce, chia mảnh Sharding qua khóa) và CouchDB (phát triển bởi Apache Software Foundation, tuân thủ ACID, mô phỏng kiến trúc web, hỗ trợ cơ chế nén dữ liệu).
Tiêu chí Cơ sở dữ liệu quan hệ (PostgreSQL) Cơ sở dữ liệu tài liệu (MongoDB) Cơ sở dữ liệu tài liệu (CouchDB) Cơ sở dữ liệu Khóa - Giá trị (KVP)
Mô hình dữ liệu Bảng, hàng, cột (quan hệ) Document (BSON), Collection Document (JSON kèm file đính kèm) Cặp Key - Value (KVP)
Lược đồ (Schema) Cố định, chuẩn hóa (5 mức) Không cố định (Schema-free) Không cố định Không có lược đồ, phi kiểu
Tính toàn vẹn Đảm bảo đầy đủ ACID Nhất quán cuối cùng (hỗ trợ cursor) Hỗ trợ đầy đủ tính chất ACID Không hỗ trợ ACID
Ngôn ngữ truy vấn Chuẩn SQL API truy vấn NoSQL, MapReduce RESTful API (HTTP), MapReduce API tra cứu theo khóa (Key lookup)
Khả năng mở rộng Mở rộng theo chiều dọc Mở rộng ngang (Sharding qua mảnh khóa) Nhân rộng phân tán hoặc máy cục bộ Mở rộng ngang quy mô lớn
Công nghệ nổi bật MVCC, trigger, thủ tục lưu GridFS, xử lý thời gian thực Cơ chế nén dữ liệu tự động Bộ nhớ RAM (In-memory)

CHƯƠNG 2: XÂY DỰNG KHO DỮ LIỆU VĂN BẢN

Chương 2 trình bày các kỹ thuật và quy trình chuyển đổi, khai thác nguồn dữ liệu phi cấu trúc dạng văn bản để phục vụ phân tích dữ liệu lớn:

  • Khám phá và xử lý dữ liệu phi cấu trúc: Phân tích đặc điểm của nguồn dữ liệu chiếm hơn 80% tổng dung lượng thực tế. Nguồn dữ liệu này thường không đồng nhất, xuất phát từ tài liệu, blog, tương tác mạng xã hội và email.
  • Phân tích văn bản và kỹ thuật khai thác: Nghiên cứu quy trình thu thập thông tin tự động, nguyên tắc phân loại văn bản, kỹ thuật bóc tách thực thể và phân tích cú pháp/ngữ nghĩa nhằm chuyển đổi dữ liệu dạng thô thành thông tin có cấu trúc.
  • Tích hợp dữ liệu đa dạng: Trình bày giải pháp kết hợp giữa dữ liệu có cấu trúc từ hệ thống RDBMS truyền thống với dữ liệu văn bản phi cấu trúc mới thu thập. Tác giả minh họa qua cấu trúc mẫu hồ sơ cuộc gọi (Call Detail Record), trong đó kết hợp thông tin định danh cuộc gọi có cấu trúc với nội dung ghi chú/văn bản trao đổi phi cấu trúc để phục vụ hoạt động hỗ trợ khách hàng và ra quyết định kinh doanh.
  • Công cụ phân tích văn bản cho Big Data: Đánh giá các công cụ hỗ trợ xử lý ngôn ngữ và phân tích dữ liệu văn bản trên các kho dữ liệu phân tán.

CHƯƠNG 3: HADOOP VÀ THỰC NGHIỆM

Chương 3 tập trung thuyết minh chi tiết về nền tảng lập trình phân tán Apache Hadoop và trình bày kết quả thực nghiệm hệ thống:

  • Nguyên lý tính toán MapReduce: Phân tích chi tiết quy trình chia nhỏ bài toán thành các tác vụ Mapper và Reducer chạy song song trên các máy tính độc lập; cơ chế gom cụm dữ liệu trung gian qua tiến trình Shuffle/Sort.
  • Hệ thống tập tin HDFS: Trình bày cấu trúc Master/Slave, nguyên lý hoạt động của NameNode, DataNode và SecondaryNameNode; cơ chế tự động nhân bản khối dữ liệu để chống lỗi khi máy tính vật lý gặp trục trặc; quy trình ghi dữ liệu theo chuỗi ống dẫn.
  • Cơ chế điều phối JobTracker và TaskTracker: Phân bổ tài nguyên tính toán dựa trên vị trí dữ liệu (Data Locality) nhằm giảm thiểu tắc nghẽn băng thông mạng.
  • Cài đặt và thực nghiệm hệ thống:
    • Hướng dẫn thiết lập cụm Hadoop cluster trên môi trường Linux.
    • Cấu hình phân quyền hệ thống với tài khoản người dùng hduser.
    • Khởi động hệ thống, kiểm tra các daemon qua giao diện quản trị dòng lệnh và các cổng giao diện Web (Web UI của Hadoop All Applications, NameNode, SecondaryNameNode, Hadoop Directory).
    • Thao tác đưa dữ liệu thực tế vào cụm phân tán: Khởi tạo thư mục vidu, tạo tệp tin văn bản vanban.txt và thực hiện sao chép toàn bộ vào HDFS.

Kết quả và đóng góp

Kết quả kỹ thuật chính

  • Hệ thống hóa cơ sở lý thuyết Big Data: Phân tích tường minh kiến trúc phân tầng của dữ liệu lớn, từ hạ tầng mạng, lưu trữ vật lý, kỹ thuật ảo hóa cho đến các nền tảng điện toán đám mây hiện đại.
  • Làm rõ các mô hình lưu trữ: Cung cấp bức tranh so sánh chi tiết giữa cơ sở dữ liệu quan hệ (PostgreSQL) và các cơ sở dữ liệu phi quan hệ (MongoDB, CouchDB, hệ thống KVP), chỉ ra phạm vi ứng dụng thích hợp cho từng loại cơ sở dữ liệu.
  • Triển khai thành công cụm Hadoop cluster: Cài đặt, cấu hình và vận hành hoàn chỉnh một hệ thống Hadoop trên nền tảng Linux dưới sự quản trị của tài khoản hduser.
  • Thực nghiệm lưu trữ phân tán: Kiểm chứng thành công quy trình đưa thư mục dữ liệu vidu chứa tệp văn bản vanban.txt vào hệ thống tập tin phân tán HDFS; hệ thống thực hiện phân mảnh, phân bổ và hiển thị chính xác trạng thái qua giao diện web NameNode và Hadoop Directory.

Đóng góp của đề tài

  • Tổng hợp tài liệu hướng dẫn kỹ thuật chi tiết về quy trình thiết lập môi trường phân tán Hadoop cho sinh viên chuyên ngành Công nghệ thông tin.
  • Đề xuất mô hình tích hợp dữ liệu văn bản phi cấu trúc với dữ liệu có cấu trúc (thông qua trường hợp hồ sơ cuộc gọi), cung cấp giải pháp xử lý nguồn tài nguyên dữ liệu phi cấu trúc đang chiếm tỷ trọng lớn trong thực tế.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Quy mô thực nghiệm còn ở mức thử nghiệm (Demo): Hệ thống Hadoop cluster mới được triển khai trong phạm vi phòng thực hành với tập dữ liệu kiểm thử nhỏ (thư mục vidu và tệp văn bản đơn lẻ vanban.txt), chưa tiến hành thử nghiệm tải với các tệp dữ liệu kích thước hàng Terabyte hoặc Petabyte trong môi trường thực tế.
  • Chưa mở rộng các công cụ trong hệ sinh thái: Đồ án mới tập trung vào tầng lõi HDFS và mô hình MapReduce cơ bản; chưa triển khai tích hợp các công cụ chuyên sâu khác thuộc hệ sinh thái Hadoop như Apache Hive, Apache Pig, Apache HBase hoặc Spark.
  • Đánh giá hiệu năng còn định tính: Đồ án chủ yếu tập trung vào việc cài đặt thành công và kiểm tra quy trình hoạt động của các tiến trình, chưa có các bài kiểm thử định lượng chi tiết về tốc độ đọc/ghi dữ liệu, độ trễ mạng hay khả năng chịu lỗi khi ngắt kết nối đột ngột một DataNode.

Hướng nghiên cứu tiếp

  • Mở rộng cấu hình cụm Hadoop cluster trên nhiều nút mạng vật lý hoặc tích hợp trực tiếp trên hạ tầng điện toán đám mây (như Amazon EC2/EMR hoặc Microsoft Azure HDInsight).
  • Xây dựng các chương trình MapReduce bằng ngôn ngữ Java hoặc Python để thực hiện các bài toán phân tích dữ liệu lớn thực tế, như đếm từ (WordCount), phân tích log web hoặc khai phá dữ liệu mạng xã hội.
  • Nghiên cứu cơ chế bảo mật nâng cao và tối ưu hóa hiệu năng lưu trữ cho các kho dữ liệu văn bản quy mô lớn.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho các đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Tài liệu cung cấp kiến thức nền tảng về hệ sinh thái Big Data, mô hình tính toán phân tán và nguyên lý vận hành của kiến trúc Master/Slave trong hệ thống HDFS.
  • Kỹ sư quản trị hệ thống và người mới tiếp cận Big Data: Hướng dẫn từng bước cách cấu hình người dùng hduser, thiết lập quyền hạn, khởi chạy dịch vụ Hadoop và giám sát cụm thông qua hệ thống giao diện web (NameNode Web UI, All Applications).
  • Người nghiên cứu về quản trị cơ sở dữ liệu: Các phần phân tích so sánh giữa PostgreSQL, MongoDB, CouchDB và mô hình KVP tại Chương 1 cung cấp góc nhìn rõ ràng về việc lựa chọn công nghệ lưu trữ phù hợp với từng loại cấu trúc dữ liệu.

Các nội dung đáng tham khảo nhất trong văn bản gồm:

  • Toàn bộ nội dung phân tích kiến trúc ảo hóa và dịch vụ đám mây (Mục 1.2 và 1.3).
  • Bảng đối chiếu và phân tích cơ chế hoạt động của MongoDB, CouchDB (Mục 2.2 và 2.3 trong Chương 1).
  • Quy trình hoạt động của các tiến trình HDFS, JobTracker/TaskTracker và các bước thực nghiệm hệ thống (Chương 3).

Câu hỏi thường gặp

1. Tại sao các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) truyền thống lại bộc lộ hạn chế trước sự bùng nổ của Big Data?

Theo phân tích của tác giả, RDBMS đòi hỏi cấu trúc dữ liệu cố định (lược đồ bảng, khóa) và tuân thủ chặt chẽ tính toàn vẹn ACID, khiến hệ thống rất khó mở rộng quy mô khi dữ liệu đạt mức Terabyte đến Petabyte. Ngoài ra, hơn 80% dữ liệu phát sinh hiện nay là phi cấu trúc (văn bản, âm thanh, video, dữ liệu cảm biến), vốn là loại dữ liệu mà RDBMS không thể lưu trữ, đồng bộ và phân tích hiệu quả với tốc độ thời gian thực (tính bằng mili giây).

2. Công nghệ ảo hóa đóng vai trò kỹ thuật như thế nào đối với việc xử lý Big Data trong đồ án?

Ảo hóa giúp trừu tượng hóa và tách biệt tài nguyên tính toán khỏi môi trường vật lý bên dưới thông qua phần mềm giám sát máy ảo (Hypervisor). Nhờ ba đặc tính phân vùng (Partitioning), cô lập (Isolation) và đóng gói (Encapsulation), ảo hóa cho phép các tiến trình MapReduce vận hành song song độc lập, tối ưu hóa việc sử dụng CPU, RAM và lưu trữ, đồng thời nâng cao khả năng mở rộng linh hoạt theo tải công việc.

3. Trong kiến trúc hệ thống tập tin phân tán HDFS, NameNode và DataNode đảm nhận vai trò gì?

NameNode đóng vai trò là nút chủ (Master Node), chịu trách nhiệm quản lý hệ thống tập tin (namespace), lưu giữ bảng metadata và vị trí phân bổ của các khối dữ liệu (block) trên toàn cụm. DataNode đóng vai trò là các nút thợ (Slave Nodes), trực tiếp lưu trữ các khối dữ liệu vật lý trên ổ đĩa, thực hiện các thao tác đọc/ghi theo yêu cầu và tự động báo cáo trạng thái khối dữ liệu định kỳ về NameNode.

4. Hệ thống NoSQL MongoDB và CouchDB được tác giả phân biệt như thế nào về mặt kỹ thuật?

Cả hai đều là cơ sở dữ liệu tài liệu mã nguồn mở. Tuy nhiên, MongoDB sử dụng định dạng nhị phân BSON, hỗ trợ hệ thống tập tin GridFS, tích hợp sẵn MapReduce và sử dụng cơ chế Sharding qua mảnh khóa để mở rộng ngang, tối ưu cho xử lý thời gian thực. Ngược lại, CouchDB được thiết kế mô phỏng kiến trúc Web với giao diện RESTful API, đảm bảo đầy đủ tính chất ACID và tích hợp sẵn cơ chế nén dữ liệu tự động để tối ưu dung lượng lưu trữ.

5. Quá trình thực nghiệm tại Chương 3 của đồ án đã tiến hành những thao tác cụ thể nào?

Tác giả đã tạo tài khoản quản trị hduser trên Linux, cấu hình và khởi chạy các dịch vụ của cụm Hadoop cluster. Sau khi kiểm tra trạng thái hoạt động của hệ thống thông qua các cổng Web UI (All Applications, NameNode, SecondaryNameNode, Hadoop Directory), tác giả tạo một thư mục cục bộ có tên vidu, tạo tệp dữ liệu văn bản vanban.txt bên trong, rồi sử dụng lệnh HDFS để sao chép thư mục và tệp văn bản này lên cụm lưu trữ phân tán.


Kết luận

Đồ án tốt nghiệp "Áp dụng các kỹ thuật trong Big Data vào lưu trữ dữ liệu" của sinh viên Nguyễn Chí Thanh đã hệ thống hóa các nguyên lý hạ tầng, công nghệ ảo hóa, điện toán đám mây và cơ sở dữ liệu NoSQL phục vụ quản lý dữ liệu lớn. Tác giả đã làm rõ cấu trúc vận hành của mô hình xử lý phân tán MapReduce và hệ thống tập tin phân tán HDFS trên nền tảng Apache Hadoop. Thông qua việc cài đặt thực nghiệm thành công cụm Hadoop cluster trên hệ điều hành Linux và thực hiện lưu trữ tệp tin văn bản vanban.txt, đồ án đã hoàn thành các nhiệm vụ nghiên cứu đặt ra, cung cấp tài liệu kỹ thuật có giá trị tham khảo cho việc học tập và nghiên cứu công nghệ Big Data.