Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
2,12 MB
Nội dung
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: Nguyễn Thị Mỹ Linh - 19133032 Lê Thị Thanh Phương - 19133046 Lê Phương Nam - 19133036 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.2 1.3 Lý chọn đề tài Phạm vi đề tài .1 Mục tiêu đề tài II XÂY DỰNG ỨNG DỤNG MINH HỌA III ĐÁNH GIÁ VÀ KẾT LUẬN 3.1 3.2 3.3 Kết đạt Hạn chế Hướng phát triển IV TÀI LIỆU THAM KHẢO .5 GVHD: Nguyễn Thiên Bảo I MỞ ĐẦU I.1 Lý chọn đề tài Realtime dần trở thành tính tiêu chuẩn ứng dụng Vậy làm để mạng xã hội, tảng video, xử lý lượng liệu lớn tức thì? Một giải pháp sử dụng rộng rãi nhiều tảng tiếng Uber, Netflix, Pinterest Spark Streaming, phần mở rộng Spark với tính khả mở chịu lỗi cao cho phép xử lý big data realtime Trong phân tích liệu, Spark Streaming đóng vai trò cung cấp tảng để đẩy liệu vào mơ hình phân tích tức thời, tăng hiệu mơ hình I.2 Phạm vi đề tài Nhóm em tìm hiểu Spark-Streaming thư viện, cơng cụ kèm Từ xây dựng ứng dụng Phân tích số lượng hashtag Twitter I.3 Mục tiêu đề tài Hiểu Spark-Streaming gì, chức Có thêm kinh nghiệm làm việc nhóm Xây dựng thành cơng ứng dụng Phân tích số lượng hashtag Twitter Trang 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 cơng cụ phân tích hợp mã nguồn mở để xử lý liệu quy mô lớn Spark cung cấp giao diện cho cụm lập trình với tính song song liệu ngầm định khả chịu lỗi Apache Spark gồm có thành phần : Spark Core, Spark Streaming, Spark SQL, MLlib GraphX II.1.2 Streaming Đây công nghệ truyền liệu liên tục Nếu trước đây, xem video, ta cần download tồn video streaming chia video thành nhiều phần nên ta cần loading trước lượng liệu nhỏ Hiện nay, streaming dần trở thành phần quan trọng phát triển Internet II.1.3 Spark Streaming Spark Streaming dựa Spark Core, phần bổ sung cho Spark để xử lý lượng liệu lớn tức đảm bảo chống chịu lỗi Trang GVHD: Nguyễn Thiên Bảo Spark Streaming cho phép: Scaling: dễ dàng scale lên hàng nghìn node Speed: Spark Streaming có khả giảm độ trễn xuống mức vài trăm milliseconds Fault Tolerance: Với hệ thống bình thường, node bị lỗi, failed operator 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 node tính tốn xong Với Spark, tính tốn chi nhỏ thành task cho nhiều node Khi task bị lỗi, node khác thay thực việc tính tốn task nhỏ nên việc thực lại nhanh chóng cách tiếp cận Integration: DStream đại diện cho series RDDs Spark Vì vậy, function Apache Spark dùng để xử liệu Business Analysis: Có thể thư viện MLlib, SQL, GraphX áp dụng để phân tích liệu II.2 Hệ thống Spark-Streaming Tổng quan hệ thống bao gồm giai đoạn: Trang GVHD: Nguyễn Thiên Bảo Dữ liệu đẩy vào Spark Streaming đa dạng nguồn từ realtime streaming Akka, Kafka, Flume, AWS static HBase, MySQL, PostgreSQL, Elastic Search, Mongo DB, Cassandra Từ Spark Streaming Dữ liệu đưa vào MLlib để áp dụng mơ hình học máy Hoặc liệu đưa vào Spark SQL phục vụ cho truy vấn liệu Cuối cùng, sau thao tác với liệu, lưu vào database file system II.3 Xử lý Input Spark-Streaming Dữ liệu qua Spark Streaming chia thành batch nhỏ Spark Engine xử lý để output series batch liệu II.4 Flask ApecCharts II.4.1 Flask Flask Web Framework nhẹ Python, dễ dàng giúp người bắt đầu học Python tạo website nhỏ Flask dễ mở rộng để xây dựng ứng dụng web phức tạp Flask có tảng Werkzeug Jinja2 trở thành Web Framework phổ biến Python Trang GVHD: Nguyễn Thiên Bảo II.4.2 ApecCharts ApexCharts.js thư viện JavaScript mã nguồn mở để hiển thị biểu đồ đáp ứng cho giao diện người dùng Bạn thấy thân thiện sử dụng, đặc biệt với tài liệu tồn diện ApexCharts.js tiếng nhờ có tùy chọn tùy chỉnh cho phép bạn tinh chỉnh biểu đồ để thích ứng với kích thước hình khác mà khơng cần lo lắng việc tạo kiểu thêm Nó hỗ trợ nhiều loại biểu đồ sử dụng hình ảnh hóa hàng ngày Thư viện hoạt động tốt với nhiều biểu đồ Kết hợp loại biểu đồ khác lưới điểm mạnh Trang GVHD: Nguyễn Thiên Bảo Trang GVHD: Nguyễn Thiên Bảo III XÂY DỰNG ỨNG DỤNG Đề tài: Phân tích số lượng thẻ bắt đầu # Twitter III.1Tổ chức ứng dụng Nhóm em lấy liệu từ Twitter thông qua Twitter API Twitter HTTP Client App(Python) sau chuyển liệu cho spark qua kết nối socket, spark nhận liệu gồm có tweet hashtag, Spark xử lý xong dùng flask để vẽ biểu đồ III.2Triển khai ứng dụng III.2.1 Các file ứng dụng: a Twitter_app.py: Xử lý Twitter Trang GVHD: Nguyễn Thiên Bảo Chúng ta cần tham số đầu vào page(số trang), keywords (từ khóa), max_result(kết 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 liệu từ Twiter Trang GVHD: Nguyễn Thiên Bảo Header: để xác thực tài khoản twitter băng bearer_token Để truy cập vào Twitter cần phải có bearer_token tài khồn Nhóm em bỏ bearer_token file keys.txt Trang GVHD: Nguyễn Thiên Bảo Keyword: từ khóa tìm kiếm, nhận keyword hashtag ngôn ngữ english Thiệt lập time date: tìm kiếm Hàm create_url: Tạo url từ key word, time, next token, max result Các kết trả lưu vào file json Trang 10 GVHD: Nguyễn Thiên Bảo Server trả kết Trong next_token ban đầu = 0, sau nhận next_token từ kết trả làm giá trị Trang 11 GVHD: Nguyễn Thiên Bảo Cuối liệu cho spark xử lý b Spark_app.py: xử lý Spark Tạo SparkSession để quản lý dùng chức Spark Trang 12 GVHD: Nguyễn Thiên Bảo Sau đó, tách tứng dịng liệu, từ dịng tách hashtag nhóm theo theo số lượng Cuối gửi liệu lên server c app.py: xử lý server web Trang 13 GVHD: Nguyễn Thiên Bảo Dữ liệu đưa tới server thông qua hàm “update_data” phương thức POST Giao diện web nhận điểm liệu hashtag từ server giây/lần qua hàm “refresh_data” phương thức GET Dữ liệu cập nhập nhiều lần giao diện web thông qua công cụ jinja2 template app.py chạy 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 tham số (số trang từ khóa đị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 ứng dụng Trang 16 GVHD: Nguyễn Thiên Bảo IV ĐÁNH GIÁ VÀ KẾT LUẬN IV.1 Kết đạt Hiểu lý thuyết vận dụng 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 Spark IV.2 Hạn chế Chưa có trang web hồn chỉnh Khơng tìm kiếm chung Twitter mà cần phải có key-words Ứng dụng đơn giản dễ làm IV.3 Hướng phát triển Cải thiện front-end trở nên đẹp Thêm phần login, register - Trang 17 GVHD: Nguyễn Thiên Bảo V TÀI LIỆU THAM KHẢO https://viblo.asia/p/ung-dung-spark-streaming-vao-phan-tich-cam-xuc-mang-xa-hoitwitter-WAyK82r9lxX https://vinasupport.com/huong-dan-cai-dat-python-3-va-pip-3-tren-ubuntu-linux/ https://helpex.vn/article/bat-dau-voi-spark-streaming-5c6b0496ae03f628d053ab26 https://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 Trang 18 ... liệu Business Analysis: Có thể thư viện MLlib, SQL, GraphX áp dụng để phân tích liệu II.2 Hệ thống Spark-Streaming Tổng quan hệ thống bao gồm giai đoạn: Trang GVHD: Nguyễn Thiên Bảo Dữ liệu đẩy... Từ xây dựng ứng dụng Phân tích số lượng hashtag Twitter I.3 Mục tiêu đề tài Hiểu Spark-Streaming gì, chức Có thêm kinh nghiệm làm việc nhóm Xây dựng thành cơng ứng dụng Phân tích số lượng hashtag... xuống mức vài trăm milliseconds Fault Tolerance: Với hệ thống bình thường, node bị lỗi, failed operator 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 node tính tốn xong