Luận văn 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
ĐẠ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
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
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
Mục Lục
LỜI CẢM ƠN .......................................................................................................................2
LỜI CAM ĐOAN .................................................................................................................3
Giới thiệu .......................................................................................................7
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.4. HDFS ...........................................................................................................16
2.1.5. Đọc ghi dữ liệu trên HDFS..........................................................................17
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
3.1. Thuật toán rừng ngẫu nhiên ..................................................................................33
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.3. Kmeans, tối ưu hóa xử lý Kmeans với Spark. ......................................................52
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.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
TÀI LIỆU THAM KHẢO...................................................................................................80
4
DANH MỤC HÌNH VẼ
Hình 2.1. Kiến trúc HDFS ..............................................................................16
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
Spark UI..........................................................................................................32
Spark ...............................................................................................................38
Hình 4.3. Important Feataures v1 ..................................................................70
Hình 4.5. Cumulative Gain.............................................................................71
5
DANH MỤC BẢNG
Bảng 3-1: Ví dụ về DSI của PRF....................................................................40
Bảng 4-3: Giá trị DaviesBouldin ....................................................................64
Bảng 4-4: Kết quả phân cụm ..........................................................................64
6
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
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
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
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
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
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
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ổ
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à
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
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ụ
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
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
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
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
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
Hadoop YARN: Framework quản lý lập lịch tác vụ và tài nguyên trên
Hadoop MapReduce: Hệ thống YARN-based để xử lý tập dữ liệu lớn.
cụm.
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
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
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
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
cluster) bao gồm các Namenode và Datanode. Dữ liệu được lưu trên các block.
16
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
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.
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
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
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) → <k', v'>*
Reduce(k', <v'>*) → <k', v''>*
Map biến mỗi key k thu được bằng thành cặp <k', v'>. 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 <k', v''>.
Hình 2.5. Cơ chế Map-Reduce
Ví dụ với hình mô tả ở trên thì Map trả về danh sách: <Bear, 1>, <Bear, 1> còn
Reduce nhận kết quả trên và trả về <Bear, 2>.
2.1.7. SPARK, nền tảng công cụ và ứng dụng
Hadoop 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. Trong phạm vi ứng dụng khai phá dữ liệu, khai thác tiềm
năng dữ liệu lớn, một số thuật toán học máy đã được đề xuất dựa trên mô hình
MapReduce. Tuy nhiên, khi các thuật toán này được triển khai dựa trên
MapReduce, các kết quả trung gian thu được trong mỗi lần lặp được ghi vào
Hệ thống tệp phân tán Hadoop (HDFS) và được tải từ đó. Điều này tốn nhiều
thời gian cho các hoạt động I / O của đĩa và cũng tốn nhiều tài nguyên để truyền
cho khai thác dữ liệu lớn. So với Hadoop, mô hình Tập dữ liệu phân tán linh
hoạt (RDD) và mô hình Đồ thị vòng có hướng (DAG) được xây dựng trên
khung tính toán bộ nhớ được hỗ trợ cho Spark. Cho phép lưu trữ một bộ nhớ
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
luan_van_phan_tich_hanh_vi_su_dung_dich_vu_vien_thong_cua_kh.pdf

