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 1BỘ 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 2M Ụ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 32
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 4DANH M ỤC HÌNH ẢNH
CHƯƠNG 1Hì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 54
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 6CHƯƠ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 8CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 DockerDocker 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 98
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 10Hì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 1110
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 12Hì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 132.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 14duy 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 15Docker 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 162.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 1716
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 18Sau 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 20Hầ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 2120
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 22Ta 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 2322
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