intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn Thạc sĩ Công nghệ thông tin: Phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng dựa trên thuật toán phân cụm đưa ra chính sách khuyến mại về sản phẩm và theo phân khúc khách hàng

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:81

33
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung chính của luận văn trình bày việc phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng dựa trên thuật toán phân cụm đưa ra chính sách khuyến mại về sản phẩm và theo phân khúc khách hàng. Mời các bạn tham khảo!

Chủ đề:
Lưu

Nội dung Text: Luận văn Thạc sĩ Công nghệ thông tin: Phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng dựa trên thuật toán phân cụm đưa ra chính sách khuyến mại về sản phẩm và theo phân khúc khách hàng

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG ANH DŨNG PHÂN TÍCH HÀNH VI SỬ DỤNG DỊCH VỤ VIỄN THÔNG CỦA KHÁCH HÀNG DỰA TRÊN THUẬT TOÁN PHÂN CỤM ĐƯA RA CHÍNH SÁCH KHUYẾN MẠI VỀ SẢN PHẨM VÀ THEO PHÂN KHÚC KHÁCH HÀNG Ngành: Công Nghệ Thông Tin Chuyên ngành: Khoa Học Máy Tính Mã Số: 8480101.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. TRẦN TRÚC MAI TS. NGUYỄN ĐÌNH HÓA Hà nội – 2020
  2. LỜI CẢM ƠN Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo, TS Trần Trúc Mai, người đã định hướng về mục tiêu và cách thức thực hiện đề tài. TS Nguyễn Đình Hóa – người đã hướng dẫn, khuyến khích, chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thành nhiệm vụ và đề tài của mình. Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐHQGHN đã tận tình đào tạo, cung cấp cho tôi những kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhất cho tôi trong suốt quá trình học tập, nghiên cứu tại trường. Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôi cùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khi vấp phải những khó khăn, bế tắc. Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại Trung Tâm Phân Tích Dữ Liệu – Viettel, đã giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trình thạc sĩ tại Đại học Công nghệ, Đại học Quốc Gia Hà Nội. 2
  3. LỜI CAM ĐOAN Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “PHÂN TÍCH HÀNH VI SỬ DỤNG DỊCH VỤ VIỄN THÔNG CỦA KHÁCH HÀNG DỰA TRÊN THUẬT TOÁN PHÂN CỤM ĐƯA RA CHÍNH SÁCH KHUYẾN MẠI VỀ SẢN PHẨM VÀ THEO PHÂN KHÚC KHÁCH HÀNG” là công trình nghiên cứu của riêng tôi, không sao chép lại của người khác. Trong toàn bộ nội dung của luận văn, những điều đã được trình bày hoặc là của chính cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này. Hà Nội, ngày …. tháng … năm ….. ….. 3
  4. Mục Lục LỜI CẢM ƠN ....................................................................................................................... 2 LỜI CAM ĐOAN ................................................................................................................. 3 Chương 1: Giới thiệu ....................................................................................................... 7 Chương 2: Công cụ, nền tảng, thuật toán sử dụng và ứng dụng Phân tích dữ liệu.......... 9 2.1. Các công cụ nền tảng .............................................................................................. 9 2.1.1. Big Data ......................................................................................................... 9 2.1.2. Giới thiệu về Hadoop ................................................................................... 13 2.1.3. Các ứng dụng trên nền tảng Apache Hadoop .............................................. 14 2.1.4. HDFS ........................................................................................................... 16 2.1.5. Đọc ghi dữ liệu trên HDFS .......................................................................... 17 2.1.6. Map-Reduce ................................................................................................. 19 2.1.7. SPARK, nền tảng công cụ và ứng dụng ...................................................... 20 2.2. Giới thiệu về học máy ........................................................................................... 26 2.2.1. Một số khái niệm cơ bản .............................................................................. 27 2.2.2. Các vấn đề trong quá trình thực hiện đề tài ................................................. 30 Chương 3: Spark và giải thuật rừng ngẫu nhiên song song (Parallel Random Forest - PRF) ..................................................................................................................... 32 3.1. Thuật toán rừng ngẫu nhiên .................................................................................. 33 3.2. Giải thuật xử lý song song rừng ngẫu nhiên cho dữ liệu lớn trong nền tảng Spark.. ............................................................................................................................... 36 3.2.1. Tối ưu hóa xử lý dữ liệu đồng thời. ............................................................. 37 3.2.2. Tối ưu hóa xử lý tiến trình đồng thời ........................................................... 44 3.2.3. Phân tích phương pháp xử lý task đồng thời ............................................... 49 3.3. Kmeans, tối ưu hóa xử lý Kmeans với Spark. ...................................................... 52 Chương 4: Triển khai thực nghiệm ................................................................................ 57 4.1. Cơ sở dữ liệu Khách hàng 360 độ ......................................................................... 57 4.2. Mô hình ứng dụng ................................................................................................. 60 4.2.1. Quá trình Phân cụm dữ liệu huấn luyện: ..................................................... 63 4.2.2. Lựa chọn ngẫu nhiên các thuộc tính và đánh giá:........................................ 67 4.2.3. Thực hiện huấn luyện dữ liệu với mô hình Parallel RandomForest ............ 67 4.3. Đánh giá hiệu suất: ................................................................................................ 73 4.3.1. Đánh giá thời gian xử lý với nhóm dữ liệu .................................................. 73 4.3.2. Đánh giá thời gian xử lý với từng cụm ........................................................ 73 4.4. Đánh giá hiệu quả thực tế: .................................................................................... 74 KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU TIẾP THEO ........................................ 77 TÀI LIỆU THAM KHẢO................................................................................................... 80 4
  5. DANH MỤC HÌNH VẼ Hình 2.1. Kiến trúc HDFS .............................................................................. 16 Hình 2.2. Luồng đọc dữ liệu trên HDFS ........................................................ 18 Hình 2.3. Luồng ghi dữ liệu trên HDFS ......................................................... 18 Hình 2.4. Mô hình Map-Reduce...................................................................... 19 Hình 2.5. Cơ chế Map-Reduce........................................................................ 20 Hình 2.6. thành phần của Spark ..................................................................... 22 Hình 2.7. Cơ chế hoạt động của Spark ........................................................... 23 Hình 2.8. Cơ chế hoạt động của Spark và RDD ............................................. 25 Hình 2.9. Zeppelin và phương thức hoạt động ............................................... 26 Hình 2.10. Mô hình học có giám sát ............................................................... 28 Hình 2.11. Mô hình học bán giám sát ............................................................ 30 Hình 3.1. Đồ thị vòng DAG được hình thành khi xử lý dữ liệu song song trên Spark UI. ......................................................................................................... 32 Hình 3.2. Quá trình xây dựng thuật toán rừng ngẫu nhiên RandomForest ... 34 Hình 3.3. Quá trình phân chia dữ liệu theo chiều dọc của các RDDs trong Spark ............................................................................................................... 38 Hình 3.4. Quá trình xử lý ghép dữ liệu đồng thời của PRF ........................... 40 Hình 3.5. Ví dụ về 3 kịch bản khi phân chia dữ liệu....................................... 42 Hình 3.6. Ví dụ của task DAG cho một cây quyết định của PRF ................... 46 Hình 3.7. Hình dạng cụm dữ liệu được khám phá bởi k-means ..................... 53 Hình 3.8. Thuật toán Kmeans trong Spark ..................................................... 54 Hình 4.1. Quá trình kết hợp K-Means và RandomForest .............................. 60 Hình 4.2. Tỷ lệ độ đo theo ROC của các tập train, test và validation ........... 69 Hình 4.3. Important Feataures v1 .................................................................. 70 Hình 4.4. ROC - Receiver operating characteristic ....................................... 71 Hình 4.5. Cumulative Gain ............................................................................. 71 Hình 4.6. Tỷ lệ độ chính xác trung bình của các mô hình cây khác............... 72 Hình 4.7. Phương pháp đo lường kết quả trong thực tế ................................. 74 Hình 4.8. So sánh tỷ lệ triển khai thực tế TG và MHO .................................. 75 Hình 4.9. So sánh tỷ lệ triển khai thực tế MHO và HO .................................. 76 5
  6. DANH MỤC BẢNG Bảng 3-1: Ví dụ về DSI của PRF.................................................................... 40 Bảng 4-1: Danh mục thuộc tính đánh giá xây dựng C360 ............................. 59 Bảng 4-2: Danh mục thuộc tính được sử dụng ............................................... 63 Bảng 4-3: Giá trị DaviesBouldin .................................................................... 64 Bảng 4-4: Kết quả phân cụm .......................................................................... 64 Bảng 4-5: Phân nhóm khách hàng trên 40 tuổi và dưới 40 tuổi ..................... 66 Bảng 4-6: So sánh tỷ lệ Accuracy giữa Precision, Recall .............................. 69 Bảng 4-7: So sánh thời gian chạy giữa KNN và PRF. ................................... 70 6
  7. Chương 1: Giới thiệu Trong thời đại ngày nay, để phát triển một doanh nghiệp, ngoài vốn và nhân lực, “dữ liệu” (data) được coi là nguồn lực không thể thiếu được. Ai cũng đã từng ngạc nhiên nhận thấy khi mua sắm trực tuyến trên các trang thương mại điện tử như eBay, Amazon, Sendo hay Tiki, các trang thương mại điện tử sẽ gợi ý một loạt các sản phẩm có liên quan và phù hợp với nhu cầu của bạn. Ví dụ khi xem điện thoại, trang mua sắm trực tuyến sẽ gợi ý cho bạn mua thêm ốp lưng, pin dự phòng; hoặc khi mua áo thun thì sẽ có thêm gợi ý quần jean và thắt lưng… Bí ẩn đằng sau các trang web thông minh này là mọi sự chào mời sản phẩm đều dựa trên các nghiên cứu về sở thích, thói quen của khách hàng cũng như phân loại được các nhóm khách hàng khác nhau... Vậy những thông tin để phân tích này có được từ đâu và có tác động thế nào đến việc sản xuất kinh doanh của doanh nghiệp? Thứ nhất, dữ liệu khổng lồ về khách hàng có thể có từ các thông tin mà các doanh nghiệp thu thập trong lúc khách hàng ghé thăm, tương tác hay mua sắm trên website của mình; dữ liệu này cũng có thể được mua lại từ các công ty chuyên cung cấp dữ liệu khách hàng. Các thông tin này không chỉ giúp nhà cung ứng hàng hóa, dịch vụ tăng lợi nhuận cho chính họ mà còn tăng trải nghiệm mua sắm của người dùng. Một mặt, nhờ quá trình tìm hiểu, phân tích khách hàng, doanh nghiệp có thể tạo ra các sản phẩm đáp ứng nhu cầu của khách hàng, cũng như xây dựng chính sách phân phối và bán sản phẩm đến tay người tiêu dùng một cách có hiệu quả nhất. Mặt khác, bản thân người tiêu dùng có thể tiết kiệm thời gian và yên tâm trong trải nghiệm mua sắm của mình. Hơn thế nữa, ở tầm ngành và vĩ mô, ứng dụng dữ liệu lớn (Big Data) có thể giúp các tổ chức và chính phủ dự đoán được tỉ lệ thất nghiệp, xu hướng nghề nghiệp của tương lai để đầu tư cho những hạng mục đó, hoặc cắt giảm chi tiêu, kích thích tăng trưởng kinh tế... thậm chí là ra phương án phòng ngừa trước một dịch bệnh nào đó. Việc xây dựng và ứng dụng nền tảng Big Data nếu được khai thác hiệu quả sẽ đem lại những lợi thế cạnh tranh và hiệu quả to lớn trong nhiều lĩnh vực, đặc biệt trong bối cảnh thị trường dịch vụ tài chính đang bão hòa, trên cơ sở đó phân tích những ứng dụng của Big Data và các điều kiện nhằm ứng dụng Big Data cùng với phân tích dữ liệu để sử dụng nguồn tài nguyên hợp lý và tối đa hóa doanh thu cũng như đưa các mục tiêu kinh doanh gắn liền với hành vi 7
  8. khách hàng, nhằm mang lại cho doanh nghiệp phương án kinh doanh hiệu quả nhất. Việc sử dụng và khai thác dữ liệu lớn như một nguồn tài nguyên tương tự như dầu khí, hay các nguồn tài nguyên khác là phương án để đưa doanh nghiệp tiếp cận đến người dùng một cách hiệu quả nhất, kết hợp với mục tiêu kinh doanh để hoàn thiện hơn các chính sách, tối đa hóa lợi ích cho người dùng và tăng trưởng doanh thu bền vững cho doanh nghiệp. Với đề tài “Phân Tích Hành Vi Sử Dụng Dịch Vụ Viễn Thông Của Khách Hàng Dựa Trên Thuật Toán Phân Cụm Đưa Ra Chính Sách Khuyến Mại Về Sản Phẩm Và Theo Phân Khúc Khách Hàng” nhằm mục tiêu đưa ứng dụng Phân tích dữ liệu lớn vào khai thác nguồn tài nguyên đặc biệt – Big Data. Sử dụng các công cụ khai thác Big Data, các công cụ được sử dụng để lưu trữ và vận hành hệ thống Big Data - Hadoop, các công cụ xử lý học máy, xử lý dữ liệu lớn như Spark, Zeppelin (Spark ML), ứng dụng hệ khuyến nghị, học máy và các kỹ thuật phân tích hành vi khách hàng nhằm đưa ra kết quả phù hợp nhất với từng nhóm đối tượng khách hàng sử dụng dịch vụ. Phần còn lại của luận văn được trình bày theo cấu trúc như sau. Chương 2 trình bày các khái niệm cơ bản phục vụ cho nghiên cứu của đề tài, Big Data, các công cụ được sử dụng trong quá trình thực hiện đề tài, phương thức xây dựng hệ cơ sở dữ liệu khách hàng 360 – là bộ khung dữ liệu sử dụng xuyên suốt quá trình xây dựng các mô hình học máy và sử dụng để đánh giá các mô hình học máy, các thuật toán sẽ sử dụng trong quá trình thực hiện. Tính ứng dụng khi sử dụng thư viện Spark ML và các điểm ưu việt của Spark khi sử dụng để xây dựng và ứng dụng cho giải thuật rừng ngẫu nhiên song song. Chương 3 sẽ trình bày về quá trình thực hiện, các phiên bản xây dựng mô hình và kết quả thực nghiệm. Cuối cùng sẽ là phần kết luận, ý nghĩa phương pháp triển khai, các kết quả đạt được và định hướng nghiên cứu tiếp theo. 8
  9. Chương 2: Công cụ, nền tảng, thuật toán sử dụng và ứng dụng Phân tích dữ liệu 2.1. Các công cụ nền tảng Với sự xuất hiện liên tục của nhiều phương thức phổ biến thông tin mới, cùng sự gia tăng của công nghệ điện toán đám mây và Internet vạn vật (IoT), dữ liệu không ngừng tăng lên với tốc độ cao. Quy mô dữ liệu toàn cầu liên tục tăng với tốc độ 2 lần sau mỗi hai năm [1]. Giá trị ứng dụng của dữ liệu trong mọi lĩnh vực đang trở nên quan trọng hơn bao giờ hết. Tồn tại một lượng lớn thông tin đáng giá trong dữ liệu có sẵn. Sự xuất hiện của thời đại dữ liệu lớn cũng đặt ra những vấn đề và thách thức nghiêm trọng bên cạnh những lợi ích rõ ràng. Do nhu cầu kinh doanh và áp lực cạnh tranh, hầu hết mọi doanh nghiệp đều có yêu cầu cao về xử lý dữ liệu theo thời gian thực và hợp lệ [2]. Do đó, vấn đề đầu tiên là làm thế nào để khai thác thông tin có giá trị từ dữ liệu khổng lồ một cách hiệu quả và chính xác. Đồng thời, dữ liệu lớn nắm giữ các đặc điểm như số chiều cao, độ phức tạp và nhiễu. Dữ liệu khổng lồ thường chứa các thuộc tính được tìm thấy trong các biến đầu vào khác nhau ở hàng trăm hoặc hàng nghìn cấp, trong khi mỗi một trong số chúng có thể chứa một ít thông tin. Vấn đề thứ hai là chọn các kỹ thuật thích hợp có thể dẫn đến hiệu suất phân loại tốt cho tập dữ liệu chiều nhiều chiều. Xem xét các sự kiện nói trên, khai thác và phân tích dữ liệu cho dữ liệu quy mô lớn đã trở thành một chủ đề nóng trong học thuật và nghiên cứu công nghiệp. Tốc độ khai thác và phân tích dữ liệu đối với dữ liệu quy mô lớn cũng đã thu hút nhiều sự quan tâm của cả giới học thuật và công nghiệp. Các nghiên cứu về khai thác dữ liệu phân tán và song song dựa trên nền tảng điện toán đám mây đã đạt được nhiều thành tựu thuận lợi [3],[4]. Hadoop [5] là một nền tảng đám mây nổi tiếng được sử dụng rộng rãi trong khai thác dữ liệu. 2.1.1. Big Data Khái niệm Big Data Big Data (Dữ liệu lớn) là thuật ngữ mô tả quá trình xử lý dữ liệu trên một tập dữ liệu lớn bao gồm cả dữ liệu có cấu trúc hay không có cấu trúc. Big Data rất quan trọng với các tổ chức, doanh nghiệp thì dữ liệu ngày một lớn và càng nhiều dữ liệu sẽ giúp các phân tích càng chính xác hơn. Việc phân tích 9
  10. chính xác này sẽ giúp doanh nghiệp đưa ra các quyết định giúp tăng hiệu quả sản xuất, giảm rủi ro và chi phí. Những dữ liệu này tới từ mọi nơi – ví dụ như từ những chiếc cảm biến để thu thập thông tin thời tiết, những thông tin được cập nhật trên các trang web mạng xã hội, những bức ảnh và video kỹ thuật số được đưa lên mạng, dữ liệu giao dịch của các hoạt động mua sắm trên mạng... – dưới mọi hình thức khác nhau (có cấu trúc, phi cấu trúc, bán cấu trúc). Đó chính là dữ liệu lớn. Big Data là thuật ngữ dùng để chỉ một tập hợp dữ liệu rất lớn và hỗn tạp đến nỗi những công cụ, ứng dụng xử lí dữ liệu truyền thống khó có thể nào đảm đương được. Bằng việc tổng hợp một lượng thông tin lớn từ các nguồn khác nhau khiến cho Big Data trở thành một công cụ rất mạnh cho việc ra các quyết định kinh doanh, nhận diện hành vi và xu hướng nhanh hơn và tốt hơn rất nhiều so với cách thức truyền thống. Big Data được nhận diện trên ba khía cạnh chính: Dữ liệu (Data), Công nghệ (Technology), Quy mô (Size). Thứ nhất, dữ liệu (data) bao gồm các dữ liệu thuộc nhiều định dạng khác nhau như hình ảnh, video, âm nhạc… trên Internet [6]; gồm các dữ liệu thu thập từ các hệ thống cung ứng dịch vụ công nghệ thông tin có kết nối với hệ thống máy chủ; dữ liệu của khách hàng ở các ứng dụng thông minh và các thiết bị có kết nối mạng; dữ liệu của người dùng để lại trên các nền tảng của mạng xã hội, việc ứng dụng khai phá dữ liệu lớn sẽ tạo thành quy trình khép kín, việc bổ sung dữ liệu và huấn luyên được diễn ra liên tục [7]. Do các dữ liệu được cập nhật qua các thiết bị kết nối mạng từng giờ, từng phút, từng giây và đến từ nhiều nguồn khác nhau nên khối lượng dữ liệu này là rất lớn (Big). Hiện nay, Big Data được đo lường theo đơn vị Terabytes (TB), Petabytes (PB) và Exabytes (EB). Có thể dễ dàng lấy một vài ví dụ như Walmart xử lý hơn 1 triệu giao dịch của khách hàng mỗi giờ, dữ liệu nhập vào ước tính hơn 2,5 PB; Facebook có hơn 1.9 tỷ người dùng đồng thời, có hàng trăm server xử lý và lưu trữ dữ liệu [8]. Twitter là một hệ thống mạng xã hội với 1,3 tỷ người dùng đang hoạt động và trong giai đoạn đầu [9]. Yếu tố nhận diện thứ hai của Big Data là công nghệ (technology). Công nghệ thường được thiết kế và hình thành một hệ sinh thái từ dưới đi lên để có khả năng xử lý các dữ liệu lớn và phức tạp. Một trong những hệ sinh thái mạnh nhất hiện nay phải kể đến Hadoop với khả năng xử lý dữ liệu có thể được tăng lên cùng mức độ phức tạp của dữ liệu, năng lực này là một công cụ vô giá trong bất kỳ ứng dụng Big Data nào. Yếu tố nhận diện thứ ba của Big Data là quy mô dữ liệu. Hiện nay vẫn chưa có câu 10
  11. trả lời chính xác cho câu hỏi dữ liệu thế nào gọi là lớn. Theo ngầm hiểu thì khi dữ liệu vượt quá khả năng xử lý của các hệ thống truyền thống thì sẽ được xếp vào Big Data. Việc bản thân các doanh nghiệp cũng đang sở hữu Big Data của riêng mình đã trở nên phổ biến. Chẳng hạn, như trang bán hàng trực tuyến eBay thì sử dụng hai trung tâm dữ liệu với dung lượng lên đến 40 petabyte để chứa những truy vấn, tìm kiếm, đề xuất cho khách hàng cũng như thông tin về hàng hóa của mình. Hay nhà bán lẻ online Amazon.com phải xử lí hàng triệu hoạt động mỗi ngày cũng như những yêu cầu từ khoảng nửa triệu đối tác bán hàng. Tương tự, Facebook cũng phải quản lí 50 tỉ bức ảnh từ người dùng tải lên [10], YouTube hay Google thì phải lưu lại hết các lượt truy vấn và video của người dùng cùng nhiều loại thông tin khác có liên quan. Theo kết quả khảo sát được thực hiện bởi Qubole - công ty hàng đầu về cung cấp giải pháp, nền tảng quản lí dữ liệu hạ tầng đám mây phục vụ phân tích - và bởi Dimensional Research - một tổ chức nghiên cứu thị trường công nghệ, lĩnh vực chăm sóc khách hàng, kế hoạch công nghệ thông tin, quy trình bán hàng và hoạt động tài chính là các lĩnh vực thu lợi nhiều nhất từ Big Data. Qua đó, thấy được là mục đích khai thác Big Data của các nhà cung ứng hàng hóa, dịch vụ toàn cầu là hướng đến chăm sóc khách hàng, phân tích dữ liệu khách hàng để phát triển sản phẩm, dịch vụ; ứng dụng thông minh để tăng trải nghiệm của khách hàng và giữ chân khách hàng khi sự cạnh tranh ngày càng gay gắt giữa các nhà cung ứng ở hầu hết các lĩnh vực kinh doanh. Với các công cụ phân tích, đặc biệt là công cụ phân tích dự báo (Predictive Analytics) và khai thác dữ liệu (Data mining) [19], Big Data giúp các doanh nghiệp đo lường, phân tích các vấn đề liên quan đến sản phẩm, phát hiện các cơ hội và nguy cơ rủi ro, đồng thời, dự báo doanh thu từ hoạt động kinh doanh hàng ngày. Big Data có thể bao gồm những kiểu dữ liệu sau: Dữ liệu của các hệ thống doanh nghiệp truyền thống bao gồm các dữ liệu từ hệ thống quản lý khách hàng, các giao dịch của hệ thống tài chính doanh nghiệp, các dữ liệu kế toán, thông tin giao dịch của khách hàng và doanh nghiệp... 11
  12. Dữ liệu sinh tự động hoặc do cảm biết: Bao gồm dữ liệu thông tin khách hàng sử dụng dịch vụ, lịch sử truy cập các trang web, các dữ liệu ghi lịch sử thiết bị sử dụng… Dữ liệu mạng xã hội- bao gồm các dữ liệu được sinh ra từ quá trình sử dụng mạng xã hội của người dùng như ảnh, video, thông tin trên Facebook, Twitter, Instagram… Đặc điểm của Big Data Ba đặc điểm chính của Big Data bao gồm Dung lượng (volume), Tốc độ (velocity), Tính đa dạng (variety). Dung lượng của Dữ liệu lớn đang tăng lên mạnh mẽ từng ngày [10].Theo thông tin được Google công bố, cứ mỗi 1 giây, 87000 từ khóa tìm kiếm được thực hiện, hàng petabyte dữ liệu được tạo ra trên toàn thế giới. Về Tốc độ (Velocity) phản ánh tốc độ mà tại đó dữ liệu được phân tích bởi các công ty để cung cấp một trải nghiệm người dùng tốt hơn. Với sự ra đời của các kỹ thuật, công cụ, ứng dụng lưu trữ, nguồn dữ liệu liên tục được bổ sung với tốc độ nhanh chóng. Về Tính đa dạng (Variety) của dữ liệu, việc đa dạng hóa các nguồn dữ liệu đầu vào, từ dữ liệu có cấu trúc, bán cấu trúc cho đến dữ liệu không có cấu trúc, từ các loại dữ liệu dạng giao dịch cho đến các dữ liệu dạng văn bản sinh ngẫu nhiên trên internet. Độ lớn dữ liệu (volume): Dữ liệu sinh ra tự động (machine-generated data) có số lượng nhiều hơn rất nhiều so với dữ liệu truyền thống. Dữ liệu có thể sinh ra hàng TB trong thời gian ngắn và dữ liệu lưu trữ có thể lên đến Petabytes. Cách đây vài năm, việc lưu trữ dữ liệu lớn là một vấn đề khó khăn. Tuy nhiên hiện nay, với việc phần cứng ngày càng rẻ cộng thêm công nghệ lưu trữ đám mây thì việc xác định giá trị cần thiết từ tập dữ liệu lớn mới là vấn đề cốt yếu. Tốc độ xử lý dữ liệu (velocity): Dữ liệu lớn không đồng nghĩa với xử lý chậm. Ngày nay các hệ thống media cần xử lý nhanh và có phản hồi chấp nhận được với người dùng. Trong việc xử lý dữ liệu lớn ta luôn cần quan tâm đến Tốc độ xử lý dữ liệu Tính đa dạng dữ liệu (variety): Với việc thu thập từ nhiều nguồn dữ liệu khác nhau (web, mobile…), Big Data không chỉ có dữ liệu kiểu truyền thống dạng schema mà ngày nay còn có nhiều loại dữ liệu khác như dạng image, 12
  13. video, cấu trúc dữ liệu phức tạp khác… Big Data có thể xử lý dữ liệu có cấu trúc, phi cấu trúc và bán cấu trúc. Để đáp ứng được về các tính chất đó của Big Data, các công ty lớn trên thế giới như Amazon, Google, FaceBook đều sử dụng nền tảng Hadoop làm công cụ lưu trữ và xử lý dữ liệu. 2.1.2. Giới thiệu về Hadoop Apache Hadoop [11] là một framework cho phép xử lý phân tán một tập dữ liệu lớn qua cụm (cluster) các máy tính bằng việc sử dụng mô hình lập trình đơn giản. Được thiết kế để có thể giãn nở thực hiện trên một đến hàng nghìn máy tính là nơi tính toán và lưu trữ cục bộ. Một điểm mới của Apache Hadoop là thay vì thiết đặt cơ chế sẵn sàng cao (High Availability - HA) bằng phần cứng thì bản thân Hadoop được thiết kế để phát hiện và quản lý lỗi tại tầng ứng dụng, do đó sẽ đưa ra dịch vụ có tính sẵn sàng cao HA tại cụm các máy tính nơi có thể xảy ra lỗi bằng cách thiết đặt thêm một ứng dụng (node) dưới dạng hoạt động hoặc chế độ chờ (active/standby). Apache Hadoop được tạo bởi 2 thành phần bao gồm một hệ thống file phân tán Hadoop Distributed Filesystem (HDFS) và một layer để tính toán theo mô hình xử lý Map Reduce. Hadoop là một open source cho phép xử lý dữ liệu theo lô và có khả năng xử lý khối lượng dữ liệu cực lớn. Hadoop sử dụng một cụm các server thông thường để lưu trữ, tính toán. Việc tính toán trên Hadoop Distributed Filesystem (HDFS) được thực hiện một cách song song và trừu tượng với các developer giúp họ tránh được việc lập trình mạng và xử lý bài toán đồng bộ phức tạp. Không giống như nhiều hệ thống phân tán khác, Hadoop cung cấp việc xử lý logic trên nơi lưu dữ liệu mà không phải lấy dữ liệu từ các máy khác giúp tăng hiệu năng một cách mạnh mẽ. Hadoop bao gồm những module sau: Hadoop Common: Các tiện ích cơ bản hỗ trợ Hadoop Hadoop Distributed File System (HDFS™): Hệ thống file phân tán cung cấp khả năng truy vấn song song tối đa hóa theo đường truyền truy cập bởi ứng dụng 13
  14. Hadoop YARN: Framework quản lý lập lịch tác vụ và tài nguyên trên cụm. Hadoop MapReduce: Hệ thống YARN-based để xử lý tập dữ liệu lớn. 2.1.3. Các ứng dụng trên nền tảng Apache Hadoop Apache phát triển một số ứng dụng để việc sử dụng MapReduce một cách dễ dàng hơn đồng thời hỗ trợ việc ghi và lấy dữ liệu trên HDFS được đơn giản. Sau đây là một số ứng dụng thông dụng chúng ta cần quan tâm đến: Apache Hive Hive tạo ra một cơ sở dữ liệu quan hệ dạng trừu tượng cho phép các developer có thể truy vấn dữ liệu bằng SQL. Thực chất đây là việc thi hành một hoặc nhiều job MapReduce trên các cụm. Hive thực hiện việc tạo ra một schema dạng bảng trên tập các file đang tồn tại trên HDFS và quản lý các bản ghi được trích xuất khi chạy một query. Bản thân dữ liệu trên đĩa không thay đổi mà chỉ được lấy ra tại thời điểm query. Các câu lệnh HiveQL được dịch và thực thi trên các lớp map và reduce có sẵn tương ứng với câu lệnh SQL đó. Apache Pig Giống như Hive, Apache Pig được tạo ra để đơn giản việc sử dụng MapReduce job, mà không cần thiết phải viết Java Code. Thay vào đó, người dùng sẽ viết các job xử lý dữ liệu trên ngôn ngữ high-level script mà Pig đã xây dựng. Trong trường hợp cần thao tác xử lý dữ liệu đặc biệt mà Pig chưa hỗ trợ chúng ta có thể hoàn toàn mở rộng Pig script bằng Java. Apache Sqoop Việc chuyển đổi dữ liệu từ dữ liệu quan hệ sang dữ liệu trên Hadoop là một trong vấn đề quan trọng và phổ biến hiện nay. Sqoop viết tắt của “SQL to Hadoop” thực hiện chuyển đổi dữ liệu 2 chiều giữa Hadoop và hầu hết các cơ sở dữ liệu sử dụng JDBC driver. Sử dụng MapReduce, Sqoop thực hiện các hoạt động một cách song song mà không cần phải viết code. Sqoop hỗ trợ các plugin cho từng loại database cụ thể cung cấp các đặc tính cơ bản của hệ quản trị cơ sở dữ liệu quan hệ đó. Hiện nay Sqoop có hỗ trợ sẵn các khai kết nối 14
  15. connectors (hỗ trợ trực tiếp) cho MySQL và PostgreSQL và kèm theo một số connector free cài đặt thêm để hỗ trợ Teradata, Netezza, SQL server và Oracle. Apache Flume Apache Flume là một hệ thống để tập hợp các dữ liệu streaming được thiết kế để truyền khối lượng lớn dữ liệu vào hệ thống ví dụ như Hadoop. Nó hỗ trợ kết nối và ghi dữ liệu trực tiếp tới HDFS. Apache Oozie Trong thực tế, sẽ có rất nhiều job Map Reduce được chạy do đó Apache Oozie được sinh ra với mục đích trở thành một workflow engine để điều phối các job này trên các Hadoop cluster. Workflow có thể hoạt động dựa trên cơ chế thời gian hoặc cơ chế sự kiện. Oozie là một REST service để quản lý workflow và trạng thái hoạt động của luồng. Apache Whirr Apache Whirr được xây dựng để đơn giản hóa việc tạo và deploy các clusters trên môi trường cloud ví dụ như Amazon’s AWS. Apache HBase Apache HBase là cơ sở dữ liệu phân tán (non relational), độ trễ thấp được xây dựng trên nền HDFS. HBase đưa ra một mô hình dữ liệu linh hoạt có các thuộc tính scale-out với API rất đơn giản. Dữ liệu trên HBase được lưu trữ dưới dạng bán cột (semi-columnar) phân chia bởi các hàng trong các region. Các bảng trên HBase có thể lên tới hàng trăm terabyte hoặc một số trường hợp lên đến petabytes. Hiện nay, HBase được sử dụng để phục vụ một khối lượng lớn dữ liệu trong các hệ thống real-time. Apache ZooKeeper Apache ZooKeeper hỗ trợ các tính năng của hệ thống phân tán. Trong thực tế nhiều dự án sử dụng Hadoop có sử dụng ZooKeeper để hỗ trợ các tính năng cần thiết cho hệ thống phân tán (leader election, locking, group membership, service location, config-uration services) 15
  16. Apache HCatalog Apache HCatalog là một dịch vụ cung cấp khả năng chia sẻ schema và các dịch vụ truy cập dữ liệu giữa các ứng dụng trong cùng một hệ thống. Về lâu dài, HCatalog sẽ cung cấp việc kết hợp các tool ví dụ như Hive và Pig để chúng có thể chia sẻ các thông tin về dataset và metadata. 2.1.4. HDFS Hadoop Distributed File System (HDFS) [12] là một hệ thống file phân tán được thiết kế để chạy trên phần cứng thông thường. HDFS cũng tương tự những hệ thống file phân tán hiện có. Tuy nhiên, sự khác biệt ở đây là HDFS có khả năng chịu lỗi cao (fault-tolerant) và được thiết kế để deploy trên các phần cứng rẻ tiền. HDFS cung cấp khả năng truy cập high throughput từ ứng dụng và thích hợp với các ứng dụng có tập dữ liệu lớn. Hình 2.1. Kiến trúc HDFS HDFS có kiến trúc master-worker, (Hình 2.1). Một cụm HDFS (HDFS cluster) bao gồm các Namenode và Datanode. Dữ liệu được lưu trên các block. 16
  17. Một cụm HDFS bao gồm hai loại nút (node) hoạt động theo mô hình nút chủ - nút thợ (master-worker): Một cụm HDFS có 1 namenode (master – nút chủ) Một cụm HDFS có một hoặc nhiều các datanode (worker - nút thợ) Namenode quản lý các namespace filesystem. Nó quản lý một filesystem tree và các metadata cho tất cả các file và thư mục trên tree. Thông tin này được lưu trữ trên đĩa vật lý dưới dạng không gian tên ảnh và nhật ký (edit log). Namenode còn quản lý thông tin các khối (block) của một tập tin được lưu trên những datanodes nào. HDFS đưa ra một không gian tên cho phép dữ liệu được lưu trên tập tin. Trong đó một tập tin được chia ra thành một hay nhiều khối (block) và các block được lưu trữ trên một tập các DataNode. Namenode thực thi các hoạt động trên hệ thống quản trị không gian tên tập tin như mở, đóng, đổi tên tập tin và thư mục. Namenode còn quyết định việc kết nối các khối với các DataNode. Các DataNode có tính năng xử lý các yêu cầu về đọc ghi từ máy khách. Ngoài ra các DataNode còn thực hiện việc tạo, xóa, lặp các khối theo sự hướng dẫn của DataNode Một phần mềm được thiết kế bao gồm NameNode và DataNode có thể chay trên những máy tính thông thường. Yêu cầu duy nhất chỉ là chạy hệ điều hành GNU/Linux. HDFS được xây dựng trên ngôn ngữ Java nên bất kỳ máy nào hỗ trợ Java đều có thể chạy phần mềm thực thi NameNode và DataNode. 2.1.5. Đọc ghi dữ liệu trên HDFS a. Đọc dữ liệu Với khối dữ liệu (block) ID và địa chỉ IP đích máy chủ (host) của Datanode, máy khách (client) có thể liên lạc với các Datanode còn lại để đọc các khối (block) cần thiết. Quá trình này lặp lại cho đến khi tất cả các khối trong file được đọc và máy khách đóng luồng đọc file trực tuyến. 17
  18. Hình 2.2. Luồng đọc dữ liệu trên HDFS Hình 2.2 mô tả quá trình đọc dữ liệu của NameNode từ DataNode thông qua các API của Hadoop. b. Ghi dữ liệu Hình 2.3. Luồng ghi dữ liệu trên HDFS 18
  19. Việc ghi dữ liệu sẽ phức tạp hơn việc đọc dữ liệu đối với hệ thống HDFS. Trong Hình 2.3 ban đầu, máy khách gửi yêu cầu đển tạo một file bằng việc sử dụng Hadoop FileSystem APIs. Một yêu cầu được gửi đến namenode để tạo tập tin metadata nếu user có quyền tạo. Thông tin Metadata cho tập tin mới đã được tạo; tuy nhiên lúc này chưa có một block nào liên kết với tập này. Một tiến trình trả kết quả được gửi lại cho máy khách xác nhận yêu cầu tạo file đã hoàn thành và bắt đầu có thể ghi dữ liệu. Ở mức API, một đối tượng Java là stream sẽ trả về. Dữ liệu của máy khách sẽ ghi vào luồng này và được chia ra thành các gói, lưu trong queue của bộ nhớ. Một tiến trình riêng biệt sẽ liên hệ với namenode để yêu cầu một tập datanode phục vụ cho việc sao lưu dữ liệu vào các khối (block). Máy khách sẽ tạo một kết nối trực tiếp đến datanode đầu tiên trong danh sách. Datanode đầu tiên đó sẽ kết nối lần lượt đến các datanode khác. Các gói dữ liệu được ghi dần vào các datanode. Mỗi datanode sẽ phản hồi dữ liệu ghi thành công hay không. Quá trình này kết thúc khi toàn bộ các gói dữ liệu đã được lưu tại các khối (block) của datanode 2.1.6. Map-Reduce Map-reduce [13] là mô hình dùng để xử lý dữ liệu. Trong quá trình xử lý dữ liệu, MapReduce sẽ chia ra 2 giai đoạn: giai đoạn Map và giai đoạn Reduce. Cả hai giai đoạn này đều có đầu vào và đầu ra ở dạng key, value. Người lập trình cần viết 2 hàm chức năng để có thể xử lý dữ liệu đó là hàm chức năng Map và hàm chức năng Reduce. Hình 2.4. Mô hình Map-Reduce Về mặt định nghĩa thuật toán, ta có thể mô tả Map-Reduce như sau: 19
  20. Input: dữ liệu dưới dạng Key → Value Lập trình viên viết 2 thủ tục: Map(k, v) → * Reduce(k', * Map biến mỗi key k thu được bằng thành cặp . Reduce nhận đầu vào là khoá k' và danh sách cách giá trị v' và trả về kết quả là cặp
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2