Tải bản đầy đủ (.docx) (21 trang)

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

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 (2.24 MB, 21 trang )

BỘ GIÁ O DỤC VÀ ĐÀ O TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA CÔNG NGHỆ THÔNG TIN

MÔN: HỆ PHÂN BỐ
BÁO CÁO ĐỒ ÁN

Đề tài :

PHÂN TÍCH SĨ LƯỢNG HASHTAG
TRÊN TWITTER

GVHD: NGUYỄN THIÊN BẢO
NHÓM THỰC HIỆN: NHÓM 12

Tp.HCM, tháng 5/2022 HỌ VÀ TÊN SINH VIÊN THỰC HIỆN ĐỀ TÀI:


1. Nguyễn Thị Mỹ Linh

- 19133032

2. Lê Thị Thanh Phương

- 19133046

3. Lê Phương Nam

- 19133036

4. Nguyễn Quốc Việt



- 19133068

ĐIỂM:

NHẬN XÉT CỦA GV:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................

GV KÝ TÊN


Mục lục
I. MỞ ĐẦU.....................................................................................................................1
1.1
1.2
1.3

Lý do chọn đề tài....................................................................................1
Phạm vi đề tài.........................................................................................1
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
3.2
3.3

Kết quả đạt được....................................................................................4
Hạn chế....................................................................................................4
Hướng phát triển....................................................................................4

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


GVHD: Nguyễn Thiên Bảo

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 1


GVHD: Nguyễn Thiên Bảo

II. TÌM HIỂU VỀ SPARK-STREAMING
II.1 Giới thiệu Spark-Streaming
II.1.1

Spark

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

II.1.2

Streaming

Đâ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

II.1.3

Spark Streaming

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 2


GVHD: Nguyễn Thiên Bảo

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 tố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 tốn xong. Với Spark, 1 tính tốn được
chi 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 tố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 3


GVHD: Nguyễn Thiên Bảo
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 4



GVHD: Nguyễn Thiên Bảo

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 5


GVHD: Nguyễn Thiên Bảo

Trang 6


GVHD: Nguyễn Thiên Bảo

III. XÂY DỰNG ỨNG DỤNG
Đề tài: Phân tích số lượng các thẻ bắt đầu bằng # trên

Twitter
III.1Tổ chức ứng dụng

Nhóm em sẽ lấy cái dữ liệu từ Twitter thông qua Twitter API trong Twitter HTTP
Client App(Python) sau đó chuyển dữ liệu cho spark qua kết nối socket, spark sẽ nhận
được dữ liệu gồm có các tweet và các hashtag, Spark xử lý xong sẽ dùng flask để vẽ
biểu đồ

III.2Triển khai ứng dụng
III.2.1 Các file chính của ứng dụng:
a. Twitter_app.py: Xử lý trên Twitter

Trang 7


GVHD: Nguyễn Thiên Bảo

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

Trong có hàm get_tweet_data lấy dữ liệu từ Twiter
Trang 8


GVHD: Nguyễn Thiên Bảo

 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

khồn

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

Trang 9


GVHD: Nguyễn Thiên Bảo

 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 10


GVHD: Nguyễn Thiên Bảo
 Server sẽ trả về các kết quả

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

Trang 11


GVHD: Nguyễn Thiên Bảo
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 12


GVHD: Nguyễn Thiên Bảo

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 13


GVHD: Nguyễn Thiên Bảo

Dữ liệu được đưa tới server thông qua hàm “update_data” bằng phương thức
POST
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
app.py chạy trên localhost port 5001
Trang 14


GVHD: Nguyễn Thiên Bảo

http://54.160.67.12:5001/

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 15


GVHD: Nguyễn Thiên Bảo

B3 chạy app.py

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

Trang 16


GVHD: Nguyễn Thiên Bảo

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 hồ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 17


GVHD: Nguyễn Thiên Bảo

V. TÀI LIỆU THAM KHẢO
a/p/ung-dung-spark-streaming-vao-phan-tich-cam-xuc-mang-xa-hoitwitter-WAyK82r9lxX
/> /> /> /> />
Trang 18



×