Tải bản đầy đủ (.pdf) (24 trang)

Nghiên cứu xây dựng mô hình giải pháp mã nguồn mở cloudera phục vụ triển khai ứng dụng big data tại mobifone tt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (885.71 KB, 24 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

PHẠM XUÂN LỘC

NGHIÊN CỨU XÂY DỰNG MÔ HÌNH GIẢI PHÁP
MÃ NGUỒN MỞ CLOUDERA PHỤC VỤ TRIỂN KHAI
ỨNG DỤNG BIG DATA TẠI MOBIFONE

CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI - 2019


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS.TS. HÀ HẢI NAM

Phản biện 1: …………………………………………………………………..
Phản biện 2: …………………………………………………………………..

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ...............

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông




1

MỞ ĐẦU
1.

Tính cấp thiết của đề tài
Thị trường viễn thông di động tại Việt Nam đang dần trở nên bão hòa, doanh thu từ

thoại và SMS từng bước giảm, sự bùng nổ của các sản phẩm OTT, các mạng xã hội,… cùng
với hạ tầng Internet phát triển, xu hướng công nghệ IoT, Big Data bùng nổ, mạng WIFI khá
phổ biến và cung cấp miễn phí tại nhiều nơi tại Việt Nam đang thực sự là những thách thức
không nhỏ đối với các nhà mạng viễn thông.Việc kinh doanh các dịch vụ truyền thống thoại,
sms, data… mà không có tác động phân tích, tìm hiểu hành vi khách hàng, hiểu rõ nhu cầu
thực sự của khách hàng ngày càng trở nên khó khăn.
Đứng trước những thách thức và nguy cơ ở trên, MobiFone cần phải có tầm nhìn, tư
duy và chiến thuật mới để sẵn sàng thích ứng với sự thay đổi, thích ứng với sự cạnh tranh
ngày càng quyết liệt từ các đối thủ.
Đề tài nghiên cứu hy vọng với giải pháp mã nguồn mở Cloudera đã được nghiên cứu
sẽ được triển khai rộng rãi, góp phần vào việc bổ sung hạ tầng lưu trữ dữ liệu an toàn, lâu
dài, tiết kiệm chi phí cho hệ thống Big Data, cũng như nắm bắt thêm các kỹ thuật, các công
cụ mã nguồn mở để áp dụng, kế thừa sản phẩm từ cộng đồng thế giới vào hệ thống Big Data
hiện tại…góp phần phát triển cộng nghệ Big Data trong MobiFone.

2.

Tổng quan về vấn đề nghiên cứu
 Khảo sát và đánh giá nhu cầu triển khai Big Data ứng dụng các công nghệ mã nguồn
mở.

 Nghiên cứu và triển khai Big Data tại MobiFone ứng dụng Cloudera.
 Xây dựng và triển khai các bài toán phân tích dữ liệu dựa trên nền tảng hạ tầng Big
Data ứng dụng Cloudera.
 Đánh giá kết quả đạt được và hướng phát triển tiếp theo

3.

Mục đích nghiên cứu
 Nghiên cứu tìm hiểu công nghệ mã nguồn mở Cloudera phục vụ triển khai Big Data.
 Xây dựng hệ thống Big Data dựa trên nền tảng Cloudera tại MobiFone.
 Cài đặt, phân tích và triển khai các chương trình khuyến mại và sản xuât kinh doanh
tại MobiFone.

4.

Đối tượng và phạm vi nghiên cứu
 Các sản phẩm mã nguồn mở hiện có trên thị trường về Big Data.


2

 Nghiên cứu chuyên sâu giải pháp Cloudera áp dụng xây dựng Big Data tại
MobiFone.

5.

Phương pháp nghiên cứu
Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm và phân

tích, đánh giá kết quả.



3

CHƯƠNG 1: GIỚI THIỆU VỀ BIG DATA VÀ GIẢI PHÁP
CLOUDERA ÁP DỤNG XÂY DỰNG BIG DATA
Tóm tắt chương
Nội dung chương 1 giới thiệu định nghĩa về Big Data, xu hướng phát triển và nhu
cầu sử dụng công nghệ Big Data, đồng thời giới thiệu nền tảng Cloudera trong việc triển
khai Big Data đang phổ biến trên thế giới. Tóm tắt lịch sử hình thành sản phẩm Cloudera
cũng như đi sâu vào tìm hiểu kiến trúc của Cloudeara và chi tiết các thành phần. Cuối
cùng, giới thiệu những case study cụ thể đã triển khai áp dụng cloudera trong việc triển
khai Big Data thành công tại Việt Nam và trên thế giới.

1.1.

Định nghĩa “Hệ thống Big Data”
Về khái niệm Big Data có thể được định nghĩa phổ biến như sau:
Big Data được hiểu là “Dữ liệu lớn” – là tập hợp dữ liệu có dung lượng của tất cả các

lĩnh vực của đời sống xã hội; chúng vượt mức đảm đương của những ứng dụng và công cụ
truyền thống trong việc thu thập, hiển thị, phân phối, quản lý và xử lý. Tương lai xa dữ
liệu Big Data là không thể đếm được.
Big Data được tạo ra từ nhiều nguồn dữ liệu như mạng xã hội; các dịch vụ ngân
hàng, tài chính, viễn thông; các dịch vụ thương mại điện tử; internet … Big Data ra đời dựa
trên yêu cầu tất yếu của quá trình phát triển dữ liệu số trên phạm vi toàn cầu; hầu hết các
doanh nghiệp đầu tầu trong lĩnh vực công nghệ như: Microsoft, SAP, EMC, HP, Software
AG, Oracle, IBM, Ebay, Amazon.com, Facebook… đều phải quản lý Big Data của mình sở
hữu.


1.2.

Xu hướng phát triển của công nghệ Big Data

1.2.1. Tình hình phát triển và nhu cầu sử dụng công nghệ Big Data trong tương
lai
Trong tương lai, chúng ta sẽ còn tiếp tục chứng kiến sự tăng trưởng của Big Data.
Hiện nay có thể bạn cũng đã nghe đến khái niệm Internet of Things, tức là mang Internet
đến với mọi thứ trong đời sống hằng ngày. Dữ liệu từ Internet of Things thực chất cũng là
được thu thập từ một mạng lưới rất nhiều các cảm biến và thiết bị điện tử, và nó cũng là một
trong những nguồn của Big Data. Lượng dữ liệu khổng lồ này có thể cho các nhà nghiên


4

cứu biết được hành vi tiêu dùng của khách hàng, từ đó tinh chỉnh những thiết bị Internet of
Things cho phù hợp hơn, bắt chúng phục vụ đời sống hằng ngày của chúng ta một cách hiệu
quả hơn. Nó cũng có thể được dùng cho việc sản xuất, từ đó giảm sự liên quan của con
người. Như lời của Daniel Kaufman dự đoán thì “con người sẽ làm ít hơn” nhờ Big Data.

1.2.2. So sánh, đánh giá các giải pháp mã nguồn mở áp dụng cho Big Data
Trên thế giới hiện nay cũng có có một số sản phẩm khác cạnh tranh trong việc lưu
trữ, xử lý dữ liệu lớn như IBM InfoSphere BigInsights, Hortonworks và MapR. Cloudera là
sản phẩm có đầu tiên kể từ khi xuất hiện giải pháp lưu trữ dữ liệu Hadoop. Hortonworks đến
sau này. Trong khi Cloudera và Hortonworks là 100% mã nguồn mở, thì hầu hết các phiên
bản của MapR đi kèm với module độc quyền. Đối ngược với sản phẩm mã nguồn mở thì
IBM InfoSphere BigInsights là một nền tảng phần mềm dịch vụ được thiết kế để giúp các
doanh nghiệp phát hiện và phân tích những hiểu biết kinh doanh ẩn trong khối lượng lớn dữ
liệu. Sản phẩm IBM InfoSphere BigInsights kết hợp một số dự án mã nguồn mở (bao gồm
Apache Hadoop) và một số công nghệ của IBM phát triển. Mỗi nhà cung cấp, phân phối có

sức mạnh độc đáo và những điểm yếu riêng trong từng sản phẩm của mình.
Cloudera cũng như Hortonworks đều được xây dựng trên cùng một lõi của Apache
Hadoop. Như vậy, họ có điểm tương đồng nhiều hơn sự khác biệt.
 Cả hai đều cung cấp và phân phối sản phẩm Hadoop ở cấp độ doanh nghiệp
(enterprise-ready Hadoop). Các bản phân phối đã được trải nghiệm qua thời gian của
người tiêu dùng, bảo đảm tính an ninh và ổn định. Bên cạnh đó, họ cung cấp dưới
hình thức đào tạocó trả tiền và dịch vụ cho những người mới bước theo con đường
của Big Data và Analytics.
 Cả hai hãng đã thành lập và xây dựng những cộng đồng để giúp đỡ các vấn đề gặp
phải và những ví dụ mình hoạ khi xây dựng Big Data với các sản phẩm mã nguồn mở
của hãng.
 Cả hai hãng đều sử dụng kiến trúc master-slave và tính toán trên những hạ tầng máy
tính không chia sẻ
 Quan trọng hơn cả là cả hai đều hỗ trợ phương thức MapReduce cũng như YARN
trong cách lưu trữ dữ liệu.
Về ưu điểm và sự khác biệt thì Cloudera có ưu thế hơn so với các sản phẩm khác bởi
các lý do như sau:


5

 Cloudera là sản phẩm đầu tiên xây dựng dựa trên nền tảng Apache Hadoop và hiện
tại có số lượng người dùng lớn nhất với hầu hết khách hàng.
 Cloudera có một phần mềm quản lý độc quyền Cloudera Manager, hỗ trợ truy vấn
dạng SQL xử lý truy vấn giao diện Impala, cũng như Cloudera Search dễ dàng và
truy cập dữ liệu.
 Cloudera đã có tên tuổi nhất trên thị trường, với hơn 350 khách hàng và có một số
phần mềm doanh nghiệp phủ lên trên các bản phân phối mã nguồn mở của mình để
hỗ trợ người tiêu dùng.
 Có nhiều công cụ mạnh mẽ trong việc lưu trữ các loại dữ liệu như xử lý batch job,

ngôn ngữ phân tích truy vấn dữ liệu SQL, kỹ năng tìm kiếm NoSQL, xử lý
stream…Giải pháp nền tảng mã nguồn mở CDH được đánh giá cao trong việc lưu
trữ, xử lý dữ liệu lớn và điển hình có sản phẩm Oracle Big Data Appliance (BDA) sử
dụng toàn bộ giải pháp nền tảng CDH tích hợp trọn gói trong việc lưu trữ xử lý dữ
liệu.

1.3.

Giới thiệu về Cloudera
Cloudera là một Platform mã nguồn mở nhằm giúp cho các công ty xây dựng hệ

thống Big Data một cách linh hoạt, dễ dàng tích hợp các thành phần mã nguồn mở, quản lý
khối lượng và đa dạng dữ liệu nhanh chóng gia tăng trong doanh nghiệp. Các sản phẩm và
giải pháp của Cloudera cho phép chúng ta có thể triển khai, quản lý Apache Hadoop và các
Apaches mã nguồn mở khác nhằm giúp thao tác truy vấn, phân tích dữ liệu, và giữ cho dữ
liệu luôn luôn được an toàn và được bảo vệ.

1.4.

Kiến trúc các thành phần mã nguồn mở trên nền tảng Cloudera

1.4.1. Hadoop
Apache Hadoop là 1 nền tảng mã nguồn mở, miễn phí, viết bằng java, cung cấp 1 nền
tảng phân tán mạnh để lưu trữ và quản lý big data. Apache Hadoop chạy ứng dụng trên các
cụm máy tính và xử lý hàng ngàn terabytes dữ liệu trên hàng ngàn nodes. Hadoop lấy cảm
hứng từ Google MapReduce và Google File System (GFS). Điểm mạnh của nền tảng
Hadoop là cung cấp độ tin cậy và tính sẵn sàng cao.

1.4.2. Hệ quản trị CSDL: HBase
Apache Hbase là hệ quản trị cơ sở dữ liệu dựa trên Hadoop, đây là mã nguồn mở

nằm trong dự án của Apache, phát triển và mở rộng từ dự án lưu trữ Big Data của google.


6

HBase lưu trữ kiểu key-value có thể mở rộng ra quy mô rất lớn. Nó hoạt động rất giống như
một hash-map để lưu trữ lâu dài.
Tính năng của Apache Hbase:
 Thời gian lọc dữ liệu nhanh.
 Lưu trữ dữ liệu Big Data, có thể lưu trữ hàng tỷ row và columns.
 Có độ ổn định và giảm thiểu rủi ro (failover) khi lưu 1 lượng lớn dữ liệu.
 Truy vấn dữ liệu theo thời gian thực.
 Cung cấp giao thức REST, giúp trả về dữ liệu theo các định dạng khác nhau
như plain text, json, xml. Nhờ đó chúng ta có thể khai thác dữ liệu không cần
qua API từ phần mềm thứ 3.
 Nhất quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop.
 Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như java, php, python...
 Lưu trữ dữ liệu đáng tin cậy, được các hãng lớn sử dụng trên quy mô lớn.

1.4.3. Học máy Apache Mahout
Apache Mahout là một dự án mã nguồn mở mới của Apache Software Foundation
(ASF-Quỹ phần mềm Apache) với mục tiêu chính là tạo các thuật toán học máy có khả năng
mở rộng, các thuật toán sau cài đặt được sử dụng miễn phí sử dụng theo giấy phép Apache.
Mahout bao gồm các thuật toán để thực hiện để phân cụm, phân nhóm, lập trình học máy
tiến hóa. Hơn nữa, việc khôn khéo sử dụng thư viện Apache Hadoop để cho phép Mahout
mở rộng hiệu quả trong tính toán đám mây.
Một số thuật toán Mahout thường hay sử dụng như:
 Thuật toán phân cụm: k-Means, fuzzy k-Means, Canopy, Dirichlet và MeanShift.
 Phân loại Naive Bacó phân tán và Naive Bacó phụ.
 Các thư viện ma trận và vectơ.

 Lập trình tiến hóa

1.4.4. Tính toán trong bộ nhớ, streaming: Apache Spark
Apache Spark là một open source cluster computing framework được phát triển sơ
khởi vào năm 2009 bởi AMPLab tại đại học California, Berkeley. Sau này, Spark đã được
trao cho Apache Software Foundation vào năm 2013 và được phát triển cho đến nay. Spark
cho phép xây dựng và phân tích nhanh các mô hình dự đoán. Hơn nữa, nó còn cung cấp khả


7

năng truy xuất toàn bộ dữ liệu cùng lúc, nhờ vậy ta không cần phải lấy mẫu dữ liệu – đòi hỏi
bởi các ngôn ngữ lập trình. Thêm vào đó, Spark còn cung cấp tính năng streaming, được
dùng để xây dựng các mô hình real-time bằng cách nạp toàn bộ dữ liệu vào bộ nhớ. Hiện
nay Spark đang là chủ để được quan tâm nhất của cộng đồng Big Data cũng như các hãng
công nghệ lớn như IBM, Oracle..
Thành phần trung tâm của Spark là Spark Core: cung cấp những chức năng cơ bản
nhất của Spark như lập lịch cho các tác vụ, quản lý bộ nhớ, khôi phục lỗi, tương tác với các
hệ thống lưu trữ.Đặc biệt, Spark Core cung cấp API để định nghĩa RDD (Resilient
Distributed DataSet) là tập hợp của các item được phân tán trên các node của cluster và có
thể được xử lý song song.
Spark có thể chạy trên nhiều loại Cluster Managers như Hadoop YARN, Apache
Mesos hoặc trên chính cluster manager được cung cấp bởi Spark được gọi là Standalone
Scheduler.
 Spark SQL cho phép truy vấn dữ liệu cấu trúc qua các câu lệnh SQL. Spark
SQL có thể thao tác với nhiều nguồn dữ liệu như Hive tables, Parquet, và
JSON.
 Spark Streaming cung cấp API để dễ dàng xử lý dữ liệu stream,
 MLlib Cung cấp rất nhiều thuật toán của học máy như: classification,
regression, clustering, collaborative filtering...

 GraphX là thư viện để xử lý đồ thị.

1.4.5. Truy vấn song song như: Apache Impala
Impala là công nghệ cơ sở dữ liệu song song khả năng mở rộng với Hadoop, cho
phép người dùng truy vấn SQL có độ trễ thấp cho dữ liệu lưu trữ trong HDFS và Apache
HBase mà không cần di chuyển, chuyển đổi dữ liệu. Impala được tích hợp với Hadoop để sử
dụng tập tin và dữ liệu có định dạng, siêu dữ liệu, mang tính bảo mật và quản lý tài nguyên
được sử dụng bởi MapReduce, Apache Hive, Apache Pig và phần mềm Hadoop khác.
Impala được dùng làm sản phẩm trong các Platform của Cloudera, MapR, Oracle, Amazon.
Tổng quan tính năng Impala bao gồm:
 Hỗ trợ lưu trữ HDFS và Apache HBase.
 Đọc các định dạng tập tin Hadoop, bao gồm văn bản, LZO, SequenceFile,
Avro, RCFile, và Parquet.
 Hỗ trợ Hadoop bảo mật (xác thực Kerberos).


8

 Sử dụng metadata, driver ODBC, và cú pháp SQL từ Apache Hive.

1.4.6. Một số Apache dùng để tổ chức lưu trữ, truy vấn dữ liệu trong Hadoop
 Hive và Hue: Hive là Apache hỗ trợ người dùng viết câu truy vấn SQL chuyển đổi nó
thành một tác vụ MapReduce. Hue cung cấp cho bạn một giao diện đồ họa trên web
dựa trên trình duyệt để làm công việc Hive.
 Pig: Một môi trường lập trình mức cao hơn để giúp người dùng viết mã MapReduce
dễ dàng hơn.
 Sqoop: Cung cấp việc truyền dữ liệu hai chiều giữa Hadoop và cơ sở dữ liệu quan hệ
RDBMS truyền thống, Sqoop làm việc thông qua các JDBC drivers, là một công cụ
để ETL dữ liệu từ file, hoặc từ CSDL quan hệ vào hệ thống Hadoop.
 Oozie: Quản lý luồng công việc Hadoop. Oozie không thay thế trình lập lịch biểu hay

công cụ BPM, nhưng nó cung cấp cấu trúc phân nhánh if-then-else và điều khiển
trong phạm vi tác vụ trong Hadoop.
 Fuse: Làm cho hệ thống tập tin HDFS trông như một hệ thống tệp tin thông thường,
do đó chúng ta có thể sử dụng lệnh ls, cd, rm và những lệnh khác với dữ liệu HDFS
như lệnh command của hệ điều hành.
 Zookeeper: Được sử dụng để quản lý, theo dõi các chương trình phần mềm trong hệ
thống Hadoop.

1.5.

Một số case study điển hình đã triển khai thành công Cloudera
Nhờ khả năng dễ dành sử dụng, tích hợp nhiều mã nguồn mở Big Data, và không

ngừng bổ sung thêm các mã nguồn mở khác, nên Cloudera được cộng đồng đón nhận sử
dụng rộng lớn. Nổi bật một số công ty công nghệ hàng đầu đã áp dụng cloudera thành công
trong quá trình kinh doanh của họ như: Cisco, Samsung, ngân hàng Barclay.


9

CHƯƠNG 2: TRIỂN KHAI XÂY DỰNG HỆ THỐNG CLOUDERA
PHỤC VỤ XÂY DỰNG BIG DATA TẠI MOBIFONE
Tóm tắt chương
Nội dung chương 2 trình bày khái quát về hiện trạng và nhu cầu lưu trữ dữ liệu lâu
dài nhằm phục vụ các bài toán Big Data tại MobiFone. Từ đó, phân tích yêu cầu, thiết kế hệ
thống, chọn lựa mô hình triển khai đến các bước cài đặt, cấu hình các module để hệ thống
Cloudera có thể hoạt động ổn định.

2.1.


Hiện trạng triển khai áp dụng công nghệ Big Data tại MobiFone

2.1.1. Hiện trạng tài nguyên máy chủ lưu trữ dữ liệu Big Data
Trung tâm CNTT hiện đang là đơn vị quản lý, vận hành kho dữ liệu tập trung Big
Data được Tổng Công ty đầu tư xây dựng vào năm 2015. Để đáp ứng mục đích phục vụ
phân tích hành vi khách hàng, đánh giá hiệu quả các chương trình khuyến mại, hiệu quả sản
xuất kinh doanh thì nhu cầu lưu trữ dữ liệu cần phải trong thời gian lâu dài, và cần rất nhiều
nguồn dữ liệu khác nhau. Hiện tại MobiFone đang trang bị cho hệ thống Big Data một máy
chủ lưu trữ Netezza vô cùng mạnh mẽ, cấu hình khoảng 45TB, tuy nhiên với tốc độ tăng
trưởng dữ liệu rất lớn, trung bình nguồn dữ liệu phục vụ các bài toán phân tích kinh doanh
hàng ngày Trung tâm CNTT tiến hành đẩy vào kho dữ liệu Big Data là khoảng 1,8 tỷ bản
ghi- tương đương một tháng khoảng 2,5TB dữ liệu, ngoài ra thêm nguồn dữ liệu để đánh giá
về chất lượng mạng lưới kỹ thuật, các nguồn số liệu khi xu thế công nghệ IoT bùng nổ thì
con số trên còn gấp rất rất nhiều lần. Với tốc độ tăng trưởng dữ liệu như hiện nay, thì việc
lưu trữ dữ liệu lịch sử để phân tích dữ liệu lâu dài và bổ sung thêm nguồn dữ liệu mới thì
tương lai cần bổ sung rất nhiều nguồn tài nguyên máy chủ dữ liệu nữa.

2.1.2. Hiện trạng công nghệ phân tích dữ liệu cho Big Data tại MobiFone
2.1.2.1. Kiến trúc triển khai tổng thể
Giải pháp tổng thể triển khai tại MobiFone có kiến trúc logic các chức năng thành
phần sau:
-

Khối chức năng xử lý realtime các luồng dữ liệu: Thành phần này cung cấp khả
năng xử lý dữ liệu lớn và đa dạng về cấu trúc dữ liệu từ nhiều nguồn khác nhau.
Hỗ trợ người ra quyết định, thu thập những thông tin dữ liệu có tính realtime.


10


-

Khối chức năng xử lý ETL, làm sạch, đảm bảo chất lượng dữ liệu: Đây là thành
phần với năng lực tích hợp và chuyển đổi dữ liệu sang các khuôn dạng có ý nghĩa,
làm sạch dữ liệu, đảm bảo chất lượng dữ liệu cho lưu trữ trên Big Data.

-

Khối chức năng lưu trữ dữ liệu: Đây là nơi lưu trữ dữ liệu đã qua xử lý phục vụ
phân tích, xây dựng các mô hình data mart theo từng chủ đề quan tâm.

-

Khối chức năng phân tích chuyên sâu: Bao gồm các công cụ, thuật toán phân tích
dữ liệu. Hỗ trợ xử lý phân tích trên các loại dữ liệu khác nhau như dữ liệu hoạt
động, files, dữ liệu phi cấu trúc... Nguồn dữ liệu được phân tích sẽ được lấy từ
kho dữ liệu, sau khi được xử lý sẽ ghi ngược lại vào kho dữ liệu.

-

Các công cụ báo cáo

-

Khối chức năng phục vụ quản lý, phát triển các chương trình khuyến mại

Hình 2.1 : Kiến trúc triển khai tổng thể


11


2.1.2.2. Thành phần hệ thống
Hệ thống kho dữ liệu tập trung Big Data được xây dựng và khai thác, bao gồm các
thành phần sau:
 FTP: Máy chủ FTP thực hiện thu thập và lưu trữ dữ liệu file đầu vào phục vụ các tiến
trình xử lý và tổng hợp thông tin các nguồn dữ liệu từ các hệ thống tác nghiệp.
 Data Analytics: Triển khai IBM SPSS Modeler là phần mềm phân tích data mining
áp dụng các kỹ thuật và thuật toán để phân tích nguồn dữ liệu lớn.
 Report: Triển khai IBM Cognos BI là phần mềm hỗ trợ xây dựng (kéo, thả) báo cáo
kết quả triển khai campaign Big Data.
 ETL: Triển khai IBM DataStage là máy chủ xử lý, thu thập dữ liệu, thực thi extract
dữ liệu và chuẩn hóa dữ liệu tổng hợp từ các định dạng file thành dữ liệu chuẩn để có
thể import được vào kho dữ liệu tập trung Big Data.
 VDI Desktop: Cài đặt các công cụ để khai thác, phân tích dữ liệu (SPSS Modeler
client, Aginity…), người dùng tại các đơn vị Công ty kinh doanh MobiFone khu vực,
các Trung tâm trực thuộc có thể trực tiếp vào sử dụng.

2.2.

Nhu cầu áp dụng công nghệ mã nguồn mở cho Big Data tại MobiFone
Hiện tại Mobifone đang triển khai Big Data bao gồm hệ thống cơ sở dữ liệu Netezza,

công cụ phân tích số liệu SPSS modeler và công cụ đánh giá, triển khai campaign Unica.
Việc trang bị hệ thống giải pháp Big Data phục vụ sản xuất kinh doanh là hết sức cần thiết
để am hiểu khách hàng nhằm giới thiệu và triển khai các dịch vụ phù hợp, nhanh chóng tức
thì, đúng bối cảnh cho khách hàng đảm bảo lợi thế cạnh tranh của mạng MobiFone trước
các mạng lớn tại thị trường viễn thông Việt Nam. Giải pháp sử dụng nền tảng mã nguồn mở
trong đó hỗ trợ nhiều công nghệ khác nhau để xây dựng hệ thống Big Data đã được nhiều
doanh nghiệp lựa chọn triển khai. Một trong số các giải pháp đó chính là Cloudera để phục
vụ xây dựng Big Data. Cloudera đặc biệt là phiên bản CDH Express (Cloudera Distributed

Hadoop) 100% miễn phí, cung cấp rất nhiều bộ apache mã nguồn mở, và liên tục được cập
nhật các mã nguồn mới, các phiên bản mới từ cộng đồng. Khi một đơn vị bước đầu xây
dựng hệ thống Big Data có thể sử dụng nền tảng Cloudera để tiếp cận nhanh, áp dụng vào
bài toán phân tích phục vụ sản xuất kinh doanh của mình.


12

2.3.

Thiết kế hệ thống Cloudera phục vụ xây dựng BIG DATA tại MobiFone

2.3.1. Bài toán triển khai
Trong giai đoạn tiếp cận hệ thống Cloudera, hệ thống đã thực hiện bài toán phân
khúc khách hàng trả trước để đánh giá hiệu quả của việc triển khai.
Đối tượng áp dụng : Tập mẫu thuê bao trả trước của Mobifone (1 triệu thuê bao)
Nguyên tắc chia nhóm : thực hiện phân chia thành 6 phân khúc theo thói quen sử
dụng của khách hàng :
 Nhóm khách hàng thực dụng
 Nhóm năng lực tiêu dùng thấp
 Người dùng truyền thống
 Người chuộng công nghệ giá rẻ
 Nhóm không thường xuyên sử dụng dữ liệu
 Khách hàng cao cấp
Đặc điểm của các nhóm khách hàng được mô tả như sau :

Hình 2.2: Mô hình phân khúc khách hàng trả trước của PWC

Các tiêu chí sử dụng để phân khúc khách hàng :
 Dựa trên hành vi sử dụng thoại, data, sms

 Doanh thu tiêu dung


13

 Doanh thu VAS
 Loại thiết bị
 Tỉ lệ dùng data ngoài gói
Tập mẫu sử dụng để phân tích là dữ liệu trung bình của thuê bao trả trước trong
tháng 5 và tháng 6 năm 2016, lấy mẫu 1.000.000 bản ghi.
Các tiêu chí phân khúc khách hàng được thực hiện dựa trên tư vấn của PWC
(PricewaterhouseCoopers- một trong bốn công ty kiểm toán hàng đầu thế giới hiện nay)
về phân khúc khách hàng.

2.3.2. Mô hình triển khai
2.3.2.1. Giải pháp thực hiện
Như đã trình bày ở trên, Cloudera bao gồm nhiều mã nguồn mở Apache framework
độc lập kết hợp lại với nhau, mỗi Apache phục vụ một vai trò trong hệ thống Big Data.
Trong quá trình thực hiện, hệ thống đã sử dụng các thành phần của Cloudera Distribution
for Hadoop (CDH) trong phiên bản mới nhất 5.8.2 bao gồm :
 Sử dụng Apache Hadoop để lưu trữ dữ liệu
 Sử dụng Apache Spark để phân tích dữ liệu, dữ liệu được xử lý in-memory
giúp tăng tốc độ phân tích.
 Sử dụng Spark MLLib để giúp cho việc sử dụng các thuật toán Machine
Learning dễ dàng hơn, thay vì phải tự cài đặt và giải quyết từng thuật toán.
Để phân khúc tập khách hàng thành 6 nhóm như yêu cầu bài toán, hệ thống sử dụng
phương pháp khai thác số liệu bằng phân cụm dữ liệu (clustering). Phân cụm dữ liệu là một
kỹ thuật trong Data mining nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên
tiềm ẩn và quan trọng trong tập dữ liệu lớn để từ đó cung cấp thông tin, tri thức cho việc ra
quyết định. Phân cụm dữ liệu là sự phân chia một cơ sở dữ liệu lớn thành các nhóm dữ liệu

với trong đó các đối tượng tương tự như nhau. Trong mỗi nhóm, một số chi tiết có thể
không quan tâm đến để đổi lấy dữ liệu đơn giản hóa. Hay ta có thể hiểu “Phân cụm dữ liệu
là quá trình tổ chức các đối tượng thành từng nhóm mà các đối tượng ở mỗi nhóm đều
tương tự nhau theo một tính chất nào đó, những đối tượng không tương tự tính chất sẽ ở
nhóm khác”.
Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau trong tập
dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối
tượng thuộc các cụm khác nhau sẽ không tương đồng. Các kỹ thuật phân cụm có rất nhiều


14

cách tiếp cận và các ứng dụng trong thực tế, nó đều hướng tới hai mục tiêu chung đó là chất
lượng của các cụm khám phá được và tốc độ thực hiện của thuật toán. Hiện nay, các kỹ
thuật phân cụm có thể phân loại theo các phương pháp tiếp cận chính như sau : phân cụm
phân họach (Partitioning Methods); phân cụm phân cấp (Hierarchical Methods); phân cụm
dựa trên mật độ (Density-Based Methods); phân cụm dựa trên lưới (Grid-Based Methods);
phân cụm dựa trên mô hình phân cụm (Model-Based Clustering Methods) và phân cụm có
dữ liệu rang buộc (Binding data Clustering Methods). Trong phạm vi bài toán, hệ thống sử
dụng thuật toán K-means của kỹ thuật phân cụm phân hoạch để phân khúc khách hàng.

2.3.2.2. Mô hình triển khai

Cloudera Manager Server
BATCH
PROCESSCING
(Hive)

MACHINE
LEARNING

(Spark)

STREAM
PROCESSING
(Spark)

WORKLOAD MANAGER (YARN)
Cloudera Manager Agents
HDFS

DATA INTEGRATION
(Squoop)
Hình 2.3: Mô hình logic triển khai Cloudera


15

Các thành phần trong mô hình :
Tên Node

Cloudera
Manager
Server

Cloudera
Manager
Agent

2.4.


Thành phần được
cài đặt
Cloudera
Manager
Server
Hadoop namenode
Apache Spark
YARN

Nhiệm vụ
Quản lý và giám sát toàn bộ các node trong cụm.

Quản lý hệ thống file metadata
Truy vấn và thực hiện phân tích dữ liệu in-memory
Framework hỗ trợ phát triển ứng dụng phân tán
Cung cấp sự tổng hợp dữ liệu, truy vấn và phân tích. Nó hỗ
Apache Hive
trợ phân tích các tập dữ liệu lớn được lưu trong HDFS của
Hadoop
là công cụ dùng trích xuất (extract) dữ liệu từ non-Hadoop
Apache Squoop
và chuyển đổi (transform) chúng vào định dạng mà
Hadoop có thể dùng và sau đó nạp (load) chúng vào HDFS
Tương tác với Cloudera Manager Server để giám sát tình
Cloudera
Manager
trạng của các node, quản lý các process thực thi trên node
Agent
đó
Hadoop datanode

Lưu trữ các block dữ liệu

Triển khai cài đặt, cấu hình hệ thống
Cài đặt hệ thống Cloudera cần các thành phần sau :
 Cài đặt JDK
 Cài đặt Database
 Cài đặt Cloudera Manager Server
 Cài đặt Cloudera Manager Agent
 Cài đặt CDH và Manager Service Software
 Khởi tạo, cấu hình và khởi động CDH và Managed Services

2.4.1. Cài đặt JDK
2.4.2. Cài đặt Database
2.4.3. Cài đặt Cloudera Manager Server
2.4.4. Cài đặt Cloudera Manager Agent
2.4.5. Cài đặt CDH và Manager Service Software
2.4.6. Khởi tạo, cấu hình và khởi động CDH và Managed Services


16

CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC KHI XÂY DỰNG HỆ THỐNG
CLOUDERA TẠI MOBIFONE
Tóm tắt chương
Trong chương 3, mô tả chi tiết kết quả các công việc đã thực hiện để xây dựng hoàn
chỉnh một hệ thống Cloudera tại Trung tâm CNTT MobiFone, từ đó rút ra được những kinh
nghiệm trong việc cài đặt triển khai hệ thống cloudera và những điểm tồn tại, khó khăn hay
các giải pháp khắc phục trong quá trình triển khai.

3.1.


Kết quả xây dựng hệ thống Cloudera tại MobiFone

3.1.1. Quản lý các thành phần trên hệ thống bằng giao diện Cloudera
Hệ thống Cloudera cho phép giám sát toàn bộ hệ thống bằng giao diện trực quan,
giúp người dùng kiểm tra trạng thái của toàn bộ các node trong cụm, trạng thái của các
thành phần, cũng như start, stop các thành phần trong hệ thống.

3.1.2. Áp dụng Spark để giải quyết bài toán phân khúc thuê bao
Để giải quyết bài toán được đưa ra, dữ liệu của bài toán được lưu trữ vào Hadoop, sử
dụng Spark và MLLib để phân tích dữ liệu.

Hình 3.1: Quy trình xử lý dữ liệu bài toán phân khúc thuê bao


17

Quy trình xử lý dữ liệu :
 Loại bỏ thuê bao có số tin nhắn <=3 và có
 Số cuộc gọi bằng 0
 Không phát sinh dịch vụ data
 Xử lý các giá trị nhiễu : Thực hiện các kĩ thuật xử lý nhiễu để đồng bộ các giá trị
nhiễu, vượt ngưỡng.
Thực hiện phân khúc khách hàng
 Thực hiện load dữ liệu vào Hadoop :
[root@cloudera-master

bin]#

hadoop


fs

–put

/home/haint/tmp/PWC_TRATRUOC_PHANKHUCT2T6.txt /tmp/input/
 Sau khi load thành công, ta có thể kiểm tra lại dữ liệu file vừa thực hiện load:

Hình 3.6: Kiểm tra dữ liệu nạp vào hadoop

 Sử dụng MLLib, xây dựng chương trình bằng Java để thực hiện phân khúc khách
hàng thành 6 nhóm như yêu cầu :
Kết quả thu được sau khi thực hiện phân khúc:

Hình 3.8: Kết quả phân khúc dùng Mllib, spark trong cloudera


18

 Tỷ lệ phân khúc khách hàng theo số lượng thuê bao :

Hình 3.9: Kết quả phân khúc theo biểu đồ 1

Hình 3.2: Kết quả phân khúc theo biểu đồ 2


19

 Tỷ lệ theo doanh thu VAS :


Hình 3.11: Kết quả phân khúc theo biểu đồ 3

 Tỷ lệ doanh thu SMS out :

Hình 3.12: Kết quả phân khúc theo biểu đồ 4


20

Như vậy, về cơ bản các thành phần trong kiến trúc triển khai của giải pháp Cloudera
là tương đương với các thành phần triển khai của giải pháp IBM hiện tại, tuy nhiên với đặc
điểm là giải pháp opensource và hoàn toàn miễn phí nên có việc triển khai hệ thống
Cloudera sẽ có phần khó khăn hơn khi triển khai hệ thống của IBM (cần tự thực hiện xử lý
thuật toán bằng code, thiếu giao diện trực quan để cấu hình ...)

3.2.

Kinh nghiệm cài đặt, triển khai hệ thống Cloudera

3.2.1. Một số tồn tại, khó khăn khi triển khai
Trung tâm CNTT MobiFone bắt đầu nghiên cứu sản phẩm Cloudera từ tháng
07/2016. Tại thời điểm đó, Trung tâm là đơn vị đầu tiên trong Tổng Công ty cũng như một
số ít các doanh nghiệp, tổ chức tại Việt Nam biết đến sản phẩm này. Trung tâm CNTT
MobiFone là đơn vị mới được thành lập nên gặp rất nhiều khó khăn:
 Số lượng nhân sự ít, ban đầu chỉ có 02 cán bộ thực hiện toàn bộ hệ thống từ nghiên
cứu sản phẩm, thiết kế hệ thống, cài đặt triển khai.
 Tài nguyên phần cứng hạn chế: Trung tâm không có phần cứng cho hệ thống này,
phải cấp phát từ hệ thống máy ảo, cấu hình thấp.
 Công nghệ mới: tại thời điểm triển khai, chưa có đơn vị nào của MobiFone trực tiếp
đi sâu vào nghiên cứu, tìm hiểu hệ thống Cloudera.

 Trong quá trình thực hiện, nhóm triển khai gặp nhiều lỗi chủ yếu do chưa hiểu sâu
từng thành phần, thiết lập cấu hình chưa đúng. Đặc điểm của hệ thống Cloudera là
một hệ thống phức tạp, bao gồm nhiều máy chủ và rất nhiều thành phần liên quan.

3.2.2. Các giải pháp khắc phục
Được sự hỗ trợ của Ban Giám đốc Trung tâm CNTT MobiFone và Lãnh đạo Tổng
Công ty, đã giải quyết được các khó khăn, vướng mắc. Bên cạnh đó, bản than tôi đã chủ
động tìm hiểu cách thức thực hiện trên trang chủ Cloudera, các trang web chia sẻ kinh
nghiệm về Cloudera, đây là nguồn tài nguyên để tôi triển khai và xử lý các lỗi phát sinh
trong quá trình triển khai. Trải qua quá trình thực nghiệm và xây dựng thành công hệ thống,
tôi đã đúc kết được một số các kinh nghiệm trong quá trình triển khai một hệ thống như sau:
 Cần xác định rõ phiên bản server, các phần mềm cài đặt cho tương thích.
 Cấp phát phần cứng, mở kết nối đáp ứng yêu cầu triển khai.
 Đội triển khai phải có cán bộ chuyên sâu về hệ thống (OS Linux, CSDL).
 Phân quyền đầy đủ khi thực hiện cài đặt.


21

 Trong quá trình triển khai phải tuân thủ chặt chẽ các bước cài đặt. Ghi nhận lại từng
thông tin để có thể kết nối các thành phần. Thực hiện cài đặt lần lượt bằng dòng lệnh
thay vì sử dụng các script có sẵn.
 Các mô đun của Cloudera khá độc lập, vì thế cần hoàn thiện từng mô đun trước khi
chuyển sang mô đun khác.
Khi có lỗi xảy ra cần tìm trong thư mục log để hiểu rõ nguyên nhân, sau đó tra cứu
trên cộng đồng Cloudera để được hỗ trợ.


22


KẾT LUẬN
1.

Những đóng góp của luận văn
Hệ thống Cloudera vừa tiết kiệm chi phí đầu tư phần cứng, không yêu cầu các phần

cứng có cấu hình cao, vừa có thể chủ động trong việc cài đặt phần mềm, do đó hoàn toàn có
khả năng áp dụng trên phạm vi rộng. Việc triển khai sẽ giúp tối ưu chi phí, giảm sự phục
thuộc vào đối tác khi nghiên cứu công nghệ và triển khai bài toán.

2.

Hướng phát triển luận văn
Hiện tại hệ thống Cloudera mới được thử nghiệm trên phạm vi nhỏ, với các máy chủ

là các server ảo. Trong tương lai, sẽ tiếp tục mở rộng theo các hướng như sau :
 Mở rộng phạm vi triển, bổ sung thêm nhiều nguồn dữ liệu, nghiên cứu các thuật toán
mới để giải quyết các bài toán hỗ trợ kinh doanh và kỹ thuật trong phạm vi rộng.
 Nghiên cứu các thành phần khác của hệ thống Cloudera, giúp tăng khả năng áp dụng
Cloudera trong thực tế.
 Phát triển tính năng Streaming của Apache Spark, áp dụng trong việc thực hiện xử lý
ngay trên dữ liệu vừa nhận được.



×