Đề 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
Trang 1HỌ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
Trang 2Luậ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
Trang 3MỞ ĐẦ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
Trang 4 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ả
Trang 5CHƯƠ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
Trang 6cứ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:
Trang 7 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
Trang 8HBase 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à Shift
Mean- 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ả
Trang 9nă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)
Trang 10 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
Trang 11CHƯƠ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
Trang 12- 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ể