1. Trang chủ
  2. » Cao đẳng - Đại học

Báo cáo tiểu luận big data covid

48 20 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

Định dạng
Số trang 48
Dung lượng 0,97 MB

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

Cấu trúc

  • CHƯƠNG 1: MÔ TẢ D Ữ LI ỆU VÀ HƯỚ NG TI Ế P C Ậ N (5)
    • 1.1 Mô tả dữ liệu (6)
    • 1.2 Hướ ng ti ế p c ậ n (7)
  • CHƯƠNG 2: CƠ SỞ LÝ THUY Ế T (8)
    • 2.1 Docker (8)
      • 2.1.1 C ấ u trúc c ủ a docker (8)
      • 2.1.2 Nguyên t ắ c ho ạt độ ng (9)
      • 2.1.3 Quy trình ho ạt độ ng (10)
      • 2.1.4 S ự khác nhau gi ữ a Hypervisors và Docker (11)
      • 2.1.5 Ưu điể m c ủ a Docker (12)
      • 2.1.6 Một số công cụ và thuật ngữ trong Docker (13)
    • 2.2 Hadoop (15)
      • 2.2.1 Ki ế n trúc Hadoop (16)
      • 2.2.2 Cách th ứ c ho ạt độ ng (16)
      • 2.2.3 Ưu điể m c ủ a Hadoop (17)
      • 2.2.4 Cài đặ t c ụ m Hadoop v ớ i Docker (17)
    • 2.3 Sqoop (19)
      • 2.3.1 Cấu trúc Sqoop (20)
      • 2.3.2 Ưu điể m c ủ a Sqoop (21)
      • 2.3.3 Sqoop và các công c ụ (22)
      • 2.3.4 Các t ậ p l ệ nh c ủ a Sqoop (23)
  • CHƯƠNG 3: MÔ HÌNH TOÁN (27)
    • 3.1 Gi ớ i thi ệ u Linear Regression (27)
    • 3.2 Phân tích toán h ọ c (28)
      • 3.2.1 D ạ ng c ủ a Linear Regression (28)
      • 3.2.2 Sai s ố d ự đoán (28)
      • 3.2.3 Hàm mất mát (28)
      • 3.2.4 Nghi ệ m cho bài toán Liner Regression (29)
  • CHƯƠNG 4: MÔ HÌNH THỰ C NGHI Ệ M (31)
    • 4.1 Gi ớ i thi ệ u h ồ i quy đa thứ c (31)
      • 4.1.1 Nguyên nhân dùng hồi quy đa thức (31)
      • 4.1.2 Công d ụ ng c ủ a h ồi quy đa thứ c (31)
    • 4.2 K ế t qu ả th ự c nghi ệ m (32)
  • CHƯƠNG 5: TRỰ C QUAN HÓA D Ữ LI Ệ U (36)
    • 5.1 D ữ li ệu không gian đị a lý (36)
    • 5.2 Biểu đồ Treemaps (37)
    • 5.3 Bi ểu đồ bong bóng (37)
  • CHƯƠNG 6: HƯỚNG PHÁT TRIỂN ĐỀ TÀI (39)
    • 6.1 Công c ụ x ử lí d ữ li ệ u (39)
      • 6.1.1 Hive (39)
      • 6.1.2 Spark (41)
    • 6.2 ETL trong Data Warehoue (45)
  • CHƯƠNG 2 Hình 2.1: Ki ế n trúc Docker (0)
  • CHƯƠNG 4 Hình 4.1: Mô hình d ự đoán xu hướ ng d ị ch b ệ nh Covid hàng ngày (0)
  • CHƯƠNG 5 Hình 5.1: Bi ểu đồ mô t ả các ca nhi ễ m ở các khu v ự c trên toàn c ầ u (0)

Nội dung

Docker image được tạo thành từ các lớp và mỗi lớp tương ứng với một phiên bản của image.. 2.2.2 Cách thức hoạt động  Giai đoạn 1: Một user hay một ứng dụng có thể submit một job lên H

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIAO THÔNG VẬN TẢI

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM

1 Nguyễn Văn Chiến – KM1901

2 Võ Tấn Sang – KM1901

3 Nguyễn Hoàng Phương – KM1902

4 Nguyễn Đức Quỳnh – KM1902

TP HCM, 04 - 2022

Trang 2

M ỤC LỤC

CHƯƠNG 1: MÔ TẢ DỮ LIỆU VÀ HƯỚNG TIẾP CẬN 5

1.1 Mô tả dữ liệu 5

1.2 Hướng tiếp cận 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1 Docker 7

2.1.1 Cấu trúc của docker 7

2.1.2 Nguyên tắc hoạt động 8

2.1.3 Quy trình hoạt động 9

2.1.4 Sự khác nhau giữa Hypervisors và Docker 10

2.1.5 Ưu điểm của Docker 11

2.1.6 Một số công cụ và thuật ngữ trong Docker 12

2.2 Hadoop 14

2.2.1 Kiến trúc Hadoop 15

2.2.2 Cách thức hoạt động 15

2.2.3 Ưu điểm của Hadoop 16

2.2.4 Cài đặt cụm Hadoop với Docker 16

2.3 Sqoop 18

2.3.1 Cấu trúc Sqoop 19

2.3.2 Ưu điểm của Sqoop 20

2.3.3 Sqoop và các công cụ 21

2.3.4 Các tập lệnh của Sqoop 22

CHƯƠNG 3: MÔ HÌNH TOÁN 26

3.1 Giới thiệu Linear Regression 26

3.2 Phân tích toán học 27

3.2.1 Dạng của Linear Regression 27

3.2.2 Sai số dự đoán 27

3.2.3 Hàm mất mát 27

3.2.4 Nghiệm cho bài toán Liner Regression 28

1

Trang 3

2

CHƯƠNG 4: MÔ HÌNH THỰC NGHIỆM 30

4.1 Giới thiệu hồi quy đa thức 30

4.1.1 Nguyên nhân dùng hồi quy đa thức 30

4.1.2 Công dụng của hồi quy đa thức 30

4.2 Kết quả thực nghiệm 31

CHƯƠNG 5: TRỰC QUAN HÓA DỮ LIỆU 35

5.1 Dữ liệu không gian địa lý 35

5.2 Biểu đồ Treemaps 36

5.3 Biểu đồ bong bóng 36

CHƯƠNG 6: HƯỚNG PHÁT TRIỂN ĐỀ TÀI 38

6.1 Công cụ xử lí dữ liệu 38

6.1.1 Hive 38

6.1.2 Spark 40

6.2 ETL trong Data Warehoue 44

Trang 4

DANH M ỤC HÌNH ẢNH

CHƯƠNG 1

Hình 1.1: Tập dữ liệu các ca mắc bệnh COVID-19 ghi nhận hàng ngày 5

Hình 1.2: Dữ liệu đã được tổng hợp theo các mức tỉ lệ 5

Hình 1.3: Kỹ thuật Unpivot để lưu trữ vào hệ thống big data 6

CHƯƠNG 2 Hình 2.1: Kiến trúc Docker 8

Hình 2.2: Cơ chế hoạt động của Docker 9

Hình 2.3: Thứ tự các bước hoạt động Docker 10

Hình 2.4: Sự khác nhau trong kiến trúc Hypervisor và Docker 11

Hình 2.5: Docker Image 12

Hình 2.6: Mô hình Hadoop 17

Hình 2.7: Kiểm tra sau khi cài đặt thành công 18

Hình 2.8: Kiểm tra trạng thái hiện tại của hệ thống 18

Hình 2.9: Cấu trúc và cách thức hoạt động của Sqoop 20

Hình 2.10: Sqoop ánh xạ ra đoạn mã java 24

CHƯƠNG 4 Hình 4.1: Mô hình dự đoán xu hướng dịch bệnh Covid hàng ngày 32

Hình 4.2: Dự đoán số ca mắc bệnh được xác định hàng ngày 33

Hình 4.3: Dự đoán tình trạng hồi phục của bệnh nhân sau khi nhiễm 33

Hình 4.4: Mô tả tình hình tử vong khi bệnh nhân nhiễm Covid 34

CHƯƠNG 5 Hình 5.1: Biểu đồ mô tả các ca nhiễm ở các khu vực trên toàn cầu 36

Hình 5.2: Biểu đồ tỉ lệ theo số lượng ca nhiễm ở các quốc gia trên thế giới 36

Hình 5.3: Biểu đồ bong bóng thể hiện tình trạng dịch bệnh lây lan theo thời gian 37

Trang 5

4

CHƯƠNG 6

Hình 6.1: Kiến trúc của Hive 38 Hình 6.2: Sơ đồ mô tả quy trình làm việc giữa Hive và Hadoop 39 Hình 6.3: Cách thức hoạt động của ETL 45

Trang 6

CHƯƠNG 1: MÔ TẢ DỮ LIỆU VÀ HƯỚNG TIẾP CẬN

1.1 Mô tả dữ liệu

- Bộ dữ liệu được cung cấp bởi kho dữ liệu COVID-19 của trung Khoa học và Kỹ thuật Hệ thống (CSSE) tại trường đại học Jhon Hopking và được cập nhật hàng ngày Bộ

dữ liệu gồm có 3 phần chính:

- Bộ dữ liệu ghi nhận các trường hợp nhiễm bệnh trên thế giới

- Bộ dữ liệu ghi nhận các trường hợp tử vong trên thế giới

- Bộ dữ liệu ghi nhận các trường hợp đã phục hồi sau khi nhiễm bệnh

- Thông tin dữ liệu gồm có các thông tin sau được mô tả trong hình:

Hình 1.1: Tập dữ liệu các ca mắc bệnh COVID-19 ghi nhận hàng ngày

Hình 1.2: Dữ liệu đã được tổng hợp theo các mức tỉ lệ

Trang 8

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Docker

Docker là một nền tảng mã nguồn mở để xây dựng, triển khai và quản lý các ứng

dụng được container (trên nền tảng ảo hóa) Docker cung cấp cách để building, deloying

và running ứng dụng dễ dàng bằng cách sử dụng containers

Docker cho phép các nhà phát triển đóng gói ứng dụng vào container Các thành

phần thực thi được chuẩn hóa kết hợp mã nguồn ứng dụng với tất cả các thư viện Và nó

phụ thuộc của hệ điều hành (OS) cần thiết để chạy mã trong bất kỳ môi trường nào Trong khi các nhà phát triển có thể tạo container mà không cần đến Docker Docker giúp việc xây dựng, triển khai, quản lý container trở nên dễ dàng, đơn giản, an toàn hơn

Về cơ bản, đây là một bộ công cụ cho phép các nhà phát triển xây dựng, triển khai, chạy,

cập nhật và dừng các container bằng cách sử dụng các lệnh đơn giản và tự động hóa tiết

kiệm công việc

2.1.1 Cấu trúc của docker

Docker được thiết kế dưới mô hình kiến trúc client-server Docker server (Docker daemon) có vai trò triển khai, chạy và phân bổ các Docker container Docker client và Docker server có thể được phân bổ cùng server hoặc khác server Chúng kết nối thông qua nền tảng REST API dựa trên UNIX sockets hoặc network interface

Trang 9

8

Hình 2.1: Kiến trúc Docker

 Docker daemon đóng vai trò là thành phần core, theo dõi và nghe API request và

quản lý các Docker object Docker daemon ở các host khác nhau vẫn có khả năng giao tiếp và kết nối với nhau

 Docker client là công cụ chính để người dùng thực hiện các thao tác trên nền tảng

Docker Khi người dùng thông qua CLI gõ câu lệnh “Docker run imageABC” để gửi yêu cầu đến dockerd nhờ API, Docker daemon sẽ tiếp nhận và xử lí yêu cầu Docker client có khả năng kết nối, giao tiếp và truyền tải yêu cầu đến nhiều Docker daemon

 Docker registry hiểu theo nghĩa đơn giản là kho lưu trữ các Image Điển hình

là Docker Hub, mặt khác người dùng có thể tự thiết lập một Docker registry của riêng mình

2.1.2 Nguyên tắc hoạt động

Trang 10

Hình 2.2: Cơ chế hoạt động của Docker

Cơ chế hoạt động của Docker không đơn giản như cách sử dụng mà có phức tạp hơn Docker hoạt động trên sự kết hợp giữa 1 Docker engine với 2 yếu tố:

+ 1 server và 1 client

+ Giao tiếp giữa server và client nhờ REST API

Docker hoạt động thông qua việc cung cấp những phương thức tiêu chuẩn để chạy

mã của người dùng Theo đó, các container thực hiện thao tác ảo hóa hệ điều hành phía máy chủ Docker được thiết lập trên từng máy chủ và được hỗ trợ các câu lệnh đơn giản

có nhiệm vụ triển khai, khởi động hoặc tạm dừng Container Một số dịch vụ AWS như AWS Fargate, Amazon ECS, Amazon EKS và AWS Batch hỗ trợ người dùng chạy các container Docker ở quy mô lớn một cách thuận tiện và nhanh chóng hơn

2.1.3 Quy trình hoạt động

Docker hoạt động dựa trên thứ tự 3 bước: Build - Push – Pull, Run

Trang 11

10

Hình 2.3: Thứ tự các bước hoạt động Docker

 Build: đầu tiên truy cập Docker và tạo lập một dockerfile, trong đó chứa code của

người dùng Dockerfile này sẽ được thiết lập trên thiết bị đã được cài đặt Docker Engine Sau khi tạo Dockerfile, người dùng sẽ có 1 Container lưu trữ bộ thư viện và ứng dụng của mình

 Push: có được container sẽ được người dùng push lên đám mây và lưu trữ tại đó

Thao tác này được thực hiện qua mạng Internet

 Pull, Run: thao tác này áp dụng khi người dùng muốn truy cập container này bằng

1 thiết bị khác (đã được cài đặt Docker Engine) thì yêu cầu phải Pull container này về máy

và cho phép quá trình Run Container diễn ra

2.1.4 Sự khác nhau giữa Hypervisors và Docker

Trang 12

Hình 2.4: Sự khác nhau trong kiến trúc Hypervisor và Docker Hypervisor là ảo hỏa nằm ở tầng Hardware (phần cứng), tức là mô phỏng phần cứng và chạy những OS con trên phần cứng đó (Các công cụ Hypervisor như Virtual Box, VMware )

Sự khác nhau giữa Hypervisors và Docker Docker: Dùng chung kernel, chạy độc lập trên Host Operating System và có thể chạy trên bất kì hệ điều hành nào cũng như cloud Khởi động và làm cho ứng dụng sẵn sàng chạy trong 500ms, mang lại tính khả thi cao cho những dự án cần sự mở rộng nhanh Virtual Machine(Hypervisors): Cần thêm một Guest OS cho nên sẽ tốn tài nguyên hơn và làm chậm máy thật khi sử dụng Thời gian khởi động trung bình là 20s có thể lên đến hàng phút, thay đổi phụ thuộc vào tốc độ của ổ đĩa

2.1.5 Ưu điểm của Docker

 Dễ sử dụng: cách sử dụng Docker khá đơn giản, phù hợp với nhiều đối tượng như lập trình viên, sys admin… Docker khai thác lợi thế của container để triển khai và kiểm tra nhanh chóng Docker hỗ trợ đóng gói ứng dụng trên laptop và chạy chương trình trên public cloud, private cloud… Câu lệnh là “Build once, run anywhere”

11

Trang 13

2.1.6 Một số công cụ và thuật ngữ trong Docker

Docker image chứa mã nguồn ứng dụng thực thi cũng như tất cả các công cụ, thư

viện Kèm theo dependencies mà ứng dụng cần để chạy dưới dạng container Khi ta chạy Docker image, nó sẽ trở thành một phiên bản (hoặc nhiều phiên bản) của container

Hình 2.5: Docker Image

Có thể xây dựng Docker image từ đầu, nhưng hầu hết các nhà phát triển kéo chúng xuống từ các kho lưu trữ chung Nhiều Docker image có thể được tạo từ một base image

Trang 14

duy nhất Docker image được tạo thành từ các lớp và mỗi lớp tương ứng với một phiên bản của image

Bất cứ khi nào nhà phát triển thay đổi image, một lớp trên cùng mới sẽ được tạo Lúc này, lớp trên cùng này thay thế lớp trên cùng trước làm phiên bản hiện tại của image Các lớp trước đó được lưu để khôi phục hoặc được sử dụng lại trong các dự án khác

Mỗi khi một container được tạo từ Docker image, một lớp mới khác được gọi là lớp container được tạo Các thay đổi được thực hiện đối với container Chẳng hạn như nó có

thể thêm hoặc xóa file chỉ được lưu vào lớp container và chỉ tồn tại khi container đang

chạy

Quá trình tạo image lặp đi lặp lại này giúp tăng hiệu quả tổng thể Bởi nhiều phiên bản container có thể chạy chỉ từ một base image duy nhất Do đó, khi chúng làm như vậy, chúng sẽ tận dụng một ngăn xếp chung

Tất cả người dùng Docker Hub có thể chia sẻ image của họ theo ý muốn Họ cũng

có thể tải xuống các image cơ sở được xác định trước để sử dụng làm điểm bắt đầu cho

bất kỳ dự án container nào

Trang 15

Docker Volumes: Là phần dữ liệu được tạo ra khi container được khởi tạo

Docker Machine: Tạo ra các docker engine trên máy chủ

Docker Compose: Chạy ứng dụng bằng cách định nghĩa cấu hình các Docker Container thông qua file cấu hình

2.2 Hadoop

Hadoop là một framwork giúp lưu trữ và xử lý Big Data áp dụng MapReduce Nói đơn giản cách khác nó sẽ giúp sắp xếp dữ liệu sao cho user có thể dễ dàng sử dụng nhất 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 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

Trang 16

2.2.1 Kiến trúc 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

Hiện nay Hadoop đang ngày càng được mở rộng cũng như được nhiều framwork khác hỗ trợ như Hive, Hbase, Pig Tùy vào mục đích sử dụng mà ta sẽ áp dụng framework phù hợp để nâng cao hiệu quả xử lý dữ liệu của Hadoop

2.2.2 Cách thức hoạt động

 Giai đoạn 1:

Một user hay một ứng dụng có thể submit một job lên Hadoop (hadoop job client)

với yêu cầu xử lý cùng các thông tin cơ bản:

 Truyền dữ liệu lên server(input) để bắt đầu phân tán dữ liệu và đưa ra kết quả (output)

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

o 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

o 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 2:

Hadoop job client submit job (file jar, file thực thi) và bắt đầu lập lịch làm việc(JobTracker) đưa job vào hàng đợi

Trang 17

16

Sau khi tiếp nhận yêu cầu từ JobTracker, server cha(master) sẽ phân chia công việc cho các server con(slave) Các server con sẽ thực hiện các job được giao và trả kết quả cho server cha

2.2.3 Ưu điểm của Hadoop

o 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

o 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

o 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

o 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

2.2.4 Cài đặt cụm Hadoop với Docker

Để cài đặt Hadoop trong Docker container, chúng ta cần Hadoop docker images Chúng tôi sử dụng nguồn dữ liệu dưới đây cho việc tạo image

https://github.com/big-data-europe/docker-hadoop

Trang 18

Sau khi git được cài đặt trong hệ thống, chúng ta sẽ có thư mục docker-hadoop Tiếp theo, chúng tôi hiệu chỉnh port và node trong file docker-compose.yml cho phù hợp bài thực hành

Triển khai cụm Hadoop bằng command: $ docker-compose up –d

Như đã trình bày ở phần giới thiệu, mô hình hadoop của chúng tôi gồm 3 node, được thể hiện như sơ đồ dưới đây

Hình 2.6: Mô hình Hadoop Sau khi cài đặt thành công, ta dùng command $ docker ps để kiểm tra các container đang chạy, dưới đây là hình ảnh kết quả sau khi thực hiện thành công

Trang 20

Hầu hết các công ty lưu dữ liệu trong RDBMS và các giải pháp kho dữ liệu khác Họ cần 1 cách để di chuyển dữ liệu vào Hadoop để làm các xử lý khác nhau và trả kết quả trở

về RDBMS từ Hadoop Sự di chuyển dữ liệu có thể xảy ra trong thời gian thực (real time)

hoặc tại nhiều thời điểm (interval) khác nhau Chúng ta cần 1 công cụ giúp di chuyển dữ

liệu từ SQL sang Hadoop và từ Hadoop sang SQL Sqoop (SQL to Hadoop) là 1 công cụ như vậy, dùng trích xuất (extract) dữ liệu từ non-Hadoop và chuyển đổi (transform) chúng vào định dạng mà Hadoop có thể dùng và sau đó nạp (load) chúng vào HDFS Cơ bản nó

là công cụ ETL (Extracts, Transform và Load) từ SQL vào Hadoop Điểm hay là nó trích

xuất (extract) dữ liệu từ Hadoop và nạp (load) chúng vào Non-SQL (hoặc RDBMS) Cơ bản, Sqoop là 1 công cụ dòng lệnh làm SQL thành Hadoop và Hadoop thành SQL Nó là

1 trình thông dịch dòng lệnh Nó tạo MapReduce job đằng sau để import dữ liệu từ CSDL bên ngoài vào HDFS

2.3.1 Cấu trúc Sqoop

Tất cả các Hệ thống quản lý cơ sở dữ liệu hiện có đều được thiết kế với tiêu chuẩn SQL Tuy nhiên, mỗi DBMS khác nhau về phương ngữ ở một mức độ nào đó Vì vậy, sự khác biệt này đặt ra những thách thức khi chuyển dữ liệu qua các hệ thống Kết nối Sqoop

là thành phần giúp vượt qua những thách thức này

Việc truyền tài liệu giữa Sqoop Hadoop và mạng lưới hệ thống tàng trữ bên ngoài được triển khai với sự trợ giúp của những đầu nối của Sqoop Sqoop có những trình liên kết để thao tác với một loạt cơ sở tài liệu quan hệ phổ cập, gồm có MySQL, PostgreSQL, Oracle, SQL Server và DB2 Mỗi trình liên kết này biết cách tương tác với DBMS tương quan của nó Ngoài ra còn có một trình liên kết JDBC chung để liên kết với bất kể cơ sở tài liệu nào tương hỗ giao thức JDBC của Java Ngoài ra, Sqoop Big data cung ứng những trình liên kết MySQL và PostgreSQL được tối ưu hóa sử dụng những API dành riêng cho

cơ sở tài liệu để triển khai chuyển hàng loạt một cách hiệu suất cao

Trang 21

20

Hình 2.9: Cấu trúc và cách thức hoạt động của Sqoop Ngoài ra, Sqoop trong dữ liệu lớn có nhiều trình kết nối bên thứ ba khác nhau cho các kho dữ liệu, từ kho dữ liệu doanh nghiệp (bao gồm Netezza, Teradata và Oracle) đến các cửa hàng NoSQL (chẳng hạn như Couchbase) Tuy nhiên, các đầu nối này không đi kèm với gói Sqoop; chúng cần được tải xuống riêng và có thể được thêm dễ dàng vào cài đặt Sqoop hiện có

2.3.2 Ưu điểm của Sqoop

Xử lý phân tích sử dụng Hadoop yêu cầu tải một lượng lớn dữ liệu từ các nguồn khác nhau vào các cụm Hadoop Quá trình tải dữ liệu hàng loạt này vào Hadoop, từ các nguồn không đồng nhất và sau đó xử lý nó, đi kèm với một số thách thức nhất định Duy trì và đảm bảo tính nhất quán của dữ liệu và đảm bảo sử dụng hiệu quả tài nguyên, là một số

yếu tố cần xem xét trước khi lựa chọn cách tiếp cận phù hợp để tải dữ liệu

Trang 22

Ta sử dụng Sqoop vì:

 Tải dữ liệu bằng Scripts

Cách tiếp cận truyền thống của việc sử dụng tập lệnh để tải dữ liệu không phù hợp với việc tải dữ liệu hàng loạt vào Hadoop; cách tiếp cận này không hiệu quả và rất tốn thời gian

 Truy cập trực tiếp vào dữ liệu bên ngoài thông qua ứng dụng Map-Reduce

Cung cấp quyền truy cập trực tiếp vào dữ liệu ở các hệ thống bên ngoài (mà không

cần tải vào Hadoop) cho các ứng dụng thu nhỏ bản đồ sẽ làm phức tạp các ứng dụng này

Vì vậy, cách làm này không khả thi

Ngoài khả năng làm việc với dữ liệu khổng lồ, Hadoop có thể làm việc với dữ liệu ở nhiều dạng khác nhau Vì vậy, để tải dữ liệu không đồng nhất như vậy vào Hadoop, các công cụ khác nhau đã được phát triển Sqoop và Flume là hai công cụ tải dữ liệu như vậy

HDFS là một hệ thống tệp phân tán được sử dụng bởi hệ sinh thái Hadoop để lưu trữ dữ liệu

Sqoop có kiến trúc dựa trên

mã được viết (được gọi là

‘tác nhân’) đảm nhiệm việc tìm nạp dữ liệu

HDFS có kiến trúc phân tán nơi dữ liệu được phân phối trên nhiều nút

dữ liệu

Trang 23

22

HDFS là điểm đến để nhập

dữ liệu bằng Sqoop

Dữ liệu chuyển đến HDFS thông qua không hoặc nhiều kênh

HDFS là điểm đến cuối cùng để lưu trữ dữ liệu

Tải dữ liệu Sqoop không

theo hướng sự kiện

Tải dữ liệu Flume có thể được thúc đẩy bởi một sự kiện

HDFS chỉ lưu trữ dữ liệu được cung cấp cho nó bằng bất kỳ phương tiện nào

Để nhập dữ liệu từ các

nguồn dữ liệu có cấu trúc,

người ta chỉ phải sử dụng

các lệnh Sqoop, vì các trình

kết nối của nó biết cách

tương tác với các nguồn dữ

liệu có cấu trúc và tìm nạp

dữ liệu từ chúng

Để tải dữ liệu phát trực tuyến như tweet được tạo trên Twitter hoặc tệp nhật

ký của máy chủ web, nên

sử dụng Flume Tác nhân Flume được xây dựng để tìm nạp dữ liệu phát trực tuyến

HDFS có các lệnh shell tích hợp riêng để lưu trữ

dữ liệu vào đó HDFS không thể nhập dữ liệu phát trực tuyến

Set path for a file containing the authentication password

password from console Set authentication password Set authentication username Print more information while working Optional properties file that provides connection parameters

Trang 24

–relaxed-isolation Set connection transaction isolation to read uncommitted for the mappers

Tạo một tập lệnh import dữ liệu RDMS (MySql) và hệ thống Hadoop

sqoop import connect jdbc:mysql://$MYSQL_HOST/$MYSQL_DB table $MYSQL_TABLE

username $MYSQL_USER password $MYSQL_PASS -m 1

Với tập dữ liệu covid đã xử lý và lưu trữ trong hệ thống cơ sở dữ liệu MySQL, hệ

quản trị cơ sở dữ liệu được cài đặt server có địa chị Ip: 192.168.88.200 và hoạt động với port mặc định 3306 Để tạo một kết nối đến hệ thống MySql cần cung cấp cho Sqoop command các thông tin về MYSQL_USER và MSQL_PASS tên database cần trỏ tới cuối cùng data Table cần để import vô hệ thống Hadoop nhiệm vụ còn lại Sqoop sẽ có các trình

xử lý để nạp dữ liệu vô hệ thống Hadoop

Ngày đăng: 10/08/2022, 16:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w