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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 3,99 MB

Nội dung

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

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.vn

Lớ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ày tháng năm

Tác giả ĐATN

Họ và tên sinh viên

Trang 3

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ới

và 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

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu và phạm vi đề tài 2

1.2.1 Mục tiêu 2

1.2.2 Phạm vi đề tài 2

1.3 Định hướng giải pháp 2

1.3.1 Phương pháp nghiên cứu 2

1.3.2 Phương pháp thực hành 3

1.4 Đối tượng và kịch bản sử dụng 3

1.5 Bố cục đồ án 3

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

3.5 Kết luận chương 3 28

CHƯƠNG 4 HỆ THỐNG THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 29

4.1 Tổng quan 29

4.2 Hệ thống thu thập dữ liệu 29

4.2.1 Xác định nguồn dữ liệu 29

4.2.2 Xác định cách thức thu thập dữ liệu 30

4.2.3 Những khó khăn phải đối mặt 30

4.3 Hệ thống tiền xử lý dữ liệu 31

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

5.3 Kibana 45

5.3.1 Kibana là gì? [12] 45

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

5.3.3 Kibana Dashboard 46

5.4 Xây dựng hệ thống trực quan hóa thực tế 46

5.4.1 Luồng hệ thống thực tế 46

5.4.2 Cấu hình hệ thống 46

5.4.3 Hình ảnh về hệ thống 48

5.5 Kết luận chương 50

CHƯƠNG 6 HỆ THỐNG PHÂN LOẠI BÌNH LUẬN ĐÁNH GIÁ SẢN PHẨM DỰA TRÊN SPARK MLLIB 52

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

6.3 Tiền xử lý dữ liệu 52

6.4 Xây dựng mô hình thuật toán 54

6.5 Kết quả hệ thống 56

6.6 Kết luận chương 6 56

CHƯƠNG 7 KẾT LUẬN 58

7.1 Kết quả đạt được 58

7.2 Hướng phát triển 58

Trang 8

TÀI LIỆU THAM KHẢO 59

Trang 9

DANH MỤC HÌNH VẼ

Hình 3.1 Mô hình Master Slave 8

Hình 3.2 Kiến trúc Hadoop 8

Hình 3.3 Kiến trúc HDFS 10

Hình 3.4 Block trong HDFS 12

Hình 3.5 Luồng ghi dữ liệu 12

Hình 3.6 Đọc dữ liệu 13

Hình 3.7 Mô hình MapReduce 15

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 3.14 Tính toán phân tán 23

Hình 3.15 Spark Application 24

Hình 3.16 Spark RDD 25

Hình 3.17 File hdfs-site.xml 27

Hình 3.18 File hdfs-site.xml 27

Hình 3.19 Node overview 27

Hình 3.20 Node status 28

Hình 3.21 Spark Shell 28

Hình 4.1 Đặc tính lưu trữ của các định dạng 33

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.1 Elasticsearch Cluster 42

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

Hình 5.3 File elasticsearch.yml 47

Hình 5.4 File kibana.yml 47

Hình 5.5 Truy vấn tổng số sản phẩm 47

Hình 5.6 Truy vấn tổng số shop 48

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 5.9 Một số biểu đồ phân tích (1) 49

Hình 5.10 Một số biểu đồ phân tích (2) 49

Hình 5.11 Một số biểu đồ phân tích (3) 49

Hình 5.12 Một số biểu đồ phân tích (4) 49

Hình 5.13 Một số biểu đồ phân tích (5) 50

Hình 5.14 Một số biểu đồ phân tích (6) 50

Hình 5.15 Một số biểu đồ phân tích (7) 50

Hình 5.16 Một số biểu đồ phân tích (8) 50

Hình 6.1 Phân bổ dữ liệu 53

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

Hình 6.6 Dữ liệu đã làm sạch 54

Hình 6.7 Word Embedding 54

Hình 6.8 Luồng xây dựng mô hình thuật toán Random Forest 55

Hình 6.9 Các tham số đánh giá 55

Hình 6.10 Các cây sau khi xây dựng của mô hình 56

Hình 6.11 Độ chính xác - Accuracy 56

Hình 6.12 Precision 56

Hình 6.13 Recall 56

Hình 6.14 Độ đo F1 56

Trang 11

DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT Viết tắt Tên tiếng Anh Tên tiếng Việt

API Application Programming

Inter-face

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ÀI 1.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ới

và 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ành

vi 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 Index

sử 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án

và 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]

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