1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Tốt Nghiệp Xây Dựng Hệ Thống Lưu Trữ Và Xử Lí Dữ Liệu Lớn Và Ứng Dụng Phân Tích Dữ Liệu Sàn Thương Mại Điện Tử.pdf

30 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Giảng viên hướng dẫn: PGS TS Nguyễn Thị Kim Anh

Chữ kí GVHD

Khoa: Khoa học máy tính

Trường: Công nghệ thông tin và Truyền thông

HÀ NỘI, 08/2022

Trang 2

Họ và tên sinh viên Nguyễn Đăng HùngĐiện thoại liên lạc 0376911574

Email hung.nd183547@sis.hust.edu.vnLớp Khoa học máy tính 04 - K63

LỜI CAM KẾT

Tôi – Nguyễn Đăng Hùng – cam kết Đồ án Tốt nghiệp (ĐATN) là công trình

nghiên cứu của bản thân tôi dưới sự hướng dẫn củaPGS TS Nguyễn Thị Kim Anh.Các kết quả nêu trong ĐATN là trung thực, là thành quả của riêng tôi, không saochép theo bất kỳ công trình nào khác Tất cả những tham khảo trong ĐATN – baogồm hình ảnh, bảng biểu, số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng vàđầy đủ nguồn gốc trong danh mục tài liệu tham khảo Tôi xin hoàn toàn chịu tráchnhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường.

Hà Nội, ngàythángnăm

Tác giả ĐATN

Họ và tên sinh viên

Trang 3

LỜI CẢM ƠN

Để xây dựng được thành công đồ án tốt nghiệp ngày hôm nay, đó là nhờ vào bốnnăm miệt mài đèn sách học hỏi từ nhà trường, thầy cô và bạn bè không ngừng.Dođó, em xin gửi lời cảm ơn tới Trường công nghệ thông tin và truyền thông - Đạihọc Bách Khoa Hà Nội Em xin cảm ơn các thầy, các cô đã truyền đạt các kiến thứctrong suốt khoảng thời gian qua để em có được một nền tảng kiến thức vững chắcbước vào ngành nghề đam mê của mình.

Em xin cảm ơn cô Nguyễn Thị Kim Anh đã luôn tận tình chỉ bảo, đưa ra những lờikhuyên, tư vấn cũng như các kiến thức thực tiễn để em có thể vận dụng và hoànthiện đồ án thành công.

Cuối cùng em xin cảm ơn gia đình và bạn bè đã luôn động viên tinh thần để em cóchỗ dựa vững chắc nhất để hoàn thành đồ án.

Kết quả đồ án chính là lời cảm ơn chân thành và sâu sắc nhất của em tới toàn thểmọi người Xin cảm ơn!

ii

Trang 4

TÓM TẮT NỘI DUNG ĐỒ ÁN

Big Data một thuật ngữ không còn mới với những nước phát triển trên thế giớivà cũng không quá xa lạ đối với Việt Nam Chúng ta đang sống trong kỷ nguyêncủa cuộc cách mạng công nghệ 4.0; những nền tảng IoT, mạng xã hội, nghiên cứukhoa học, sản sinh một lượng lớn dữ liệu mỗi phút với những con số thực sự ấntượng như: năm 2019 cứ mỗi phút có 4,5 triệu người xem Youtube, 4,5 triệu lượttìm kiếm Google, 9,7 nghìn lượt đặt xe Uber, hơn 55 nghìn bức ảnh được đăng lênInstagram, và đến năm 2025 , ước tính 463 exabytes dữ liệu được sinh ra mộtngày.

Big Data mang lại cơ hội cho lĩnh vực bán lẻ bằng cách phân tích thị trường cạnhtranh và sự quan tâm của khách hàng Nó giúp xác định hành trình trải nhiệm, xuhướng mua sắm và sự hài lòng của khách hàng bằng cách thu thập dữ liệu hành vicủa khách hàng một cách đa dạng, phong phú, đầy đủ Từ những dữ liệu thu thậpđược có thể cải thiện hiệu suất và hiệu quả bán hàng Big data giúp nhà quản lý xâydựng mô hình chi tiêu của từng khách hàng Với sự trợ giúp của các phân tích dựđoán, ngành công nghiệp có thể so sánh tỷ lệ cung – cầu và có thể tránh tiếp tụctung ra thị trường các sản phẩm không được hầu hết khách hàng đón nhận.Với tình hình nói trên, các sàn thương mại điện tử đang thực sự có một nguồn dữliệu khổng lồ từ người bán, người mua, lượng sản phẩm tăng cao hàng ngày Do đócác sàn thương mại điện tử sẽ cần phải có một cách thức phục vụ cho phân tích vàxử lí khối lượng dữ liệu này Các cơ sở dữ liệu truyền thống thực sự quá khó để cóthể làm được các công việc nói trên, vì vậy các công nghệ lưu trữ và xử lý dữ liệulớn ngày càng phát triển mạnh và nhanh chóng Với tính cấp thiết, nhu cầu cao nóitrên, em quyết định lựa chọn đề tài này.

Trang 5

CHƯƠNG 2 TỔNG QUAN VỀ SÀN THƯƠNG MẠI ĐIỆN TỬ 4

2.1 Định nghĩa về sàn thương mại điện tử 4

2.2 Phương thức hoạt động của một sàn thương mại điện tử 4

2.3 Quy trình cho người bán hàng 5

2.4 Quy trình cho người mua hàng 5

2.5 Kết luận chương 2 5

CHƯƠNG 3 TỔNG QUAN VỀ HỆ THỐNG LƯU TRỮ VÀ XỬ LÝ DỮLIỆU LỚN HADOOP 6

3.1 Giới thiệu tổng quan về Big Data 6

3.2 Nền tảng lý thuyết và các thành phần trong Hadoop Ecosystem 7

3.2.1 Giới thiệu về Apache Hadoop 7

3.2.2 Tổng quan giới thiệu về HDFS 10

3.2.3 Tổng quan giới thiệu về MapReduce 14

3.2.4 Tổng quan giới thiệu về YARN 17

Trang 6

3.3 Apache Spark - Công cụ xử lý dữ liệu phân tán 19

3.3.1 Lịch sử Apache Spark 20

3.3.2 Các thành phần của Apache Spark 21

3.3.3 Spark và Hadoop MapReduce 21

3.3.4 Tính toán phân tán 22

3.3.5 Spark Application 24

3.3.6 Spark Session 24

3.3.7 RDD 24

3.3.8 Ưu nhược điểm của Apache Spark 25

3.4 Xây dựng hệ thống thực tế cho Hadoop HDFS và Spark Cluster 26

3.4.1 Xây dựng cụm Hadoop và Spark 26

4.3.1 Giới thiệu Parquet File Format trong lưu trữ dữ liệu lớn 31

4.3.2 Hệ thống tiền xử lý dữ liệu xây dựng thực tế 36

4.4 Kết luận chương 4 39

CHƯƠNG 5 HỆ THỐNG PHÂN TÍCH VÀ TRỰC QUAN HÓA DỮLIỆU 41

5.1 Tổng quan 41

Trang 7

5.2 Elasticsearch 41

5.2.1 Elasticsearch là gì? 41

5.2.2 Những khái niệm cơ bản trong Elasticsearch [10] 41

5.2.3 Cách hoạt động của Elasticsearch 43

5.2.4 Khi nào nên sử dụng Elasticsearch 44

5.2.5 Ưu nhược điểm của Elasticsearch [11] 44

6.1 Bài toán và tính cấp thiết 52

6.2 Tổng quan về dữ liệu cho bài toán 52

Trang 8

TÀI LIỆU THAM KHẢO 59

Trang 9

Hình 3.8 Luồng dữ liệu MapReduce 16

Hình 3.9 Sơ đồ hoạt động của MapReduce 16

Hình 3.10 Multipe MapReduce Jobs 17

Hình 3.11 Các thành phần chính trong YARN 17

Hình 3.12 Luồng trong YARN 19

Hình 3.13 Các thành phần của Apache Spark 21

Hình 4.2 Kích thước sử dụng không gian lưu trữ 33

Hình 4.3 Độ trễ khi lưu trữ dữ liệu 34

Hình 4.4 Độ trễ khi tra cứu ngẫu nhiên 34

Hình 4.5 Độ trễ với các tính toán thống kê như min, max, avg, count, 35

Hình 4.6 Độ trễ khi lọc dữ liệu 35

Hình 4.7 Độ trễ khi dùng các phép nhóm group by 36

Hình 4.8 Tổng quan luồng dữ liệu qua hệ thống thu thập và tiền xử lý 36

Hình 4.9 Hệ thống lưu trữ trên HDFS 37

Hình 4.10 Một thư mục dữ liệu - Item 37

Hình 4.11 Dữ liệu thô của Item 38

Hình 4.12 Dữ liệu Shop đã làm sạch, giảm chiều, nén 38

Hình 4.13 Dữ liệu Item đã làm sạch, giảm chiều, nén 39

v

Trang 10

Hình 4.14 Dữ liệu Comment đã làm sạch, giảm chiều, nén 39

Hình 4.15 Tổng kích thước cho cả dữ liệu thô và dữ liệu sạch 39

Hình 5.7 Elasticsearch Cluster Healthy 48

Hình 5.8 Dữ liệu phân tán trên Elasticsearch 48

Hình 6.2 Minh họa một bình luận - Đánh giá 53

Hình 6.3 Hàm chuẩn hóa xóa dấu câu và hàm chuẩn hóa label 53

Hình 6.4 Tiền xử lý và lưu trữ dữ liệu đã làm sạch 54

Hình 6.5 Chuẩn hóa dữ liệu - Đưa về chữ in thường 54

Trang 11

DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮTViết tắt Tên tiếng AnhTên tiếng ViệtAPI Application Programming Inter-

Giao diện lập trình ứng dụng

CSDL Database Cơ sở dữ liệu

HDFS Hadoop Distributed File System Hệ thống file phân tán

JVM Java Virtual Machine Máy ảo Java

RDD Resilient Distributed Dataset Tập dữ liệu phân tán linh hoạt

vii

Trang 12

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI1.1 Đặt vấn đề

Big Data một thuật ngữ không còn mới với những nước phát triển trên thế giớivà cũng không quá xa lạ đối với Việt Nam Chúng ta đang sống trong kỷ nguyêncủa cuộc cách mạng công nghệ 4.0, những nền tảng IoT, mạng xã hội, nghiên cứukhoa học, sản sinh một lượng lớn dữ liệu mỗi phút với những con số thực sự ấntượng như: năm 2019 cứ mỗi phút có 4,5 triệu người xem Youtube, 4,5 triệu lượttìm kiếm Google, 9,7 nghìn lượt đặt xe Uber, hơn 55 nghìn bức ảnh được đăng lênInstagram, và đến năm 2025 , ước tính 463 exabytes dữ liệu được sinh ra mộtngày Điều này cho thấy sự bùng nổ về dữ liệu và đặt ra bài toán về lưu trữ, xử lývà phân tích lượng dữ liệu khổng lồ của mỗi doanh nghiệp Doanh nghiệp nào códữ liệu, phân tích và khai phá được nguồn dữ liệu lớn đó thì doanh nghiệp đó cólợi thế Dữ liệu lớn trên thực tế đang được ứng dụng vào rất nhiều lĩnh vực của nềnkinh tế, tạo ra những chuyển biến ấn tượng, nhằm tăng hiệu quả và năng suất doanhnghiệp

Trong thương mại, các sàn thương mại điện tử đang càng ngày càng phát triển.Thương mại điện tử không chỉ tận hưởng những lợi ích của việc điều hành trựctuyến mà còn phải đối mặt với nhiều thách thức để đạt được các mục tiêu kinhdoanh Big Data có thể tạo lợi thế cạnh tranh cho doanh nghiệp bằng cách cungcấp thông tin chuyên sâu và các bản báo cáo phân tích xu hướng tiêu dùng Có thểthu thập dữ liệu và yêu cầu của khách hàng ngay cả trước khi khách hàng thực sựbắt đầu giao dịch Tạo ra một mô hình tiếp thị hiệu suất cao Nhà quản lý trangthương mại điện tử có thể xác định được các sản phẩm được xem nhiều nhất, tối ưulượng hiển thị cho từng sản phẩm với từng khách hàng cụ thể Điều này giúp tăngkhả năng bán được hàng, từ đó tạo doanh thu cao hơn, .

Big Data mang lại cơ hội cho lĩnh vực bán lẻ bằng cách phân tích thị trườngcạnh tranh và sự quan tâm của khách hàng Nó giúp xác định hành trình trải nhiệm,xu hướng mua sắm và sự hài lòng của khách hàng bằng cách thu thập dữ liệu hànhvi của khách hàng một cách đa dạng, phong phú, đầy đủ Từ những dữ liệu thu thậpđược có thể cải thiện hiệu suất và hiệu quả bán hàng Big data giúp nhà quản lý xâydựng mô hình chi tiêu của từng khách hàng Với sự trợ giúp của các phân tích dựđoán, ngành công nghiệp có thể so sánh tỷ lệ cung – cầu và có thể tránh tiếp tụctung ra thị trường các sản phẩm không được hầu hết khách hàng đón nhận Ngànhbán le có thể xác định vị trí bố trí sản phẩm trên kệ hàng tùy thuộc vào thói quenmua hàng và nhu cầu của khách hàng và đưa ra các chiến lược kinh doanh mới để

Trang 13

CHƯƠNG 5 HỆ THỐNG PHÂN TÍCH VÀ TRỰC QUAN HÓA DỮ LIỆU

di chuyển các node để cân bằng lại Cluster Mỗi cluster được định danh bằng mộtunique name, sử dụng chung cho tất cả các nodes trong cụm, do vậy việc định danhcác cluster trùng tên sẽ gây nên lỗi cho các nodes Mỗi cluster có một node chính(master) được lựa chọn tự động và có thể thay thế khi gặp sự cố (High Availability)

Hình 5.1: Elasticsearch Cluster

Document: Nó là đơn vị dữ liệu cơ bản trong Elasticsearch – đối tượng JSON

với một số dữ liệu cụ thể Mỗi document thuộc một type và nằm trong một chỉmục Mỗi document được liên kết với một định danh duy nhất được gọi là UID.Elasticsearch sử dụng inverted index để đánh chỉ mục cho các document Invertedindex là một cách đánh chỉ mục dựa trên đơn vị là từ nhằm mục đích tạo mối liênkết giữa các từ và các document chứa từ đó.

Type: Được sử dụng làm danh mục của chỉ mục, cho phép lưu trữ các loại dữ

liệu khác nhau trong cùng một chỉ mục

Index: Nó là một tập hợp các loại document khác nhau và các thuộc tính của

chúng, giúp lưu trữ một lượng lớn dữ liệu có thể vượt qua giới hạn phần cứng củanode làm chậm quá trình phản hồi các request từ những node đơn Do vậy Indexsử dụng khái niệm shards (phân đoạn) để chia nhỏ thành nhiều phần giúp cải thiệnhiệu suất Khi tạo index, có thể xác định số lượng shard mà bạn muốn Index cũngđược định danh bằng tên, tên này được sử dụng khi thực hiện các hoạt động lập chỉmục, tìm kiếm, cập nhật hoặc xóa các document trong index.

Shards: Các index được chia theo chiều ngang thành các shard, mỗi shard chưa

tất cả các thuộc tính của document nhưng chứa ít đối tượng JSON hơn index Sựphân tách ngang làm cho một shard là một node độc lập, có thể được lưu trữ trong

42

Trang 14

CHƯƠNG 5 HỆ THỐNG PHÂN TÍCH VÀ TRỰC QUAN HÓA DỮ LIỆU

bất kỳ node nào Do vậy, một node có thể có nhiều Shard, vì thế Shard sẽ là đốitượng nhỏ nhất, hoạt động ở mức thấp nhất, đóng vai trò lưu trữ dữ liệu Shard chophép phân mảnh theo chiều ngang dễ dàng mở rộng khối lượng bản ghi; phân tánvà hoạt động song song trên các phân đoạn nhờ đó tăng hiệu suất làm việc

Có hai loại Shard:

Primary Shard: phần nằm ngang gốc của một index và sau đó các primary

shard này được sao chép thành các Replicas Shard Primary Shard sẽ lưu trữdữ liệu và đánh index Sau khi đánh xong index, dữ liệu sẽ được vận chuyển tớicác Replica Shard Mặc định của Elasticsearch là mỗi index sẽ có 5 PrimaryShard và mỗi Primary Shard sẽ đi kèm 1 Replica Shard

Replica Shard: Nơi lưu trữ dữ liệu sao chép của Primary Shard, khả năng sẵn

sàng cao, thay thế Primary Shard khi có lỗi Đó cũng là lý do vì sao ReplicaShard không được phân bổ trên cùng node với Primary Shard mà chỉ được saochép từ nó Đảm bảo tính toàn vẹn của dữ liệu khi Primary Shard xảy ra vấn đềnhư bị ẩn hay biến mất Tăng cường tốc độ tìm kiếm bởi có thể cài đặt lượngReplica Shard nhiều hơn mặc định và thực hiện tìm kiếm song song trên cácbản sao này

5.2.3 Cách hoạt động của Elasticsearch

Elasticsearch được xây dựng để hoạt động như một server riêng biệt theo cơ chếcủa RESTful phục vụ việc tìm kiếm dữ liệu.

Đầu tiên dữ liệu thô được thu thập và đẩy vào Elasticsearch từ nhiều nguồnnhư: log, system indicators, webapp, crawl data, sẽ được phân tích và xử lí, bìnhthường hóa, làm giàu trong quá trình nhập liệu trước khi được lập chỉ mục.

Sau khi có được dữ liệu, dữ liệu sẽ được lập chỉ mục và lưu trữ phân tán trêncụm Elasticsearch.

Cuối cùng, sau khi dữ liệu được lập chỉ mục, người dùng có thể tạo các truyvấn phức tạp từ dữ liệu này và sử dụng các truy vấn OLAP trực tuyến tổng hợp(aggregations) để truy xuất các thông tin phức tạp của dữ liệu.

Trang 15

CHƯƠNG 5 HỆ THỐNG PHÂN TÍCH VÀ TRỰC QUAN HÓA DỮ LIỆU

Hình 5.2: Cách hoạt động Elasticsearch

5.2.4 Khi nào nên sử dụng Elasticsearch

Chúng ta nên sử dụng Elasticsearch cho những trường hợp sau:•Searching for pure text: Tìm kiếm dữ liệu dạng văn bản thông thường•Searching text and structured data : Tìm kiếm dữ liệu văn bản và dữ liệu có

cấu trúc

•Data aggregation, security analytics, analysis of business data: Tổng hợp dữliệu, phân tích bảo mật, phân tích dữ liệu kinh doanh, lưu trữ dữ liệu lớn•Logging and log analytics: Ghi lại quá trình hoạt động và phân tích•Application performance monitoring: Giám sát hiệu năng ứng dụng•Infrastructure indicators and container monitoring: Giám sát các chỉ số về cơ

sở hạ tầng ứng dụng

•Geo Search: Tìm kiếm theo tọa độ và phân tích trực quan hóa dữ liệu khônggian địa lý

•JSON document storage: Lưu trữ dữ liệu dạng JSON

5.2.5 Ưu nhược điểm của Elasticsearch [11]Ưu điểm:

•Elasticsearch cho phép tìm kiếm dữ liệu một cách nhanh chóng với hiệu năngcao gần như là real-time hoặc near real-time

•Hỗ trợ tìm kiếm mờ (Fuzzy Query), tức là từ khóa tìm kiếm có thể sai lỗi chính

44

Trang 16

CHƯƠNG 5 HỆ THỐNG PHÂN TÍCH VÀ TRỰC QUAN HÓA DỮ LIỆU

•Lưu trữ dữ liệu full-text và quản lý vòng đời chỉ mục, cho phép người dùngtruy vấn và phân tích, tổng hợp dữ liệu rất lớn với tốc độ cao, hiệu quả•Elasticsearch là hệ thống phân tán tự nhiên, dễ dàng mở rộng và tích hợp mạnh

mẽ Các document được đảm bảo bằng cơ chế replica tránh mất mát dữ liệu•Dễ dàng phục hồi dữ liệu bằng các bản sao lưu được tạo bởi gateway trong

Nhược điểm:

•Elasticsearch được thiết kế cho mục đích tìm kiếm nên thường không dùnglàm cơ sở dữ liệu chính do không mạnh trong các thao tác CRUD, nên thườngcần có một cơ sở dữ liệu dùng song song như MySQL, MongoDB, .•Không phù hợp với những hệ thống thường xuyên cập nhật dữ liệu do sẽ rất

5.3.2 Tìm kiếm và trực quan hóa dữ liệu bằng Kibana

Kibana cho phép phân tích trực quan dữ liệu từ một chỉ mục Elasticsearch hoặcnhiều chỉ số Các chỉ số được tạo khi Logstash hoặc Beats nhập dữ liệu không cócấu trúc từ các tệp nhật kí và các nguồn khác, chuyển đổi nó thành một dạng cócấu trúc cho các chức năng lưu trữ và tìm kiếm của Elasticsearch.

Giao diện của Kibana cho phép người dùng truy vấn dữ liệu trong chỉ số search và sau đó trực quan hóa kết quả thông qua các tùy chọn biểu đồ tiêu chuẩn

Ngày đăng: 25/05/2024, 10:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w