1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu về Big data

27 195 1

Đ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 27
Dung lượng 5,48 MB

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

Nội dung

Dữ liệu lớn là một lĩnh vực xử lý các cách phân tích, trích xuất thông tin một cách có hệ thống hoặc xử lý các tập dữ liệu quá lớn hoặc phức tạp mà phần mềm ứng dụng xử lý dữ liệu truyền thống không thể xử lý được. Dữ liệu có nhiều trường hợp (hàng) cung cấp sức mạnh thống kê lớn hơn, trong khi dữ liệu có độ phức tạp cao hơn (nhiều thuộc tính hoặc cột) có thể dẫn đến tỷ lệ phát hiện sai cao hơn

Trang 1

BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI

ĐỀ TÀI

TÌM HIỂU VỀ BIG DATA

Giáo viên hướng dẫn: Nguyễn Đình Nga Sinh viên thực hiện: nhóm 1( Vũ Thành Quyền, Lê Văn An, Nguyễn Quang Sáng,

Nguyễn Thành Công, Tô Văn Cường, Tạ Đức Chung)

Hà Nội, ngày 30 tháng 3 năm 2020

Trang 2

Lời mở đầu

Trước đây, chúng ta mới chỉ biết đến dữ liệu có cấu trúc (structure data), ngày nay, với sự kết hợp của dữ liệu và internet, đã xuất hiện một dạng khác của dữ liệu - Big data (dịch là “dữ liệu lớn”) Dữ liệu này có thể từ các nguồn như: hồ

sơ hành chính,giao dịch điện tử, dòng trạng thái (status), chia sẻ hình ảnh, bình luận, nhắn tin của chính chúng ta, nói cách khác chúng là dữ liệu được sản sinh qua quá trình chia sẻ thông tin trực tuyến liên tục của người sử dụng Để cung cấp cái nhìn tổng quan, chúng tôi xin giới thiệu tóm tắt những nét chính

về dữ liệu lớn cũng như những cơ hội và thách thức mà dữ liệu lớn mang lại.

Trang 3

Mục lục

Lời mở đầu 2

Mục lục 3

Chương I: Giới Thiệu về Big Data 4

1.1 Khái niệm về dữ liệu lớn 4

1.2 Nguồn hình thành dữ liệu và phương pháp khai thác và quản lý dữ liệu lớn 4

1.4 Sự khác biệt giữa dữ liệu lớn với dữ liệu truyền thống 7

Chương II: Các Thành Phần Của Big Data 9

2.1 Quản lí dữ liệu 9

2.2 Phân tích dữ liệu 10

2.3 sử dụng dữ liệu 10

Chương III: Tổ chức dữ liệu BigData 11

3.1 Hadoop 11

3.2 Các Thành Phần của Hadoop 12

3.3 Hadoop hoạt động như thế nào ? 12

3.4 Hadoop Distributed File System (HDFS) 14

3.4.1 HDFS là gì ? 14

3.4.2 Kiến trúc của HDFS : 14

4.3.3 Cơ chế Hoạt Động của HDFS 15

Chương IV: Các lĩnh vực đang ứng dụng Big Data ở Việt Nam 18

4.1 Phân tích mục tiêu của khách hàng 18

4.2 Hiểu và tối ưu hóa sản phẩm, quy trình kinh doanh 18

4.3 Chăm sóc sức khỏe cộng đồng 19

4.4 Nâng cao hiệu suất thể thao 20

4.5 Cải thiện an ninh và thực thi pháp luật 20

4.6 Xây dựng thành phố thông minh 21

4.7 Hoạt động tài chính - ngân hàng 21

Chương V: Kiến thức nền tảng cho các bạn sinh viên 22

5.1 Tại sao nên theo học ngành Big Data ? 22

5.2 Những kỹ năng bắt buộc nào cần có đối với một người mới đi làm trong ngành Big Data ? 23

Lời cảm ơn 26

Trang 4

Chương I: Giới Thiệu về Big Data1.1 Khái niệm về dữ liệu lớn

- Theo wikipedia: Big data là một thuật ngữ chỉ bộ dữ liệu lớn hoặc phức tạp

mà các phương pháp truyền thống không đủ các ứng dụng để xử lý dữ liệu này

- Theo Gartner: Dữ liệu lớn là những nguồn thông tin có đặc điểm chung khối lượng lớn, tốc độ nhanh và dữ liệu định dạng dưới nhiều hình thức khác nhau,

do đó muốn khai thác được đòi hỏi phải có hình thức xử lý mới để đưa ra quyết định, khám phá và tối ưu hóa quy trình

1.2 Nguồn hình thành dữ liệu và phương pháp khai thác và quản lý dữ liệu lớn

Qua thống kê và tổng hợp, nguồn dữ liệu lớn được hình thành chủ yếu từ 6 nguồn: (1) Dữ liệu hành chính (phát sinh từ chương trình của một tổ chức, có thể là chính phủ hay phi chính phủ) Ví dụ, hồ sơ y tế điện tử ở bệnh viện, hồ sơ bảo hiểm, hồ sơ ngân hàng ; (2) Dữ liệu từ hoạt động thương mại (phát sinh từ các giao dịch giữa hai thực thể) Ví dụ, các giao dịch thẻ tín dụng, giao dịch trênmạng, bao gồm cả từ các thiết bị di động; (3) Dữ liệu từ các thiết bị cảm biến như thiết bị chụp hình ảnh vệ tinh, cảm biến đường, cảm biến khí hậu; (4) Dữ liệu từ các thiết bị theo dõi, ví dụ theo dõi dữ liệu từ điện thoại di động, GPS; (5) Dữ liệu từ các hành vi, ví dụ như tìm kiếm trực tuyến về (một sản phẩm, một

Trang 5

dịch vụ hay thông tin khác), đọc các trang mạng trực tuyến ; (6) Dữ liệu từ các thông tin về ý kiến, quan điểm của các cá nhân, tổ chức, trên các phương tiện thông tin xã hội Phương pháp khai thác và quản lý dữ liệu lớn hiện nay được thiết kế phù hợp dựa theo các nguồn hình thành dữ liệu lớn Mỗi nguồn dữ liệu lớn khác nhau sẽ có phương pháp khai thác và quản lý dữ liệu lớn khác nhau Tuy nhiên, hiện nay phần lớn các tổ chức trên thế giới đều dùng Hadoop

ecosystem là giải pháp tối ưu để khai thác và quản lý dữ liệu lớn

1.3 Đặc trưng 5V của dữ liệu lớn

Dữ liệu lớn có 5 đặc trưng cơ bản như sau (mô hình 5V):

(1) Khối lượng dữ liệu (Volume)

Đây là đặc điểm tiêu biểu nhất của dữ liệu lớn, khối lượng dữ liệu rất lớn Kích cỡ

của Big Data đang từng ngày tăng lên, và tính đến năm 2012 thì nó có thể nằm trong

khoảng vài chục terabyte cho đến nhiều petabyte (1 petabyte = 1024 terabyte) chỉ cho

một tập hợp dữ liệu Dữ liệu truyền thống có thể lưu trữ trên các thiết bị đĩa mềm, đĩa

cứng Nhưng với dữ liệu lớn chúng ta sẽ sử dụng công nghệ “đám mây” mới đáp ứng khả

năng lưu trữ được dữ liệu lớn

(2) Tốc độ (Velocity)

Trang 6

Tốc độ có thể hiểu theo 2 khía cạnh: (a) Khối lượng dữ liệu gia tăng rất nhanh (mỗi

giây có tới 72.9 triệu các yêu cầu truy cập tìm kiếm trên web bán hàng của Amazon); (b)

Xử lý dữ liệu nhanh ở mức thời gian thực (real-time), có nghĩa dữ liệu được xử

(4) Độ tin cậy/chính xác (Veracity)

Một trong những tính chất phức tạp nhất của Dữ liệu lớn là độ tin cậy/chính xác của

dữ liệu Với xu hướng phương tiện truyền thông xã hội (Social Media) và mạng

xã hội

Trang 7

(Social Network) ngày nay và sự gia tăng mạnh mẽ tính tương tác và chia sẻ củangười

dùng Mobile làm cho bức tranh xác định về độ tin cậy & chính xác của dữ liệu ngày một

khó khăn hơn Bài toán phân tích và loại bỏ dữ liệu thiếu chính xác và nhiễu đang là tính

chất quan trọng của BigData

(5) Giá trị (Value)

Giá trị là đặc điểm quan trọng nhất của dữ liệu lớn, vì khi bắt đầu triển khai xâydựng dữ liệu lớn thì việc đầu tiên chúng ta cần phải làm đó là xác định được giá trị của

thông tin mang lại như thế nào, khi đó chúng ta mới có quyết định có nên triển khai dữ

liệu lớn hay không Nếu chúng ta có dữ liệu lớn mà chỉ nhận được 1% lợi ích từ

và các chi phí liên quan đến y tế

1.4 Sự khác biệt giữa dữ liệu lớn với dữ liệu truyền thống

Dữ liệu lớn khác với dữ liệu truyền thống (ví dụ, kho dữ liệu - Data Warehouse)

ở 4điểm cơ bản: Dữ liệu đa dạng hơn; lưu trữ dữ liệu lớn hơn; truy vấn nhanh hơn; độ chính

xác cao hơn

(1) Dữ liệu đa dạng hơn: Khi khai thác dữ liệu truyền thống (Dữ liệu có cấu trúc),

Trang 8

chúng ta thường phải trả lời các câu hỏi: Dữ liệu lấy ra kiểu gì? định dạng dữ liệu như thế

nào? Đối với dữ liệu lớn, không phải trả lời các câu hỏi trên Hay nói khác, khi khai thác,

phân tích dữ liệu lớn chúng ta không cần quan tâm đến kiểu dữ liệu và định dạng của

chúng; điều quan tâm là giá trị mà dữ liệu mang lại có đáp ứng được cho công việc hiện

tại và tương lai hay không

(2) Lưu trữ dữ liệu lớn hơn: Lưu trữ dữ liệu truyền thống vô cùng phức tạp và luôn

đặt ra câu hỏi lưu như thế nào? dung lượng kho lưu trữ bao nhiêu là đủ? gắn kèm với câu

hỏi đó là chi phí đầu tư tương ứng Công nghệ lưu trữ dữ liệu lớn hiện nay đã phần nào

có thể giải quyết được vấn đề trên nhờ những công nghệ lưu trữ đám mây, phân phối lưu

trữ dữ liệu phân tán và có thể kết hợp các dữ liệu phân tán lại với nhau một cáchchính

xác và xử lý nhanh trong thời gian thực

(3) Truy vấn dữ liệu nhanh hơn: Dữ liệu lớn được cập nhật liên tục, trong khi đókho dữ liệu truyền thống thì lâu lâu mới được cập nhật và trong tình trạng

không theo dõi

thường xuyên gây ra tình trạng lỗi cấu trúc truy vấn dẫn đến không tìm kiếm được thông

tin đáp ứng theo yêu cầu

(4) Độ chính xác cao hơn: Dữ liệu lớn khi đưa vào sử dụng thường được kiểm định

lại dữ liệu với những điều kiện chặt chẽ, số lượng thông tin được kiểm tra thôngthường

Trang 9

rất lớn, và đảm bảo về nguồn lấy dữ liệu không có sự tác động của con người vào thay

đổi số liệu thu thập

Chương II: Các Thành Phần Của Big Data

Thành phần của của Bigdata gồm 3 thành phần:

Quản lí dữ liệu: cơ sở hạ tầng lưu trữ dữ liệu, và nguồn để thao tác nó

Phân tích dữ liệu: công nghệ và các công cụ để phân tích các dữ liệu thu thập hiểu biết sâu sắc từ nó

Sử dụng dữ liệu: đưa ra dữ kiện lớn đã phân tích để phục vụ trong doanh thông minh và các ứng dụng của con người

2.1 Quản lí dữ liệu

A Hệ dữ liệu có cấu trúc

Trang 10

Hệ thống quản lý cơ sở dữ liệu quan hệ(RDBMS): để lưu trữ và thao tác dữ liệu

- Khó mở rộng, hiệu suất chậm lại

- Biểu diễn dữ liệu

B Hệ dữ liệu không có cấu trúc: phù hợp cho việc lưu trữ dữ liệu có cấu trúc phức tạp và dễ dàng mở rộng

C Dữ liệu

Dữ liệu có cấu trúc và không có cấu trúc

◦ Lấy từ nhiều nguồn với kích cỡ khác nhau

◦ Dữ liệu thường rất lớn, yêu cầu tốc độ xử lý cao

=> Yêu cầu tổ chức dữ liệu để đáp ứng: Apache Hadoop

2.2 Phân tích dữ liệu

Là nơi mà các công ty bắt đầu trích xuất giá trị dữ liệu lớn

Liên quan tới việc phát triển các ứng dụng và sử dụng các ứng dụng để đạt đượccái nhìn sâu sắc vào dữ liệu lớn

Xây dựng các tool phân tích dữ liệu

2.3 sử dụng dữ liệu

Là các hoạt đông trên dữ liệu được phân tích

Trang 11

Chương III: Tổ chức dữ liệu BigData

MapReduce được Google tạo ra ban đầu để xử lý đống dữ liệu lớn của công ty

họ Ta còn có thể gọi phương pháp này là Phân tán dữ liệu vì nó tách hết tập

hợp các dữ liệu ban đầu thành các dữ liệu nhỏ và sắp xếp lại chúng để dễ dàng tìm kiếm và truy xuất hơn, đặc biệt là việc truy xuất các dữ liệu tương đồng Ví

dụ thường thấy nhất là các đề xuất mà ta hay thấy ở Google tìm kiếm

Như vậy mô hình lập trình Map Reduce là nền tảng ý tưởng của Hadoop Bản thân Hadoop là một framework cho phép phát triển các ứng dụng phân tán phần cứng thông thường Các phần cứng này thường có khả năng hỏng hóc cao

Trang 12

Khác với loại phần cứng chuyên dụng đắt tiền, khả năng xảy ra lỗi thấp như các supermicrocomputer chẳng hạn.

Hadoop viết bằng Java Tuy nhiên, nhờ cơ chế streaming, Hadoop cho phép phát triển các ứng dụng phân tán bằng cả java lẫn một số ngôn ngữ lập trình khác như C++, Python, Pearl

3.2 Các Thành Phần của Hadoop

Hadoop gồm 4 module:

Hadoop Common: Đây là các thư viện và tiện ích cần thiết của Java để các

module khác sử dụng Những thư viện này cung cấp hệ thống file và lớp OS trừu tượng, đồng thời chứa các mã lệnh Java để khởi động Hadoop

Hadoop YARN: Đây là framework để quản lý tiến trình và tài nguyên của các

cluster

Hadoop Distributed File System (HDFS): Đây là hệ thống file phân tán cung

cấp truy cập thông lượng cao cho ứng dụng khai thác dữ liệu

Hadoop MapReduce: Đây là hệ thống dựa trên YARN dùng để xử lý song song

các tập dữ liệu lớn

3.3 Hadoop hoạt động như thế nào ?

Trang 13

Các dữ liệu được chạy thông qua 2 hàm chính là map và reduce.

Map: sẽ quét qua toàn bộ dữ liệu và phân tán chúng ra thành các dữ liệu con.Reduce: sẽ thu thập các dữ liệu con lại và sắp xếp lại chúng

Các thiết lập cụ thể liên quan đến job thông qua các thông số truyền vào

Giai đoạn 3:

TaskTrackers dùng để kiểm tra đảm bảo các MapReduce hoạt động bình thường

và kiểm tra kết quả nhận được (quá trình output)

Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền - daemon, hoặc các chương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn Nhữngtrình nền có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tại trên nhiều máy chủ

*Ưu điểm của Hadoop :

Hadoop framework cho phép người dùng nhanh chóng viết và kiểm tra các hệ thống phân tán Đây là cách hiệu quả cho phép phân phối dữ liệu và công việc xuyên suốt các máy trạm nhờ vào cơ chế xử lý song song của các lõi CPU.Hadoop không dựa vào cơ chế chịu lỗi của phần cứng fault-tolerance and high availability (FTHA), thay vì vậy bản thân Hadoop có các thư viện được thiết kế

để phát hiện và xử lý các lỗi ở lớp ứng dụng

Hadoop có thể phát triển lên nhiều server với cấu trúc master-slave để đảm bảo thực hiện các công việc linh hoạt và không bị ngắt quãng do chia nhỏ công việc cho các server slave được điều khiển bởi server master

Hadoop có thể tương thích trên mọi nền tảng như Window, Linux, MacOs do được tạo ra từ Java

Trang 14

3.4 Hadoop Distributed File System (HDFS)

3.4.1 HDFS là gì ?

HDFS là viết tắt của Hadoop Distributed File System và nó là 1 hệ thống lưu trữchính được dùng bởi Hadoop Nó cung cấp truy cập hiệu suất cao đến dữ liệu trên các cụm Hadoop Nó thường được triển khai trên các phần cứng chi phí thấp Các máy chủ chi phí thấp này rất dễ xảy ra lỗi phần cứng Vì lý do này mà HDFS được xây dựng để có khả năng chịu lỗi cao Tốc độ truyền dữ liệu giữa các nodes trong HDFS là rất cao, dẫn đến giảm thiểu nguy cơ lỗi

HDFS tạo các mảnh nhỏ hơn của dữ liệu lớn và phân tán nó trên các nodes khácnhau Nó cũng sao chép mỗi miếng dữ liệu nhỏ hơn nhiều lần trên nhiều nodes khác nhau Do đó khi bất kỳ node nào có dữ liệu lỗi, hệ thống tự động dùng dữ liệu từ 1 node khác và tiếp tục xử lý Đây là tính năng quan trọng của HDFS

3.4.2 Kiến trúc của HDFS :

Kiến trúc của HDFS là master / slave Một HDFS cluster luôn gồm 1

NameNode NameNode này là 1 master server và nó quản lý hệ thống tập tin cũng như điều chỉnh truy cập đến các tập tin khác nhau Bổ sung cho

NameNode có nhiều DataNodes Luôn có 1 DataNode cho mỗi máy chủ dữ liệu.Trong HDFS, 1 tập tin lớn được chia thành 1 hoặc nhiều khối và các khối này được lưu trong 1 tập các DataNodes

Tác vụ chính của NameNode là mở, đóng và đổi tên các tập tin, và thư mục và điều chỉnh truy cập đến hệ thống tập tin, trong khi tác vụ chính của DataNode làđọc và ghi vào hệ thống tập tin DataNode cũng làm nhiệm vụ tạo, xóa, hoặc nhân rộng dữ liệu dựa trên chỉ dẫn từ NameNode

Trong thực tế, NameNode và DataNode là phần mềm được thiết kế để chạy trên máy chủ, được viết bằng Java

Trang 15

Namenode sẽ chịu trách nhiệm điều phối các thao tác truy cập (đọc/ghi dữ liệu) của client lên hệ thống HDFS Và tất nhiên, do các DataNode là nơi thật sự lưu trữ các block của các file trên HDFS, nên chúng sẽ là nơi trực tiếp đáp ứng các thao tác truy cập này Chẳng hạn như khi client của hệ thống muốn đọc một file trên hệ thống HDFS, client này sẽ thực hiện một request (thông qua RPC) đến Namenode để lấy các metadata của file cần đọc Từ metadata này nó sẽ biết được danh sách các block của file và vị trí của các DataNode chứa các bản sao của từng block Client sẽ truy cập vào các DataNode để thực hiện các request đọc các block.

Namenode thực hiện nhiệm vụ của nó thông qua một daemon tên namenode chạy trên port 8021 Mỗi DataNode server sẽ chạy một daemon datanode trên port 8022 Định kỳ, mỗi DataNode sẽ báo cáo cho NameNode biết về danh sáchtất cả các block mà nó đang lưu trữ, NameNode sẽ dựa vào những thông tin này

để cập nhật lại các metadata trong nó Cứ sau mỗi lần cập nhật lại như vậy, metadata trên NameNode sẽ đạt được tình trạng thống nhất với dữ liệu trên các DataNode Toàn bộ trạng thái của metadata khi đang ở tình trạng thống nhất nàyđược gọi là một checkpoint Metadata ở trạng thái checkpoint sẽ được dùng để nhân bản metadata dùng cho mục đích phục hồi lại NameNode nếu NameNode

bị lỗi

4.3.3 Cơ chế Hoạt Động của HDFS

*Đọc file trên HDFS

Trang 16

Đầu tiên, client sẽ mở file cần đọc bằng cách gửi yêu cầu đọc file đến

NameNode Sau đó NameNode sẽ thực hiện một số kiểm tra xem file được yêu cầu đọc có tồn tại không, hoặc file cần đọc có đang ở trạng thái “khoẻ mạnh” hay không Nếu mọi thứ đều ổn, NameNode sẽ gửi danh sách các block (đại diện bởi Block ID) của file cùng với địa chỉ các DataNode chứa các bản sao củablock này

Tiếp theo, client sẽ mở các kết nối tới DataNode, thực hiện một RPC để yêu cầunhận block cần đọc và đóng kết nối với DataNode Lưu ý là với mỗi block ta có thể có nhiều DataNode lưu trữ các bản sao của block đó Client sẽ chỉ đọc bản sao của block từ DataNode “gần” nhất

Client sẽ thực hiện việc đọc các block lặp đi lăp lại cho đến khi block cuối cùng của file được đọc xong Quá trình client đọc dữ liệu từ HDFS sẽ transparent với người dùng hoặc chương trình ứng dụng client, người dùng sẽ dùng một tập APIcủa Hadoop để tương tác với HDFS, các API này che giấu đi quá trình liên lạc với NameNode và kết nối các DataNode để nhận dữ liệu

*Ghi file trên HDFS

Đầu tiên, client sẽ gửi yêu cầu đến NameNode tạo một file entry lên File

System Namespace File mới được tạo sẽ rỗng, tức chưa có một block nào Sau

đó, NameNode sẽ quyết định danh sách các DataNode sẽ chứa các bản sao của file cần gì và gửi lại cho client Client sẽ chia file cần gì ra thành các block, và với mỗi block client sẽ đóng gói thành một packet Lưu ý là mỗi block sẽ được lưu ra thành nhiều bản sao trên các DataNode khác nhau (tuỳ vào chỉ số độ nhânbản của file)

Client gửi packet cho DataNode thứ nhất, DataNode thứ nhất sau khi nhận đượcpacket sẽ tiến hành lưu lại bản sao thứ nhất của block Tiếp theo DataNode thứ nhất sẽ gửi packet này cho DataNode thứ hai để lưu ra bản sao thứ hai của block Tương tự

DataNode thứ hai sẽ gửi packet cho DataNode thứ ba Cứ như vậy, các

DataNode cũng lưu các bản sao của một block sẽ hình thành một ống dẫn dữ liệu data pipe

Sau khi DataNode cuối cùng nhận thành được packet, nó sẽ gửi lại cho

DataNode thứ hai một gói xác nhận rằng đã lưu thành công Và gói thứ hai lại gửi gói xác nhận tình trạng thành công của hai DataNode về DataNode thứ nhất

Ngày đăng: 13/10/2020, 17:42

HÌNH ẢNH LIÊN QUAN

1.2. Nguồn hình thành dữ liệu và phương pháp khai thác và quản lý dữ liệu lớn.  - Tìm hiểu về Big data
1.2. Nguồn hình thành dữ liệu và phương pháp khai thác và quản lý dữ liệu lớn. (Trang 4)
Dữ liệu lớn có 5 đặc trưng cơ bản như sau (mô hình 5V): - Tìm hiểu về Big data
li ệu lớn có 5 đặc trưng cơ bản như sau (mô hình 5V): (Trang 5)
Như vậy mô hình lập trình MapReduce là nền tảng ý tưởng của Hadoop. Bản thân Hadoop là một framework cho phép phát triển các ứng dụng phân tán phần  cứng thông thường  - Tìm hiểu về Big data
h ư vậy mô hình lập trình MapReduce là nền tảng ý tưởng của Hadoop. Bản thân Hadoop là một framework cho phép phát triển các ứng dụng phân tán phần cứng thông thường (Trang 11)

TỪ KHÓA LIÊN QUAN

w