hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu...
TRANSCRIPT
Hệ thống phân tích tình trạng giao thông Ứng dụng công cụ xử lý dữ liệu lớn thời
gian thực
Sinh viên thực hiện: Trương Hoàng Linh– 20102688 Bùi Duy Khánh - 20101702
Giáo viên hướng dẫn: TS. Trần Việt Trung
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận2
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Giới thiệu chung
3
Đặt vấn đề
Hiện trạng giao thông Cơ sở hạ tầng Ý thức người tham gia giao thôngÞ Ùn tắc trầm trọng
Thu thập dữ liệu giao thông (91/2009/NĐCP) 150.000 phương tiện lắp đặt
thiết bị GPS (2011), thêm 15.000 phương tiện mỗi năm Gửi dữ liệu 30s/lần. Þ Dữ liệu lớn, liên tục
4
Giải pháp
5
HỆ THỐNG
XỬ LÝ DỮ LIỆU GIAO
THÔNG
Xử lý thời gian thực
Độ tin cậy
Hiển thị trực quan
Kết quả đạt được
Giao diện trang chủ
6
Kết quả đạt được
Giao diện hiển thị tình trạng giao thông thời gian thực
7
Kết quả đạt được
Giao diện tìm đường đi
8
Các bước thực hiện đồ án
Phân tích dữ liệu thô Xây dựng hệ thống
• TÌm hiểu
Khai phá dữ liệu
Hiển thị So sánh, đánh giá
9
Phương pháp Map matching
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Thiết kế hệ thống
10
Thiết kế hệ thống
Mô hình tổng thể của hệ thống11
Đảm bảo:
- Không mất mát dữ liệu
- Xử lý dữ liệu thời gian thực
- Lưu trữ kết quả xử lý
Khối khai phá dữ liệu – Mô hình chi tiết
Mô hình chi tiết khối khai phá dữ liệu
-Thông lượng cao
-Không mất mát dữ liệu
-Dễ dàng mở rộng
-Xử lý nhanh chóng
-Khả năng xử lý liên tục
-Dễ dàng mở rộng
-Khả năng chịu lỗi
Thông lượng cao
-Lưu trữ khối lượng dữ liệu lớn
-Dễ dàng mở rộng
-Ghi dữ liệu nhanh chóng
12
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Lựa chọn công nghệ
13
Hệ thống truyền thông điệp phân tán Thành phần
• Topic• Broker• Partition• Producer• Consumer
Đặc điểm• Khả năng mở rộng • Thông lượng cao • Độ tin cậy
Kiến trúc của Kafka
Hàng đợi thông điệp – Apache Kafka
14
Xử lý luồng dữ liệu phân tán – Spark Streaming
Apache Spark Thành phần chính
Mô hình hoạt động trên cụm
15
RDD
-Tập hợp dữ liệu đầu vào-Chia thành các partition-Phân phối trên các node-Xử lý trên bộ nhớ trong
-Lưu lại các thao tác sinh ra nó
nhanh
Driver
Worker
-Lập lịch, điều phối nhiệm vụ
-Thực hiện nhiệm vụ-Lưu trữ dữ liệu RDD (cache)-Lưu trữ dữ liệu đầu vào
Chịu lỗi
API mức cao Thuận tiện, dễ dàng
Xử lý luồng dữ liệu phân tán – Spark Streaming
Kiến trúc của Spark Streaming
16
Xử lý liên tụcRDD
DStream
Xử lý luồng dữ liệu phân tán – Spark Streaming
Áp dụng một thao tác biến đổi trên DStream
17
Cơ sở dữ liệu - MongoDb
Dễ sử dụng
Đảm bảo cơ chế ghi tốc độ cao và tin cậy
Các thành phần chính Collection
Document
18
Xử lý luồng dữ liệu phân tán – Apache Storm Hệ thống tính toán phân tán mã nguồn mở thời
gian thực miễn phí
Kiến trúc của Apache Storm
Các thành phần chính Topology
• Đồ thị tính toán xử lý các luồng dữ liệu liên tục• Các thành phần
– Spout– Bolt– Các liên kết– Bộ phận giám sát lỗi
Xử lý luồng dữ liệu phân tán – Apache Storm
Chịu lỗi
Tốc độ xử lý nhanh
Spout A
Bolt B
Bolt D
Bolt C
Cơ sở dữ liệu - Geomesa
Đánh chỉ mục dữ liệu theo tọa độ
Hệ sinh thái Accumulo
Cơ sở dữ liệu Geomesa
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Tích hợp hệ thống
22
Tích hợp hệ thống
23
Spark Streaming
24
1429847742000,D5DAE94,106.71582139756944,10.747578125,11.1
<32578711-1, (1/39.5,1) ><0, (1/11.2,1) >
<32578711-1, (1/39.5,1) >
<32578711-1, (4.8,200) >
<32578711-1, (41.67 ,200) >
32578711-1-41.67-200
Mô-đun kết nối
25
Kafka Spout
Reverse GeoCode
Bolt
Statistic Bolt
Kafka Bolt
Storage Bolt
1429847742000,D5DAE94,106.71582139756944,10.747578125,11.1
<32578711-1,(1/39.5)>
32578711-1-41.67-200
32578711-1-41.67-200
1429847742000,D5DAE94,106.71582139756944,10.747578125,11.1
Apache Storm
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Khai phá dữ liệu
27
Cơ sở lý thuyết
28
Định dạng dữ liệu
Trong đó: time_stamp: Thời gian dữ liệu GPS được gửi
lên car_id: Id của xe lon: Kinh độ lat: Vĩ độ Speed: Tốc độ của xe
Cơ sở lý thuyết
Ánh xạ tọa độ vào đường
Phương pháp ánh xạ tọa độ điểm-điểm Tính vận tốc trung bình
Vận tốc của một phương tiện giao thông
Vận tốc trung bình trong khoảng thời gian ti
29
Tiền xử lý dữ liệu
Cấu trúc dữ liệu bản đồ OSM
Trích xuất dữ liệu
30
Khai phá dữ liệuThuật toán ánh xạ tọa độ sử dụng cây k-d
Thuật toán tìm láng giềng gần nhất trên cây k-d
Thuật toán ánh xạ tọa độ vào đường• Hệ tọa độ: Cartesian• Thuật toán
31
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận
Thử nghiệm và đánh giá
32
Thử nghiệm và đánh giá
Cài đặtKết quả thử nghiệmDữ liệu thử nghiệmKết quả
33
Thử nghiệm và đánh giá
So sánh Spark và Storm
34
3.200.000 bản ghi 8.500.000 bản ghi0
5
10
15
20
25
Đỗ trễ
3.200.000 bản ghi 8.500.000 bản ghi0
100
200
300
400
500
600
700
800
900
1000
Tốc độ xử lý
Spark StreamingStorm
Kết quả đạt được
So sánh Spark Streaming và Storm
35
3.200.000 bản ghi 8.500.000 bản ghi0
5
10
15
20
25
Đỗ trễ(giây)
3.200.000 bản ghi 8.500.000 bản ghi0
100200300400500600700800900
1000
Tốc độ xử lý
Spark StreamingStorm
(giây)
Tích hợp hệ thống
Cải tiến đảm bảo dữ liệu được xử lý duy nhất. Vấn đề của Spark Streaming với Kafka dùng bộ nhận:
• Dữ liệu nhận từ Kafka có thể trùng lặp
• Kết quả ra hệ thống ngoài có thể không đầy đủ.
Phương pháp:
1. Xây dựng mô-đun lấy dữ liệu cùng id trong Kafka
2. Tạo transaction với id đó, đẩy dữ liệu kết quả vào mongodb
3. Hệ thống lỗi => dùng id cũ trong mongodb => lấy dữ liệu và xử lý
lại
36
Nội Dung
Thiết kế hệ thống
Lựa chọn công nghệ
Tích hợp hệ thống
Khai phá dữ liệu
Thử nghiệm và đánh giá
Giới thiệu chung
Kết luận Kết luận37
Kết luận
Kết quả đạt đượcNhững điểm hạn chếĐịnh hướng phát triển
38
Tài liệu tham khảo Andrew W.Moore: An introductory tutorial on kd-tree, Cargeghie Mellon
University, Canada Robert F. Sproull: Refinements to Nearest-Neighbor Searching in k-
Dimensional Trees. M. Otair: Approximate k-nearest neighbour based spatial clustering using k-d
tree. International Journal of Database Management Systems 5(1) (2013). P. Taylor Goetz, Hortonworks: Apache Storm and Apache Spark Streaming
Compared. Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia: Learning
Spark, Lightning- Fast Big Data Analysis. Ugur Demiryurek, Farnoush Banaei-Kashani, Cyrus Shahabi, and Anand
Ranganathan: Online Computation of Fastest Path in Time-Dependent Spatial Networks, University of Southern California- Department of Computer Science Los Angeles, CA USA.
https://www.openstreetmap.org/ Nguyễn Đức Vinh, Hệ thống phân tích tình trạng giao thông – Xây dựng ứng
dụng phía người dùng, Đồ án tốt nghiệp Kỹ sư, Trường Đại học Bách Khoa Hà Nội, Việt Nam, 2015
39
www.themegallery.com
Cảm ơn thầy cô và các bạn đã lắng nghe!
Cải tiến
41
Spark StreamingKafka
Thông điệp
Nhận và sao chép
Vấn đề của Spark Streaming với Kafka dùng bộ nhận Có thể trùng lặp dữ liệu đầu vào
Thông báo
Trùng lặp dữ liệu đầu vào
Cải tiến
42
Spark StreamingKafka
Thông điệp
Tôi xử lý xong lô này
rồi
Spark Streaming lỗi, dữ liệu đẩy ra chưa hết
Vấn đề của Spark Streaming với Kafka dùng bộ nhận Có thể mất dữ liệu kết quả
Tôi đẩy dữ liệu ra
Cải tiến
43
Giải pháp .
1. Viết lại bộ nhận2. Tạo transaction
<id đầu, Thông điệp>………………………………………………………………………
<id cuối, Thông điệp>
RDD
Spark Streaming
<id, Thông điệp>
Kafka
Khởi tạo transaction
<id transaction, id đầu, id cuối, trạng thái>
PROCESSING
FINISH