1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo cuối kì môn học hệ phân bố (4)

21 12 0

Đ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

Tiêu đề Báo Cáo Cuối Kỳ Môn Học Hệ Phân Bố
Tác giả Nhóm 12
Người hướng dẫn Nguyễn Thiên Bảo, GVHD
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Hệ Phân Bố
Thể loại Báo cáo cuối kỳ
Năm xuất bản 2022
Thành phố TP.HCM
Định dạng
Số trang 21
Dung lượng 2,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một giải pháp đang được sử dụng rộng rãi bởi nhiều nền tảng nổi tiếng như Uber, Netflix, Pinterest là Spark Streaming, một phần mở rộng của Spark với tính khả mở và chịu lỗi cao cho phép

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

-3 Lê Phương Nam - 19133036

ĐIỂM:

NHẬN XÉT CỦA GV:

GV KÝ TÊN

Trang 3

I MỞ ĐẦU 1

1.1 Lý do chọn đề tài 1

1.2 Phạm vi đề tài 1

1.3 Mục tiêu đề tài 1

II XÂY DỰNG ỨNG DỤNG MINH HỌA 3

III ĐÁNH GIÁ VÀ KẾT LUẬN 4

3.1 Kết quả đạt được 4

3.2 Hạn chế 4

3.3 Hướng phát triển 4

IV TÀI LIỆU THAM KHẢO 5

Trang 4

I MỞ ĐẦU

I.1 Lý do chọn đề tài

Realtime đang dần trở thành tính năng tiêu chuẩn của các ứng dụng hiện nay Vậy làm thế nào để các mạng xã hội, nền tảng video, xử lý lượng dữ liệu lớn trong tức thì? Một giải pháp đang được sử dụng rộng rãi bởi nhiều nền tảng nổi tiếng như Uber, Netflix, Pinterest là Spark Streaming, một phần mở rộng của Spark với tính khả mở và chịu lỗi cao cho phép xử lý big data realtime

Trong phân tích dữ liệu, Spark Streaming đóng vai trò cung cấp nền tảng để đẩy dữ liệu vào các mô hình phân tích tức thời, tăng hiệu năng của mô hình

I.2 Phạm vi đề tài

Nhóm em sẽ tìm hiểu về Spark-Streaming và các thư viện, công cụ đi kèm

Từ đó xây dựng ứng dụng Phân tích số lượng các hashtag trên Twitter

I.3 Mục tiêu đề tài

Hiểu được Spark-Streaming là gì, chức năng chính

Có thêm kinh nghiệm làm việc nhóm

Xây dựng thành công 1 ứng dụng Phân tích số lượng các hashtag trên Twitter

Trang 5

II TÌM HIỂU VỀ SPARK-STREAMING

II.1 Giới thiệu Spark-Streaming

Apache Spark là một công cụ phân tích hợp nhất mã nguồn mở để xử lý dữ liệu quy mô lớn Spark cung cấp một giao diện cho các cụm lập trình với tính song song

dữ liệu ngầm định và khả năng chịu lỗi

Apache Spark gồm có 5 thành phần chính : Spark Core, Spark Streaming, Spark SQL, MLlib và GraphX

Đây là công nghệ truyền dữ liệu liên tục Nếu như trước đây, khi xem 1 video, ta cần download toàn bộ video đó về thì streaming chia video thành nhiều phần nên ta chỉ cần loading trước 1 lượng dữ liệu nhỏ Hiện nay, streaming đang dần trở thành 1 phần quan trọng trong sự phát triển của Internet

Spark Streaming dựa trên Spark Core, là một phần bổ sung cho Spark để xử lý lượng dữ liệu lớn tức thì và đảm bảo chống chịu lỗi

Trang 6

Spark Streaming cho phép:

1 Scaling: dễ dàng scale lên hàng nghìn node.

2 Speed: Spark Streaming có khả năng giảm độ trễn xuống mức vài trăm

milliseconds

3 Fault Tolerance: Với các hệ thống bình thường, khi 1 node bị lỗi, failed

operator sẽ được tính toán lại ở node khác Vi vậy, đôi lúc hệ thống không thể hoạt động tiếp cho đến khi node đó tính toán xong Với Spark, 1 tính toán đượcchi nhỏ thành các task con cho nhiều node Khi 1 task bị lỗi, các node khác sẽ thay thế thực hiện việc tính toán đó và do task đã rất nhỏ nên việc thực hiện lại này sẽ nhanh chóng hơn cách tiếp cận trên

4 Integration: DStream đại diện cho series các RDDs trong Spark Vì vậy, bất

cứ function nào của Apache Spark đều có thể dùng để xử dữ liệu

5 Business Analysis: Có thể các thư viện MLlib, SQL, GraphX có thể được áp

dụng để phân tích dữ liệu

II.2 Hệ thống Spark-Streaming

Tổng quan một hệ thống bao gồm 4 giai đoạn:

Trang 7

1 Dữ liệu đẩy vào Spark Streaming có thể đa dạng nguồn từ realtime streaming như Akka, Kafka, Flume, AWS hoặc static như HBase, MySQL,

PostgreSQL, Elastic Search, Mongo DB, Cassandra

2 Từ Spark Streaming Dữ liệu có thể được đưa vào MLlib để áp dụng các mô hình học máy

3 Hoặc dữ liệu cũng có thể đưa vào Spark SQL phục vụ cho truy vấn dữ liệu

4 Cuối cùng, sau các thao tác với dữ liệu, nó sẽ được lưu vào database hoặc file system

II.3 Xử lý Input của Spark-Streaming

Dữ liệu đi qua Spark Streaming sẽ được chia thành các batch nhỏ rồi được Spark Engine xử lý để output ra series các batch dữ liệu mới

II.4 Flask và ApecCharts

II.4.1 Flask

Flask là một Web Framework rất nhẹ của Python, dễ dàng giúp người mới bắt đầu học Python có thể tạo ra website nhỏ Flask cũng dễ mở rộng để xây dựng các

ứng dụng web phức tạp

Flask có nền tảng là Werkzeug và Jinja2 và nó đã trở thành một trong

những Web Framework phổ biến nhất của Python

Trang 8

II.4.2 ApecCharts

ApexCharts.js là một thư viện JavaScript mã nguồn mở để hiển thị các biểu đồđáp ứng cho giao diện người dùng Bạn sẽ thấy nó thân thiện khi sử dụng, đặc biệt

là với tài liệu toàn diện của nó

ApexCharts.js đã nổi tiếng nhờ có các tùy chọn tùy chỉnh cho phép bạn tinh chỉnh biểu đồ của mình để thích ứng với các kích thước màn hình khác nhau mà không cần lo lắng về việc tạo kiểu thêm Nó cũng hỗ trợ nhiều loại biểu đồ được sửdụng trong hình ảnh hóa hàng ngày

Thư viện này cũng hoạt động tốt với nhiều biểu đồ Kết hợp các loại biểu đồ khác nhau trong một lưới duy nhất là một trong những điểm mạnh của nó

Trang 10

III.2.1 Các file chính của ứng dụng:

a Twitter_app.py: Xử lý trên Twitter

Trang 11

Chúng ta cần 4 tham số đầu vào là page(số trang), keywords (từ khóa), max_result(kết quả tối đa), sleep_time(thời gian nghỉ)

Kết nối với Twitter thông qua qua TCP

Trang 12

 Header: để xác thực tài khoản twitter băng bearer_token

Để truy cập được vào Twitter cần phải có bearer_token của 1 tài khoàn

Nhóm em bỏ bearer_token trong file keys.txt

Trang 13

 Keyword: từ khóa tìm kiếm, ở đây nó sẽ nhận những keyword là hashtag và ngôn ngữ english

 Thiệt lập time và date: tìm kiếm

 Hàm create_url: Tạo url từ key word, time, next token, max result

 Các kết quả trả về được lưu vào file json

Trang 14

Trong đó next_token ban đầu = 0, sau đó nó sẽ nhận next_token từ kết quả trả về làm giá trị

Trang 15

Cuối cùng các dữ liệu cho spark xử lý.

b Spark_app.py: xử lý trên Spark

Tạo 1 SparkSession để quản lý và dùng các chức năng của Spark

Trang 16

Sau đó, tách tứng dòng dữ liệu, rồi từ mỗi dòng tách các hashtag và nhóm theo theo số lượng

Cuối cùng là gửi dữ liệu lên server

c app.py: xử lý server web

Trang 17

Dữ liệu được đưa tới server thông qua hàm “update_data” bằng phương thứcPOST

Giao diện của web sẽ nhận điểm dữ liệu hashtag từ server mỗi 2 giây/lần qua hàm “refresh_data” bằng phương thức GET

Dữ liệu sẽ được cập nhập nhiều lần tại giao diện web thông qua công cụ jinja2 template

Trang 18

d index.html: vẽ biểu đồ

III.2.2 Triển khai ứng dụng

B1 chạy Twitter_app.py với các 4 tham số (số trang và từ khóa nhất định phải có)python3 /twitter_app.py -p 50 -k "corona bitcoin gaming Android"

B2 chạy spark_app.py

python3 /spark_app.py

Trang 19

B3 chạy app.py

III.2.3 Kết quả ứng dụng

Trang 20

IV ĐÁNH GIÁ VÀ KẾT LUẬN

IV.1 Kết quả đạt được

Hiểu lý thuyết và vận dụng được Spark để làm ứng dụng

Có thêm kinh nghiệm làm việc nhóm

Cách vận hành Spark Streaming, xử lý thời gian thực của Spark

IV.2 Hạn chế

Chưa có được trang web hoàn chỉnh

Không tìm kiếm chung trong Twitter mà cần phải có key-words

Ứng dụng hơi đơn giản và dễ làm

IV.3 Hướng phát triển

Cải thiện front-end trở nên đẹp hơn

Thêm phần login, register

Trang 21

-V TÀI LIỆU THAM KHẢO

twitter-WAyK82r9lxX

https://viblo.asia/p/ung-dung-spark-streaming-vao-phan-tich-cam-xuc-mang-xa-hoi-https://vinasupport.com/huong-dan-cai-dat-python-3-va-pip-3-tren-ubuntu-linux/https://helpex.vn/article/bat-dau-voi-spark-streaming-5c6b0496ae03f628d053ab26https://t3h.edu.vn/tin-tuc/flask-la-gi-gioi-thieu-ve-flask-cua-python

https://niithanoi.edu.vn/flask-la-gi.html

https://github.com/HritwikSinghal/Spark-tweet

Ngày đăng: 10/06/2022, 09:38

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w