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  
4
DANH MỤC HÌNH VẼ  
5
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  
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
     
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  
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  
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  
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  
 
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  
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  
   
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  
 
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  
   
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  
   
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  
thông và lưu trữ. Apache Spark[24] là một nền tảng đám mây tốt khác phù hợp  
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 đủ
pdf 81 trang yennguyen 21200 Free
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:

  • pdfluan_van_phan_tich_hanh_vi_su_dung_dich_vu_vien_thong_cua_kh.pdf