Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)Phân cụm dữ liệu dùng giải thuật ĐA KMEAN ++ trên Hadoop Mapreduce và Spark (Luận văn thạc sĩ)
i LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tp Hồ Chí Minh, ngày 20 tháng năm 2018 Học viên thực luận văn Nguyễn Anh Vinh ii MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC ii DANH SÁCH HÌNH VẼ iv MỞ ĐẦU .1 Tính cấp thiết đề tài .1 Tổng quan vấn đề nghiên cứu Mục đích nghiên cứu Đối tượng phạm vi nghiên cứu .2 Phương pháp nghiên cứu .3 Chương - TỔNG QUAN VỀ ĐỀ TÀI .4 Chương – CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Thuật toán K-Means 2.1.1 Giới thiệu thuật toán K-Means 2.1.2 Hạn chế nhược điểm .6 2.2 Thuật toán Silhouette Index .7 2.2.1 Biểu thức toán học 2.2.2 Độ phức tạp thuật toán 2.3 Các cơng trình liên quan 2.4 Apache Hadoop 2.4.1 Kiến trúc Hadoop cluster .8 2.4.2 Thành phần Hadoop 2.5 Hadoop Distributed File System (HDFS) 2.5.1 Kiến trúc HDFS iii 2.5.2 Đọc file từ HDFS 2.5.3 Ghi file xuống HDFS 2.6 MapReduce 2.7 Apache Spark .8 2.8 Kết luận chương Chương – PHƯƠNG PHÁP LUẬN .10 3.1 Multiple K-means MapReduce (MKMeansMR) .10 3.1.1 Đọc hình ảnh .11 3.1.2 Khởi tạo Scalable K-Means++ với MapReduce 11 3.1.3 Phân cụm đa K-means .13 3.1.4 Xác định cụm 14 3.2 Công cụ Spark Multiple Scalable K-means++ 15 3.2.1 Xử lý hình ảnh Spark job 15 3.2.2 Xác định cụm 17 3.3 Kết luận chương 18 Chương - THỰC NGHIỆM 19 4.1 Giai đoạn phân cụm 21 4.2 Giai đoạn đa xác định (Multiple Validation Phase) 23 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 24 DANH MỤC TÀI LIỆU THAM KHẢO 25 iv DANH SÁCH HÌNH VẼ Hình 3.1: Thí nghiệm MapReduce 11 Hình 4.1: Block size Replication 19 Hình 4.2: Lịch sử ghi nhận trình thực MapReduce (MR) 20 Hình 4.3: Stages for jobs 20 Hình 4.4: Executors 21 Hình 4.5: MapReduce Clustering Phase Speedup 22 Hình 4.6: Spark Clustering Phase Speedup 22 Hình 4.7: MapReduce Validation Phase Speedup 23 Hình 4.8: Spark Validation Phase Speedup 23 MỞ ĐẦU Tính cấp thiết đề tài Những năm gần đây, phát triển mạnh công nghệ thông tin làm cho khả thu thập lưu trữ thông tin hệ thống thông tin tăng nhanh cách chóng mặt Sự tiến cơng nghệ, đời kênh truyền thông mạng xã hội thiết bị công nghệ tiên tiến đặt thách thức cho cơng nghiệp khác phải tìm cách khác để xử lý liệu Sự bùng nổ dẫn tới yêu cầu cấp thiết cần có kỹ thuật công cụ để tự động chuyển đổi lượng liệu khổng lồ thành tri thức có ích Trong phải kể đến cơng nghệ tính tốn phân tán MapReduce hiểu phương thức thực thi để giúp ứng dụng xử lý nhanh lượng liệu lớn Các liệu đặt máy tính phân tán Các máy tính hoạt động song song độc lập với Điều làm rút ngắn thời gian xử lý tồn liệu MapReduce chạy máy tính thơng thường khơng u cầu cấu hình cao, chi phí triển khai MapReduce rẻ Sự đời MapReduce mở cho doanh nghiệp hội xử lý nguồn liệu đồ sộ với chi phí thấp thời gian nhanh Với việc áp dụng MapReduce, Amazon xử lý file log phát sinh trình bán hàng mạng, phục vụ cho việc dự đoán xu hướng mua hàng khách hàng, sản phẩm mua nhiều [2] Facebook xử lý khối lượng 10 tỷ hình ảnh mà họ lưu trữ để rút trích thơng tin kích thước hình ảnh, phát hình ảnh xấu Vì lý mà tơi chọn đề tài “Phân cụm liệu dùng giải thuật Đa K-Means++ dựa Hadoop MapReduce Spark” làm đề tài luận văn Tổng quan vấn đề nghiên cứu Đề tài giới thiệu khái niệm, phân tích, nghiên cứu mơ hình MapReduce, trình bày giải pháp hadoop, phân cụm liệu dựa vào thuật toán k-mean Bài viết tìm hiểu hành vi thuật tốn phân nhóm nói chạy tảng liệu lớn MapReduce job Phân cụm hình ảnh bước quan trọng việc khai thác hình ảnh (vệ tinh, rừng, đồi ) Trong thử nghiệm tôi, chạy đồng thời nhiều thuật toán K-means với tâm ban đầu khác giá trị k lần lặp lại MapReduce jobs Để khởi tạo tâm ban đầu, triển khai Scalable K-Means ++ MapReduce (MR) job [1] Chúng chạy thuật toán đánh giá Simplified Silhouette Index [2] cho kết phân cụm nhiều lần lần lặp lại MR job Luận văn khám phá hành vi thuật toán phân cụm đề cập chạy tảng liệu lớn MapReduce Spark Nền tảng Spark chọn phổ biến dành cho xử lý nhanh, đặc biệt nơi vòng lặp có quan hệ với Mục đích nghiên cứu Nghiên cứu khái niệm, vai trò, ứng dụng kỹ thuật phân cụm liệu Nghiên cứu triển khai phân cụm liệu giải thuật K-Means++ dựa mơ hình lập trình MapReduce Đối tượng phạm vi nghiên cứu Nghiên cứu phân cụm liệu dựa MapReduce, tìm hiểu MapReduce Hadoop, nghiên cứu thuật toán K-means Hiểu áp dụng phân cụm liệu Nghiên cứu mơ hình lâp ̣ trình MapReduce viêc ứng dung vào tốn xử lý mơṭ lươṇg lớn liệu Sử dụng Hadoop, môt thể MapReduce cho viêc ̣ phân tích liêụ Áp dụng cấu trúc, tham chiếu đăc trưng mơ hình MapReduce vào tốn phân phân cụm liệu Phạm vi nghiên cứu: nghiên cứu tập liệu chuẩn Dataset khai thác liệu lớn; Nguồn liệu lấy từ tập liệu chuẩn Dataset Phương pháp nghiên cứu Phương pháp tài liệu: Nghiên cứu, tìm hiểu lý thuyết kỹ thuật phân cụm liệu Phương pháp thực nghiệm: Cài đặt mơ hình lập trình MapReduce dựa Hadoop Sử duṇg ngơn ngữ lâp ̣ trình Java tích hợp Framework Hadoop Luận văn này, thực MapReduce để tìm giá trị tối ưu k cách thực thi thuật toán K-means với giá trị thay đổi K lặp MapReduce Chương - TỔNG QUAN VỀ ĐỀ TÀI Ngày nay, với phát triển vượt bậc xã hội lĩnh vực khoa học kĩ thuật, nhu cầu xử lý liệu máy tính lại trở nên cấp thiết hết Với cơng nghệ đại, nhiều petabyte liệu có độ phân giải cao tạo hàng ngày Trong lĩnh vực viễn thám, nạn phá rừng, thay đổi khí hậu, hệ sinh thái nhiệt độ bề mặt mặt đất số lĩnh vực nghiên cứu chính, nơi mà việc khai thác thông tin phân cụm hình ảnh đóng vai trò quan trọng Kể từ đó, phân cụm kỹ thuật để xử lý liệu Phân cụm toàn liệu vào cụm, gom nhóm có tính chất tương tự thành cụm Những điểm liệu cụm tính tương tự điểm liệu cụm khác nhóm lại cụm riêng biệt K-Means thuật toán quan trọng sử dụng phổ biến kỹ thuật phân cụm, sử dụng tất lĩnh vực, bao gồm viễn thám [3] Giả sử D tập liệu chứa n đối tượng Phân nhóm đối tượng vào cụm k, Cx ⊂ D Cx ∩ Cy = φ cho (1 ≤ x, y ≤ k) Do số lượng liệu lớn, xử lý thách thức nhà nghiên cứu chuyên gia ngành công nghiệp Hadoop tảng tiêu chuẩn cung cấp khả lưu trữ xử lý liệu lớn mơi trường phân tán Nó có khả để phân phối liệu xử lý riêng biệt nút cụm từ giảm thiểu đường chuyền Hadoop Distributed File System (HDFS) giúp việc phân phối phần tập tin cách hiệu [9] Hadoop kế thừa nhà nghiên cứu để chạy K-means [18], [10] Các nghiên cứu tiến hành để chạy thuật toán Hadoop để cải thiện hiệu suất khả mở rộng Hadoop [1], [16] Mở rộng kết quan sát, nghiên cứu khám phá thuật toán chạy đa song song Scalable K-means ++ clustering liệu cho giá trị khác k lặp thay chạy lặp lặp lại cho giá trị k khác Giá trị k thích hợp định kết tối ưu clustering Trong ứng dụng thực tế, số lượng cụm thường khơng biết trước Vì để xác định k chạy k tăng dần nhiều lần nhằm xác định số lượng xác cụm Các giá trị thích hợp k chọn cách đánh giá số hiệu lực cụm cho tất lần thực Tùy thuộc vào cụm tìm thấy cho giá trị khác k, chúng tơi xác nhận số lượng thích hợp cụm yêu cầu Chính quan doanh nghiệp phủ NASA sử dụng Spark để xử lý petabyte liệu [4] Do đó, trở nên cần thiết để nghiên cứu thực thí nghiệm Spark với Hadoop MapReduce Chương luận văn cung cấp tảng cơng trình liên quan, thảo luận hệ sinh thái Hadoop với thông tin framework MapReduce Apache Spark Chương phương pháp luận, phân cụm liệu dùng giải thuật Đa k-means++ dựa Hadoop MapReduce Spark, bao gồm thuật tốn mà chúng tơi sử dụng cho MapReduce Spark tương ứng Chương cung cấp tất chi tiết thí nghiệm phần cuối báo kết luận phát Chương – CƠ SỞ LÝ THUYẾT VÀ CƠNG NGHỆ 2.1 Thuật tốn K-Means 2.1.1 Giới thiệu thuật toán K-Means K-Means thuật toán đơn giản lại hiệu sử dụng rộng rãi Thuật tốn k-means có giai đoạn chính: - Khởi tạo: Chọn k điểm làm tâm ban đầu - Lặp lặp lại bước sau: Bước 1: Đối với tất điểm, tính tốn khoảng cách điểm tâm Phân điểm liệu vào cluster có tâm gần Bước 2: Tìm điểm tâm cách lấy trung bình cộng tất các điểm liệu gán vào cluster Bước 3: Lặp lại bước 1, bước tiêu chuẩn hội tụ đáp ứng tiêu chuẩn hội tụ đáp ứng cụm ổn định Các tiêu chí hội tụ đáp ứng cụm ổn định Khơng có thay đổi cluster thành phần, tức thay đổi xảy giai đoạn gán Độ phức tạp thuật toán O (nki) n viết tắt tổng số điểm, k tổng số phân vùng (các cụm) tạo i là số lần lặp thực [6] 2.1.2 Hạn chế nhược điểm Việc lựa chọn tâm ban đầu khơng dẫn đến phân nhóm tối ưu Nếu tâm ban đầu khơng chọn cách khơn ngoan K-Means hội tụ cục Thứ hai, tính chất thuật tốn làm cho khó khăn để xử lý song song Các thí nghiệm tiến hành để khắc phục tính chất cách chạy thuật tốn mơi trường phân tán Thứ ba, giá trị k cần phải biết trước K-Means trải qua nhiều cải tiến vấn đề thuật tốn cốt lõi 12 Tập tin, initialpoints.txt chứa tất centroids Trong thiết lập MapReduce 2, đọc tập tin điền vào danh sách centroid cho mapper Tệp tạo sau MapReduce gửi đầu vào cho MapReduce chứa thông tin tất pixel MapReduce jobs thực lặp lặp lại vài vòng chúng cho kết đủ tốt [1] Đối với lần chạy MR2, vị trí centroid tính tệp initialpoints.txt cập nhật MapReduce tiếp tục thực vài vòng để lấy k tâm ban đầu từ cụm lấy mẫu C Công việc MapReduce chạy lặp lặp lại cho vài vòng chúng phải đủ để có kết tốt [3.] Mỗi lần chạy MR2, vị trí centroid tính tệp initialpoints.txt cập nhật tương ứng Các MapReduce tiếp tục thực vài vòng để có centroids ban đầu k từ cụm lấy mẫu C Mapper: a Pre-requisite: initpoints.txt: centroids file [Different files for different value of k] b Input: File containing all information c setup: Read initpoints.txt and populate list of cluster centroids d map(): - Với điểm ảnh: -Lặp qua tất cụm centroids tính khoảng cách Euclide giá trị Lab centroid pixel đầu vào Khoảng cách thấp coi khoảng cách gần Một đối tượng Initial Points Detail tạo có tọa độ điểm ảnh, màu sắc bình phương khoảng cách gần nhất, d2 (x, C), x điểm C tập điểm cụm -Một key chứa giá trị k Id phân vùng đối tượng Initial Point Details dạng giá trị ghi ngữ cảnh - Kết thúc vòng for Reducer Nhiều reducers gọi tùy thuộc vào số phân vùng, k 13 a Input: danh sách Initial Point Details object b reduce(): Đối với tất điểm chi tiết điểm ban đầu: - Tính tổng khoảng cách tối thiểu φx (C) - Kết thúc for - Các cụm lấy dựa yếu tố tần số lấy mẫu l sử dụng công thức, l * d2 (x, c) / φx (C) theo Scalable K-Means++ [1] c Cleanup(): Nội dung initialpoints.txt cập nhật bao gồm điểm centroid tìm thấy bước Từ có tập tin khơng thể cập nhật HDFS, tệp tạo để giữ nội dung trước Trong suốt q trình lặp lại cuối cùng, tâm k lấy mẫu từ danh sách cụm lấy mẫu C Chúng ta nhận tập tin centroid tương ứng với giá trị k 3.1.3 Phân cụm Đa K-means Đầu MR2 tạo nhiều tập hợp tập tin chứa tất centroids ban đầu k Vì chạy K-Means nhiều lần, khác tập tin centroids ban đầu tạo tùy thuộc vào số lượng cụm hình thành Ví dụ, cho tính clusters, file nên chứa centroids ban đầu, tương tự cho cụm nên có centroids ban đầu… Mapper: a Pre-requisite: Các tệp Centroid (centroid_k.txt) cho giá trị k Mỗi dòng tệp chứa tọa độ pixel, clusterId màu sắc Đây đầu MR b Setup(): Đọc tất tệp tin centroid lưu trữ thông tin HashMap (partitionCentersHashMap) key giá trị k giá trị có chứa danh sách centroids k c map (): Phương pháp gọi cho tọa độ - Đối với khoá partitionCentersHashMap: 14 - Lặp qua tất cụm - Khoảng cách Euclide tính màu sắc điểm ảnh màu sắc cụm - Tìm cụm gần nhất, tạo đối tượng PixelWritable có chứa thơng tin điểm ảnh với cụm lỗi thời gian run job Context Output: k khoá PixelWritable đối tượng - Reducer: Số Reduce xác định giá trị k Điều nhận tất điểm ảnh có giá trị k +Thơng tin pixel lặp lại giá trị cụm tìm thấy +Cập nhật tệp tin centroids (centroid_k.txt) thường xuyên theo thông tin cập nhật 3.1.4 Xác định cụm Thuật toán Silhouette Index sử dụng để đánh giá tính quán cụm liệu Mục đích thuật tốn để gắn kết đối tượng cụm Nhiều gắn kết, tốt clustering Trong trường hợp tơi, tơi cần phải có thuật tốn phù hợp hạn chế MapReduce Đối với điều này, [7] chọn Simplified Silhouette Index (SSI) số biến thể Silhouette Index ban đầu Cách tiếp cận số Silhouette ban đầu tính tốn tất khoảng cách tất điểm liệu Trong SSI, cách tiếp cận đơn giản hóa khoảng cách tính centroid điểm liệu MapReduce đề cập đến việc đánh giá hợp lệ cụm cho phân vùng Mapper: a Pre-requisite: File chứa tất phân vùng centroids tương ứng với phân vùng Mỗi dòng chứa partition Id, cluster Id, tọa độ X, Y cụm màu sắc cụm File chứa danh sách điểm với thông tin cụm phân vùng Mỗi dòng chứa Id phân vùng, Id Cụm cụm, Nhóm Màu, điểm X, điểm Y, điểm Màu 15 b Setup(): Lặp qua tệp tạo hashmap (partition Center Map) chứa Id phân vùng làm thông tin khóa thơng tin cụm giá trị c map (): Điều gọi cho dòng tập tin thứ hai - Mỗi dòng tệp tương ứng với partitionId (k-value) thông tin pixel - Tùy thuộc vào điểm ảnh cụm định nó, tính khoảng cách hai (khoảng cách) - Ngồi ra, từ tất cụm phân vùng tương ứng tìm thấy cụm với khoảng cách tối thiểu (minClusterDistance) từ điểm -Áp dụng công thức Simplified Silhouette Index formula-(minClusterDistance – distance) /minClusterDistance - SSI với partitionID khoá Reducer: - Một Reducer cho phân vùng nhanh chóng - Tính tổng tất SSI chia cho số pixel - Đầu PartitionId tương ứng với SSI 3.2 Công cụ Spark Multiple Scalable K-Means++ Apache Spark framework mã nguồn mở phù hợp với lớp HDFS hệ sinh thái Hadoop Nó thật dễ dàng để phát triển ba ngôn ngữ Scala, Python Java Nó tích hợp với hệ thống tập tin khác HDFS, hệ thống tập tin cục Amazon EC2 3.2.1 Xử lý hình ảnh Spark job Spark kèm với thư viện khác dành cho mục đích đặc biệt Chúng bao gồm Spark SQL cho xử lý liệu có cấu trúc, GraphX để xử lý đồ thị Spark Streaming để phát trực tuyến Tương tự, Mllib cung cấp khả out-of-the-box cho việc học máy Mllib hỗ trợ cung cấp cho thuật toán phân cụm khác KMeans số chúng [7] Thư viện Mllib cung cấp việc thực K-Mean [1] Trong thử nghiệm tôi, sử dụng lớp Mllib để chạy Scalable K-Means ++ Spark 16 Mã giả Spark job mô tả sau a Read sequence file: Đọc Sequence File dùng spark context and lưu trữ Java Pair RDD b Apply transformation: Áp dụng chuyển đổi để trả danh sách đối tượng PixelInformation cho tệp Lớp PixelInformation chứa tọa độ pixel màu sắc c For each file: Chuyển đổi RGB sang giá trị Lab tạo véc tơ giá trị a* b * Song song với danh sách vectơ giá trị Lab để tạo JavaRDD Với giá trị k: Run KMeans JavaRDD để return model Lưu trữ cụm trung tâm mơ hình đối tượng Cluster Info So sánh danh sách Cluster Info để tạo RDD lưu vào tệp Các cột lưu trữ tệp Id phân vùng, Id cụm, Màu nhóm Đối với điểm ảnh màu, dự đoán số cluster từ mơ hình Tạo đối tượng thơng tin điểm cách sử dụng thông tin Lưu thông tin thu thập vào tập tin văn mà dòng có cột: ID phân vùng, Id cụm, cluster Color, điểm X, điểm Y, điểm Màu Kết thúc với giá trị k Chương trình Spark chúng tơi có ba bước tương tự MapReduce Là pre-requisite, Chuyển đổi liệu hình ảnh thành tập tin trình tự Trong tập tin trình tự, liệu lưu trữ dạng giá trị cặp key-value với tên tệp khoá Các tập tin trình tự sau đọc mảng byte chuyển dổi thành Buffered Image Tất liệu hình ảnh chuổi tập tin đọc thông tin pixcel lưu trữ lớp PixelInformation chứa tọa độ pixcel màu Sau danh sách thơng tin cho tệp tin lưu trữ RDD Java Pair Thuật tốn mơ tả thực Như đề cập thuật toán, K-Means việc thực MLLib áp dụng lặp lặp lại cho giá trị k Ta chạy nhiều 17 Scalable K-Means ++ liệu hình ảnh chúng tơi song song RDD lồng sử dụng biến đổi Các thuật toán tạo hai tập tin văn Tập tin chứa danh sách cụm với thông tin Tập tin thứ hai chứa thông tin tọa độ với cụm phân vùng mà thuộc 3.2.2 Xác định cụm Các tập tin văn tạo thuật toán hoạt động đầu vào cho thuật tốn thứ hai Chúng tơi triển khai Simplified Silhouette Index Spark sử dụng Java SSI thực song song cho giá trị k Với trợ giúp số Silhouette Index, số lượng cụm thích hợp cho hình ảnh tính tốn Nếu người dùng muốn biết số lượng cụm mà hình ảnh cần phải phân chia, sau Simplified Silhouette Index áp dụng cho điểm cụm Điều cần phải chạy giá trị k Clustering xem tốt giá trị SI nhỏ Thay tính tốn lặp lại giá trị Silhouette Index cho giá trị khác k, chương trình tơi thực SSI song song với nhiều giá trị k Các tệp đầu thuật toán điều kiện tiên cho jobs Tệp chứa thông tin cụm Tệp thứ hai chứa thông tin điểm ảnh cho cụm tương ứng a Setup Phase - Đọc tệp có chứa phân vùng với thông tin cụm tạo đầu thuật toán - Một trình chuyển đổi map khác áp dụng RDD bước trước chứa ID phân vùng HashMap danh sách cụm b Computing Phase - Trong bước đầu tiên, đọc nội dung tệp tin thứ hai tạo đầu Thuật toán Tạo JavaRDD Point Information - Đối với phân vùng: 18 o Lấy danh sách cụm Áp dụng map chuyển đổi RDD bước để tính tốn giá trị hình ảnh pixel o Tính tổng giá trị Silhouette cách sử dụng Reduce biến đổi RDD bước trước sau tính Silhouette Index phân vùng cụ thể 3.3 Kết luận chương Trong chương này, cung cấp phương pháp cover lại thuật tốn mà tơi sử dụng cho MapReduce Spark tương ứng, qua làm tiền đề để nghiên cứu sâu phân cụm liệu dùng giải thuật Đa K-Means++ dựa tảng Hadoop 19 Chương - THỰC NGHIỆM Các thí nghiệm tiến hành cụm nút với master slave, nút cài đặt phần mềm chạy máy ảo Oracle VM VirtualBox version 5.2.6 với Operation System là: CentOS Cài đặt cấu hình Hadoop cluster thực theo [20] Chúng sử dụng Apache Hadoop 2.8.1, Tổng số cụm 3(replication factor), kích thước Block 128, Các phần mềm cài đặt trong hadoop cluster: Java JDK, SSH Spark 2.2.0 Hình 4.1: Block size Replication Cả hai chương trình MapReduce and Spark sử dụng cụm giống Chúng tơi cấu hình Spark 2.2.0 cho thí nghiệm Đối với MapReduce, chúng tơi cấu hình 8GB nhớ cho Map Reduce Tương tự Spark, executor memory 8GB với executor-cores máy thực chạy data node Bộ liệu chúng tơi bao gồm liệu hình ảnh có kích thước khác từ 33KB đến 13MB với số điểm ảnh lên đến 13.000.000 điểm ảnh Nhiều tập tin Sequence Files (information_rgb.hseq) tạo với liệu khác lên đến 1GB Tơi chạy thí nghiệm với ba giá trị k=5, & cụm Thuật tốn áp dụng cho nhiều tệp tin cho giá trị k 20 Hình 4.2: Lịch sử ghi nhận trình thực MapReduce (MR) K-Means-MR1: làm nhiệm vụ convert ảnh dạng Sequence hệ màu RGB ảnh chứa pixel information hệ màu L*a*b (chứa thông tin điểm ảnh) K-Means-MR2: làm nhiệm vụ sinh tâm cluster Việc sinh tâm cải tiến thuật toán KMeans thành KMeans++ K-Means-MR3: thực KMeans để phân cụm ảnh K-Means-MR4: đánh giá xem cluster phân cụm tốt theo thuật toán Silhoutte Bên số hình ảnh ghi nhận trình thực Spark Stage Details: cho thấy chi tiết nhiệm vụ cho giai đoạn với id attempt (thất bại) id Hình 4.3: Stages for jobs 21 StagePage thị trang có sắn: http://192.168.176.3:4040/Stage/ Nó phần Stages tab StagePage sử dụng ExecutorsListener để hiển thị ghi stdout stderr executors phần Task Hình 4.4: Executors 4.1 Giai đoạn phân cụm Đối với quy mô, tăng kích thước liệu đầu vào Các liệu đầu vào 3MB, 20MB, 100MB, 200MB, 300MB, 0.5G 1GB với 1000 record chạy Single Node Cluster Tăng quy mô giúp hiểu hành vi thuật tốn tăng kích thước liệu tăng kích thước cụm Đồ thị hình 4.5 cho thấy khả thuật tốn tăng tốc tốt Hadoop MapReduce kích thước liệu tăng lên 22 Hình 4.5: MapReduce Clustering Phase Speedup Đồ thị hình 4.6 cho thấy Spark jobs chạy liệu đầu vào có kích thước (3MB, 20MB, 100MB, 200MB, 300MB, 0.5GB) khác Hiệu suất tăng tốc Spark job tốt Spark Clustering Phase Speedup 600 500 500 400 300 300 200 200 100 100 20 192 43 102 100 Size (MB) Speedup (minute) Hình 4.6: Spark Clustering Phase Speedup Một lần nữa, quy mơ tính dataset tơi làm cho MapReduce 23 4.2 Giai đoạn đa xác định (Multiple Validation Phase) Tương tự giai đoạn phân nhóm, chúng tơi đo hiệu suất đánh giá thuật tốn Silhoutte Index cho MapReduce Spark Hành vi giai đoạn đánh giá tương tự giai đoạn phân nhóm Hiệu suất tăng tốc tốt cho MapReduce Hình 4.7 cho thấy quan hệ tương đối cho giá trị tăng tốc với liệu khác Hình 4.7: MapReduce Validation Phase Speedup Hình 4.8 cho thấy tốc độ tăng tốc giai đoạn đánh giá chạy Spark Giai đoạn đánh giá hiệu suất tăng tốc trông tốt so với giai đoạn phân cụm Hình 4.8: Spark Validation Phase Speedup 24 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong thí nghiệm chúng tơi, chúng tơi thực phân cụm K-Means lúc cho nhiều giá trị K với Scalable K-Means++ khởi tạo Sau đó, chúng tơi tính Simplified Silhouette Index song song cho nhiều phân vùng với hỗ trợ MapReduce Spark, xác định số cụm thích hợp thông qua Simplified Silhouette Index Luận văn đo tăng tốc tăng quy mô với liệu khác nhau, node Đối với hai giai đoạn clustering validation, hiệu suất tăng tốc thuật tốn tốt Các thí nghiệm cho thấy thuật tốn có tỉ lệ tốt MapReduce Spark Spark giảm thời gian triển khai dự án, giảm số lượng dòng code hiệu gần tương đương Môi trường phân cụm tơi nhỏ chúng tơi khơng thể xử lý tệp lớn với cấu hình máy tính (processor core i7; Ram 16G) Trong thí nghiệm tơi, tơi có kế hoạch sử dụng tệp lớn khác lên đến hang chục GB số node cụm lớn từ 16-32 node cho nút đơn tập tin phân phối qua nhiều nút Chúng ta sửa đổi thuật toán để khai thác MapReduce khả xử lý phân phối Apache Spark tốt 25 DANH MỤC TÀI LIỆU THAM KHẢO [1] Đặng Nguyễn Đình Duy – Nguyễn Tấn Dương (2010), Tìm hiểu tảng phát triển phân tán với Hadoop áp dụng cho seach engine phân tán, ĐHKHTN [2] Trần Thị Lịch (2014), Khai phá luật kết hợp phân tán dựa mô hình mapreduce [3] B Bahmani, B Moseley, A Vattani, R Kumar and S Vassilvitskii (2012), “Scalable k-means++” in International Conference on Very Large Databases [4] D Arthur and S Vassilvitskii (2007), “k-means++: The advantages of careful seeding” in SODA, Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms [5] J Freeman (2015), “Open source tools for large-scale neuroscience” Current Opinion in Neurobiology, vol 32, p.156–163 [6] J Han, M Kamber and J Pei, “Partitioning Methods,” in Data Mining Concepts and Techniques, Elsevier [7] K D Garcia and M C Naldi (2014), “Multiple Parallel MapReduce k-means Clustering with Validation and Selection,” in Brazilian Conference on Intelligent Systems, IEEE [8] L Kaufman and P J Rousseeuw (1990), Finding Groups in Data: An Introduction to Cluster Analysis, Wiley [9] L Vendramin, R J G B Campello and E R Hruschka (2010), Relative Clustering Validity Criteria: A Comparative Overview, SIAM [10] M AlDaoud and S A Roberts (1996), “New methods for the initialization of clusters” Pattern Recognition Letters, pp.451-455 [11] T White, “Hadoop I/O : File Based Data Structures” in Hadoop - The Definitive Guide, O'Reilly [12] Y Xu, W Qu, G Min, K Li and Z Liu (2014), “Efficient k-Means++ Approximation with MapReduce” IEEE Transactions on parallel and distributed systems, vol 25, no 12 26 [13] W Zhao, H Ma and Q He (2009), Parallel K-Means Clustering Based on MapReduce, in CloudCom, Beijing [14] Z Lv, Y Hu, Z Haidong, J Wu, B Li and H Zhao (2010), “Parallel K-Means Clustering of Remote Sensing Images Based on MapReduce” in International Conference on Web Information Systems and Mining, WISM [15] D Miner and A Shook (2012), MapReduce Design Patterns, O'Reilly [16] International journal of advanced studies in computer science and engineering ijascse volume issue 4, 2016 [17] Jeffrey Dean and Sanjay Ghemawa (2004), “MapReduce: Simplified Data Processing on Large Clusters”, OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation [18] Apache Spark [Online] Available: http://spark.apache.org/docs/1.3.0/mllibclustering.html#kmeans [19] C Mattmann, (2015) SciSpark: Interactive and Highly Scalable Climate Model Analytics [Online] Available: http://esto.nasa.gov/estf2015/presentations/ Mattmann_s1p8_estf2015.pdf [20] Color Management Information from Phil Cruse [Online] Available: http://www.colourphil.co.uk/lab_lch_colour_space.shtml, truy nhập ngày 13/9/2017 [21] Wikipedia [Online] Available: http://en.wikipedia.org/wiki/Lab_colorspace, truy nhập ngày 23/4/2018 ... kỹ thuật phân cụm liệu Nghiên cứu triển khai phân cụm liệu giải thuật K-Means++ dựa mô hình lập trình MapReduce Đối tượng phạm vi nghiên cứu Nghiên cứu phân cụm liệu dựa MapReduce, tìm hiểu MapReduce. .. thác thơng tin phân cụm hình ảnh đóng vai trò quan trọng Kể từ đó, phân cụm kỹ thuật để xử lý liệu Phân cụm toàn liệu vào cụm, gom nhóm có tính chất tương tự thành cụm Những điểm liệu cụm tính tương... đề tài Phân cụm liệu dùng giải thuật Đa K-Means++ dựa Hadoop MapReduce Spark làm đề tài luận văn Tổng quan vấn đề nghiên cứu Đề tài giới thiệu khái niệm, phân tích, nghiên cứu mơ hình MapReduce,