CHƯƠNG 1: KIẾN THỨC TỔNG QUAN 1.1 Đồ thị con thường xuyên Trong phần này ta ký hiệu tập các đỉnh của đồ thị là V, tập các cạnh là E và tập các nhãn là L. Đồ thị gán nhãn Định nghĩa 1.1 [5] Cho một tập nhãn các đỉnh LV và một tập nhãn cạnh LE. Một đồ thị được gán nhãn g là một bộ gồm 4 thành phần g = (V, E, µ, ν), trong đó: V là một tập hữu hạn các đỉnh. E ⊆ V×V là một tập các cạnh.
µ : V→LV là hàm gán nhãn cho các đỉnh. ν : E→LE là hàm gán nhãn cho các cạnh. Tập V có thể được coi là một tập các định danh đỉnh và thường được đánh số bằng tập các số tự nhiên V = {1,. Trong khi V xác định các đỉnh, tập các cạnh E thể hiện cấu trúc của đồ thị.
Đó là một đỉnh u ∈ V được kết nối với một đỉnh v ∈ V bằng một cạnh (u, v) nếu (u, v) ∈ E. Hàm ghi nhãn có thể được sử dụng để tích hợp thông tin về các đỉnh và các cạnh vào trong các đồ thị bằng cách gán các thuộc tính từ LV và LE tới các đỉnh và các cạnh tương ứng. Ví dụ: [14] đồ thị biểu diễn các kết nối hóa học của axit sulfuric. V = {1, 2, 3, 4, 5, 6, 7}, LV = {O, S, H}, E = {(1, 3), (2,3), (3, 4), (3, 5), (4, 6), (5, 7)}, LE= {SingleLink, DoubleLink} e 8 V µ E v 1 O (1,3) DoubleLink 2 O (2,3) DoubleLink 3 S (3,4) SingleLink 4 O (3,5) SingleLink 5 O (4,6) SingleLink 6 H (5,7) SingleLink 7 H Hình 1.
Đồ thị các kết nối hóa học của axit Sulfuric [13] 1. Đồ thị con Định nghĩa 1. Đồ thị g1 là đồ thị con của đồ thị g2, ký hiệu g1 ⊆ g2 nếu: V1 ⊆ V2 E1 = E2 ∩ (V1×V1) µ1(u) = µ2(u) với mọi u ∈ V1 ν1(u, v) = ν2(u, v) với mọi (u, v) ∈ E1 Ví dụ: đồ thị chứa kết nối O-H là một đồ thị con trong đồ thị biểu diễn kết nối hóa học của axit Sulfuric. Đồ thị đẳng cấu Định nghĩa 1.
Một đồ thị đẳng cấu giữa g1 và g2 là một hàm song ánh f : V1→V2 thỏa mãn: µ1(u) = µ2(f (u)) với mọi u ∈ V1. e 9 Với mỗi cạnh e1 = (u, v) ∈ E1, tồn tại một cạnh e2 = (f (u), f (v)) ∈ E2 sao cho ν1(e1) = ν2(e2). Với mỗi cạnh e2 = (u, v) ∈ E2, tồn tại một cạnh e1 = (f-1(u), f-1(v)) ∈ E1 sao cho ν1(e1) = ν2(e2). Hai đồ thị g1 và g2 được gọi là đẳng cấu nếu tồn tại một đồ thị đẳng cấu giữa chúng.
Ví dụ: hai đồ thị hình dưới là đẳng cấu. Đồ thị đẳng cấu 1. Đồ thị con đẳng cấu Định nghĩa 1.4 [5] Cho g là một đồ thị, g1 là một đồ thị con đẳng cấu của đồ thị g nếu tồn tại một đồ thị g2 con của g sao cho g1 đẳng cấu với g2. Ví dụ: trong hình dưới, đồ thị Q là đồ thị con đẳng cấu của đồ thị P.
Đồ thị con đẳng cấu 1.5 Đồ thị con thường xuyên Định nghĩa 1.5 [13] e 10 Cho một tập đồ thị D và một ngưỡng hỗ trợ tối thiểu minsup, độ hỗ trợ của một đồ thị g đối với D, ký hiệu supg là số đồ thị trong D mà g là đồ thị con đẳng cấu của nó. |{𝑔 ′ ∈ 𝐷 |𝑔 𝑔′}| supg= |𝐷| Đồ thị g được gọi là đồ thị con thường xuyên trong D nếu supg minsup.4 biểu diễn một đồ thị con thường xuyên trong tập dữ liệu đồ thị các kết nối hóa học với minsup =2/4=0. Đồ thị con thường xuyên [14] Phát hiện các đồ thị con thường xuyên là một trong những nhiệm vụ cơ bản trong khai phá dữ liệu có cấu trúc từ việc phát hiện các mẫu có thể được sử dụng cho những đặc trưng của những bộ dữ liệu có cấu trúc, phân loại và phân nhóm các cấu trúc phức tạp, xây dựng các chỉ số đồ thị và thực hiện việc tìm kiếm tương tự trong cơ sở dữ liệu đồ thị lớn. Hiện nay đã có vài thuật toán khai phá đồ thị con thường xuyên như gSpan [15], FFSM [6], FSG [10].
Tuy nhiên các thuật toán này có độ phức tạp thời gian không đa thức nên hạn chế trong việc khai phá các tập dữ liệu e 11 lớn. Để khắc phục điều này một số nghiên cứu đã cải tiến thuật toán trên mô hình lập trình song song MapReduce và thực thiện trên nền tảng Hadoop.2 Nền tảng Hadoop Hiện nay có rất nhiều công cụ dùng để xử lý dữ liệu lớn đã và đang được nghiên cứu và phát triển bởi các viện nghiên cứu lớn trên thế giới. Các công cụ này giúp cho việc xử lý một lượng dữ liệu khổng lồ một cách nhanh chóng, giúp người dùng có thể dễ dàng tìm được thông tin cần thiết trong thời gian thực, nhất là khi kỷ nguyên của exabytes đang đến gần.1 Tổng quát về Apache Hadoop Hadoo là một dự án phần mềm mã nguồn mở được phát triển bởi Apache, nhằm thu các giá trị có ích từ khối lượng, tốc độ và tính đa dạng của dữ liệu (cấu trúc/phi cấu trúc). Apache Hadoop là một khuôn khổ cho phép để xử lý và phân phối các bộ dữ liệu lớn trên các cụm máy tính sử dụng mô hình lập trình đơn giản.
Nó được thiết kế để mở rộng từ một máy chủ duy nhất đến hàng ngàn máy, mỗi máy cung cấp tính toán và lưu trữ địa phương. Không giống như các hệ quản trị cơ sở dữ liệu truyền thống, Hadoop được thiết kế để làm việc với nhiều loại dữ liệu và dữ liệu nguồn. Công nghệ HDFS của Hadoop cho phép khối lượng lớn công việc được chia thành các khối dữ liệu nhỏ hơn được nhân rộng và phân phối trên các phần cứng của một cluster để xử lý nhanh hơn. Công nghệ này đã được sử dụng rộng rãi bởi một số trang web lớn nhất thế giới, chẳng hạn như Facebook, eBay, Amazon, Baidu, và Yahoo.
Các nhà quan sát nhấn mạnh rằng Yahoo là một trong những nhà đóng góp lớn nhất đối với Hadoop.2 Kiến trúc Hadoop Hadoop làm việc trên nguyên tắc xử lí theo lô dựa trên một cụm máy tính gọi là các nút (nodes). Các nút được cung cấp nền tảng phục vụ các hoạt động phân tích dữ liệu lớn theo mô hình ánh xạ rút gọn (Map-reduce) cho dữ e 12 liệu phi cấu trúc trên hệ thống tập tin phân tán. Hadoop là nền tảng chính đóng góp cho thành công của bộ tìm kiếm Yahoo. Hadoop bao gồm nhiều thành phần cung cấp chức năng tính toán song song và phân tán.
Kiến trúc tổng quát của Hadoop được cho trong Hình 1. Kiến trúc Hadoop Lõi (core) Hadoop Là bao gồm một tập hợp của các thành phần và các giao diện cung cấp chức năng truy cập vào các hệ thống tập tin phân tán và vào ra tổng quát. Các thành phần cốt lõi cũng cung cấp sự tối ưu hóa dựa vào phân nhóm địa lý của máy chủ nhằm giảm thiểu lưu lượng mạng giữa các máy chủ trong các cụm tính toán. Hệ thống tập tin phân tán (Hadoop Distributed File System-HDFS) Là hệ thống lưu trữ chính được sử dụng bởi các ứng dụng Hadoop.
HDFS, như tên gọi của nó, một hệ thống tập tin phân tán cung cấp truy cập thông lượng cao vào dữ liệu của ứng dụng, tạo ra nhiều bản sao của khối dữ liệu và phân phối chúng trên các nút tính toán trong một cụm để cho phép tính toán song song, đáng tin cậy và nhanh chóng. Hbase Là một cơ sở dữ liệu phân tán theo cột. HBase sử dụng HDFS cho việc e 13 lưu trữ cơ bản của nó. Nó ánh xạ dữ liệu HDFS vào một cơ sở dữ liệu có cấu trúc giống và cung cấp các giao diện lập trình được cho Java (Java API) truy cập vào CSDL này.
Nó hỗ trợ hàng loạt kiểu tính toán sử dụng các truy vấn MapReduce và đọc ngẫu nhiên. HBase thường được sử dụng trong Hadoop khi có truy cập đọc/ ghi ngẫu nhiên, thời gian thực. Mục tiêu của nó là lưu trữ các bảng rất lớn đang chạy trên cụm thiết bị phần cứng. Pig Là ngôn ngữ xử lí dòng dữ liệu.
Apache Pig là một nền tảng cho việc phân tích dữ liệu lớn bao gồm một ngôn ngữ cấp cao để diễn tả các chương trình phân tích dữ liệu. Đặc điểm chính của chương trình Pig là cấu trúc của chúng có thể được song song hóa cho phép nó xử lý các tập hợp dữ liệu rất lớn, cú pháp đơn giản. Các tính năng xây dựng sẵn (built-in functionality) cung cấp một mức độ trừu trượng để cho phát triển các công việc Hadoop nhanh hơn và dễ dàng hơn để viết hơn so với MapReduce truyền thống. Zookeeper Là một công cụ cấu hình cụm (cluster) và quản lý sự dãy hóa (serialization) rất hữu ích để xây dựng các cụm lớn các nút của Hadoop, dịch vụ hiệu năng cao cho các ứng dụng phân tán.
Nó tập trung vào các dịch vụ như quản lí thông tin cấu hình, đặt tên, đồng bộ hóa phân tán cũng và các dịch vụ nhóm. Hive Là một kho dữ liệu cơ sở hạ tầng được xây dựng trên Hadoop. Hive cung cấp các công cụ để cho phép tóm tắt dữ liệu, truy vấn không chuẩn (ad- hoc) và phân tích các bộ dữ liệu lớn được lưu trữ trong các tập tin Hadoop. Nó cung cấp một cơ chế để định cấu trúc cho loại dữ liệu này và cung cấp e 14 một ngôn ngữ truy vấn đơn giản gọi là Hive QL, dựa trên SQL, cho phép người sử dụng quen thuộc với SQL để truy vấn dữ liệu này.
Chukwa: Công cụ mã nguồn mở, được sử dụng để quản lí các cụm lớn máy chủ phân tán. Nó là một hệ thống thu thập dữ liệu để theo dõi các hệ thống phân tán lớn. Chukwa bao gồm một bộ công cụ linh hoạt và mạnh mẽ cho hiển thị, theo dõi và phân tích kết quả để sử dụng tốt nhất các dữ liệu thu thập được. HCatalog: Là một lớp quản lý lưu trữ cho Hadoop cho phép người dùng sử dụng với các công cụ xử lý dữ liệu khác nhau.
Bảng HCatalog trình bày cho người dùng một khung nhìn kiểu quan hệ cho dữ liệu trong hệ thống tập tin phân tán Hadoop (HDFS) và đảm bảo rằng người dùng không cần phải quan tâm về nơi lưu trữ hoặc định dạng của dữ liệu được lưu trữ.