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ĩ)

58 338 1
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ĩ)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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ĩ)

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN ANH VINH NGUYỄN ANH VINH PHÂN CỤM DỮ LIỆU DÙNG GIẢI THUẬT ĐA K- MEANS++ TRÊN HADOOP HỆ THỐNG THÔNG TIN MAPREDUCE SPARK LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng nghiên cứu/ứng dụng) 2015 – 2018 TP HCM 2018 TP HỒ CHÍ MINH - 2018 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN ANH VINH PHÂN CỤM DỮ LIỆU DÙNG GIẢI THUẬT ĐA K-MEANS++ TRÊN HADOOP MAPREDUCE SPARK Chuyên ngành: Mã số: Hệ thống thông tin 8480104 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGÔ QUỐC VIỆT TP.HCM – 2018 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 LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn chân thành đến TS Ngô Quốc Việt Thầy tận tâm dẫn, truyền đạt kiến thức kinh nghiệm quý báu cho suốt thời gian thực luận văn Tơi xin gửi lời cảm ơn đến q thầy cô khoa Đào tạo Sau đại học Học Viện Cơng Nghệ Bưu Chính Viễn Thơng sở thành phố Hồ Chí Minh trang bị cho tơi kiến thức tảng quan trọng suốt trình tơi theo học cuối cùng, tơi xin gửi lời cảm ơn đến gia đình bạn bè, người động viên suốt thời gian qua Mặc cố gắng song luận văn không tránh khỏi thiếu sót Tơi mong nhận ý kiến đóng góp thầy để tơi hồn thiện luận văn Xin trân trọng cảm ơn 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 iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v DANH SÁCH HÌNH VẼ vi MỞ ĐẦU .1 Chương - TỔNG QUAN VỀ ĐỀ TÀI .4 Chương – CƠ SỞ LÝ THUYẾT 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 .8 2.2 Thuật toán Silhouette Index .8 2.2.1 Biểu thức toán học .9 2.2.2 Độ phức tạp thuật toán 11 2.3 Các cơng trình liên quan 11 2.4 Apache Hadoop 12 2.4.1 Kiến trúc Hadoop cluster 13 2.4.2 Thành phần Hadoop 17 2.5 Hadoop Distributed File System (HDFS) 18 2.5.1 Kiến trúc HDFS 18 2.5.2 Đọc file từ HDFS 19 2.5.3 Ghi file xuống HDFS 20 2.6 MapReduce 21 2.7 Apache Spark 25 iv 2.8 Kết luận chương 30 Chương – PHÂN CỤM DỮ LIỆU DÙNG GIẢI THUẬT ĐA K-MEANS++ TRÊN HADOOP SPARK 31 3.1 Multiple K-means MapReduce (MKMeansMR) .33 3.1.1 Đọc hình ảnh .34 3.1.2 Khởi tạo Scalable K-Means++ với MapReduce .34 3.1.3 Phân cụm đa K-means .36 3.1.4 Xác định cụm 37 3.2 Công cụ Spark Multiple Scalable K-means++ .38 3.2.1 Xử lý hình ảnh Spark job 39 3.2.2 Xác định cụm 40 3.3 Kết luận chương 41 Chương - THỰC NGHIỆM 42 4.1 Giai đoạn phân cụm 45 4.2 Giai đoạn đa xác định (multiple Validation Phase) 47 KẾT LUẬN HƯỚNG PHÁT TRIỂN 48 DANH MỤC TÀI LIỆU THAM KHẢO 49 v DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt HDFS Hadoop Distributed File System Hệ thống tập tin phân tán MKMeansMR Multiple K-means MapReduce Đa K-means MapReduce RDD Resilient Distributed Datasets Tập liệu phân tán RDDs SSI Resilient Distributed Datasets Simplified Silhouette Index Tập liệu phân tán linh hoạt Chỉ số Silhouette đơn giản MR MR1 MapReduce MapReduce Mơ hình tính tốn Mơ hình tính tốn MR2 MR3 MR4 MapReduce MapReduce MapReduce Mơ hình tính tốn Mơ hình tính tốn Mơ hình tính tốn vi DANH SÁCH HÌNH VẼ Hình 2.1: Sơ đồ mơ tả thuật tốn K-Means Hình 2.2: Kiến trúc Hadoop cluster 15 Hình 2.3: Tổng quan cụm Hadoop 16 Hình 2.4: Kiến trúc HDFS 19 Hình 2.5: Quá trình đọc file HDFS 20 Hình 2.6: Quá trình tạo ghi liệu lên file HDFS 21 Hình 2.7: Mơ hình MapReduce Google 23 Hình 2.8: Q trình thực MapReduce tốn đếm từ 25 Hình 2.9: DAG Visualization 26 Hình 2.10: Apache Spark components 28 Hình 2.11: Một số thống kê spark 30 Hình 3.1: Phương pháp thực 32 Hình 3.2: Thí nghiệm MapReduce 33 Hình 4.1: Block size Replication 42 Hình 4.2: Lịch sử ghi nhận trình thực MapReduce (MR) 43 Hình 4.3: Stages for jobs 44 Hình 4.4: Executors 45 Hình 4.5: MapReduce Clustering Phase Speedup 46 Hình 4.6: Spark Clustering Phase Speedup 46 Hình 4.7: MapReduce Validation Phase Speedup 47 Hình 4.8: Spark Validation Phase Speedup 47 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 Từ hình thành đến hết năm 2003, tồn giới có khoảng tỷ gigabyte liệu, lượng liệu tạo ngày năm 2011 Đến năm 2013, khối lượng liệu tạo sau 10 phút Do đó, khơng có ngạc nhiên mà 90% liệu tồn giới tạo vài năm qua 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ý toà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ẻ MapReduce làm đơn giản hố giải thuật tính tốn phân tán Với MapReduce, bạn cần cung cấp hai hàm Map Reduce với số thành phần xử lý liệu đầu vào Vì vậy, nhà phát triển ứng dụng phân tán tập trung nhiều cho phần logic ứng dụng, bỏ qua chi tiết phức tạp việc phân tán xử lý 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à 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 tốn k-means 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 chúng tôi, chúng tơi chạy đồng thời nhiều thuật tố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] Tôi 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 [22] 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-Mean++ dựa mơ hình lập trình MapReduce Spark 36 -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 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 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, cụ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 tâm 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 tâm ban đầu, tương tự cho cụm nên có tâm ban đầu… 37 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 tâm k c Map (): Phương pháp gọi cho tọa độ - Đối với khoá partitionCentersHashMap: - 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) bình thường 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, [16] 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 38 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 tâm đ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 tâm 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 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 value c map ():Được 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) - Ngoà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 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ữ viz 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 39 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 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 vector 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 40 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 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 41 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: 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 đa giải thuật K-Mean++ dựa tảng Hadoop 42 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 Chúng sử dụng Apache Hadoop 2.8.1, tổng số cụm 3(replication factor), kích thước Block 128, 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 bao gồm liệu hình ảnh có kích thước khác từ 33KB đến 6.5MB với số điểm ảnh lên đến 14.500.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 43 Hình 4.2: Lịch sử ghi nhận trình thực MapReduce 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 tố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 44 Hình 4.3: Stages for jobs StagePage thị trang có sẵn: http://192.168.176.3:4040/Stage/ Nó phần Stages tab StagePage sử dụng JobProgressListener cha RDDOperationGraphListener để tính số liệu Cụ thể hơn, StagePage sử dụng đăng ký stageIdToData JobProgressListener để truy cập vào stage cho id attempt giai đoạn cho StagePage sử dụng ExecutorsListener để hiển thị ghi stdout stderr executors phần Task 45 Hình 4.4: Executors 4.1 Giai đoạn phân cụm Đối với quy mơ, tơi tăng kích thước liệu đầu vào Các liệu đầu vào 3MB, 20MB, 100MB, 200MB, 300MB, 0.5GB 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 46 Đồ 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 Màu xanh đồ thị thị kích thước liệu, màu cam tốc độ thời gian xử lý 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 làm cho MapReduce 47 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 toá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 48 KẾT LUẬN HƯỚNG PHÁT TRIỂN Trong thí nghiệm chúng tôi, thực phân cụm K-Means lúc cho nhiều giá trị K với Scalable Kmeans++ 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 toá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ỏ 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 tốn để khai thác MapReduce khả xử lý phân phối Apache Spark tốt 49 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, Đại học Khoa học Tự nhiên, TP HCM, 2010 [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, Học viện Cơng nghệ Bưu Viễn Thơng, TP HCM, 2014 [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 50 [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 [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 [22] https://arxiv.org/abs/1605.01802, truy nhập ngày 3/4/2018 [23] https://remotesensing.usgs.gov, truy nhập ngày 25/9/2017 ... - NGUYỄN ANH VINH PHÂN CỤM DỮ LIỆU DÙNG GIẢI THUẬT ĐA K-MEANS++ TRÊN HADOOP MAPREDUCE VÀ SPARK Chuyên ngành: Mã số: Hệ thống thông tin 8480104 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng... thái Hadoop với thông tin framework MapReduce Apache Spark Chương 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. .. 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-Mean++ dựa mô hình lập trình MapReduce Spark 3 Đối tượng phạm vi nghiên cứu Nghiên cứu phân cụm liệu dựa MapReduce,

Ngày đăng: 24/08/2018, 16:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan