Đây là những gì chúng ta gọi là "Big Data" -một thuật ngữ mô tả khối lượng lớn, đa dạng và phức tạp của dữ liệu mà chúng taphải đối mặt.Để khai thác và tận dụng tối đa tiềm năng của Big
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA TOÁN - CƠ - TIN HỌC
BÁO CÁO GIỮA KỲ
BIG DATA - HADOOP
Học phần: Cơ sở dữ liệu (MAT3507 6)
Giảng viên: TS Vũ Tiến Dũng
Hà Nội - 2023
Trang 2Nhóm thực hiện: Nhóm 3 Nguyễn Minh Đức - 22001567 Bùi Xuân Hòa - 22001583 Phạm Quý Đô – 22001562
PHÂN CÔNG CÔNG VIỆC:
Tìm hiểu tổng quan về Hadoop Tất cả các thành viên
Tải và chạy thử chương trình Tất cả thành viên
Hoàn thiện, chỉnh sửa bào cáo Tất cả thành viên
Hoàn thiện, chỉnh sửa slide Tất cả thành viên
Trang 3Mục lục
Lời nói đầu 5
PHẦN I: BIG DATA 6
1 KHÁI NIỆM 6
2 ĐẶC TRƯNG 6
3 ỨNG DỤNG CỦA BIG DATA 8
4 CÁC CÔNG NGHỆ ĐẶC BIỆT DÀNH CHO BIG DATA 11
5 NHỮNG KHÓ KHĂN KHI LÀM VIỆC VỚI BIG DATA 14
PHẦN II: HADOOP 15
1 GIỚI THIỆU 15
2 CÁC ỨNG DỤNG CỦA HADOOP TRONG CÁC CÔNG TY 16
3 CÁC THÀNH PHẦN CHÍNH CỦA HADOOP 17
3.1 Hadoop Distributes FileSystem(HDFS) 17
3.2 Hadoop YARN 21
3.3 Hadoop Map Reduce 24
3.4 Hadoop Common 26
4 CÀI ĐẶT VÀ CHẠY THỬ HADOOP 27
4.1 Một số yêu cầu về phần cứng và phần mền cho dành cho Hadoop 27 4.2 Cài đặt 27
4.3 Chương trình Word Count 27
Tài liệu tham khảo 28
Tổng kết 29
Trang 5Lời nói đầu
Trong thời đại số hóa ngày nay, dữ liệu đã trở thành một tài nguyên vô cùng quýgiá và quyết định đến sự phát triển của các tổ chức và doanh nghiệp Khối lượng dữliệu không ngừng tăng lên từ các nguồn khác nhau như hệ thống giao dịch, mạng xãhội, thiết bị IoT và nhiều nguồn khác Đây là những gì chúng ta gọi là "Big Data" -một thuật ngữ mô tả khối lượng lớn, đa dạng và phức tạp của dữ liệu mà chúng taphải đối mặt
Để khai thác và tận dụng tối đa tiềm năng của Big Data, chúng ta cần có các côngnghệ và công cụ phù hợp để xử lý, lưu trữ và phân tích dữ liệu một cách hiệu quả.Trong bối cảnh này, Hadoop đã trở thành một trong những nền tảng phổ biến nhấtcho xử lý dữ liệu lớn Hadoop cung cấp một hệ thống phân tán mở và scalable, chophép chúng ta xử lý và lưu trữ dữ liệu trong các cụm máy tính với hàng trăm hoặcthậm chí hàng nghìn máy chủ
Trong bài báo cáo này, chúng tôi sẽ tìm hiểu về hai khái niệm quan trọng này: BigData và Hadoop Bằng cách hiểu rõ về Big Data và Hadoop, chúng ta sẽ nhận thứcđược tiềm năng và lợi ích mà chúng mang lại trong việc giải quyết các vấn đề phứctạp và trích xuất thông tin quan trọng từ dữ liệu khổng lồ
Hy vọng rằng bài báo cáo này sẽ giúp bạn hiểu rõ hơn về Big Data và Hadoop, vàcung cấp một cái nhìn tổng quan về những khái niệm này Chúng tôi hi vọng rằng nộidung này sẽ truyền cảm hứng và khơi gợi sự tò mò để nghiên cứu sâu hơn về lĩnh vựcđầy tiềm năng này
Trang 6PHẦNI:BIG DATA
1 KHÁINIỆM
•Big Data bao gồm các tập dữ liệu quá lớn (kích thước) hoặc quá phức tạp(cấu trúc), vượt quá khả năng thu thập, sắp xếp, quản lý và xử lý dữ liệucủa các công cụ phần mềm thông thường
•Ví dụ:
- Google thu thập và lưu trữ hàng tỷ truy vấn tìm kiếm hàng ngày từ người dùngtrên toàn cầu Dữ liệu này bao gồm từ khóa tìm kiếm, thời gian, vị trí địa lý vàthông tin người dùng khác
- Facebook có hơn 1,9 tỷ người dùng đồng thời, có hàng trăm server xử lý vàlưu trữ dữ liệu
- Shopee thu thập thông tin về giao dịch trên nền tảng của họ Dữ liệu này baogồm thông tin về sản phẩm được mua, giá cả, thời gian giao dịch, địa chỉ giaohàng và thông tin thanh toán Dữ liệu giao dịch này giúp Shopee phân tích xuhướng mua sắm, đưa ra đề xuất sản phẩm và cải thiện trải nghiệm mua sắmcủa người dung
2 ĐẶCTRƯNG
Năm 2001, người ta đưa ra khái niệm ‘3Vs’ nhằm nói đến 3 đặc trưng quan trọng củaBig data Đến năm 2014, khái niệm ‘5Vs’ ra đời và bổ sung vào ‘3Vs’ 2 đặc trưngkhác và được áp dụng đến ngày nay Cụ thể, 5 đặc trưng của Big data là:
Volume: Khối lượng dữ liệu
Variety: Nhiều loại dữ liệu đa dạng
Velocity: Vận tốc mà dữ liệu cần phải được xử lý và phân tích
Veracity: Độ chính xác
Value: Giá trị của dữ liệu
Trang 7a Volume
Big Data (“dữ liệu lớn”) là tập hợp dữ liệu có dung lượng lưu trữ vượt mứcđảm đương của những ứng dụng và công cụ truyền thống Kích cỡ của BigData đang từng ngày tăng lên, và tính đến năm 2012 thì nó có thể nằm trongkhoả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 mà thôi
b Variety
Hình thức lưu trữ và chủng loại dữ liệu ngày một đa dạng hơn Trước đâychúng ta hay nói đến dữ liệu có cấu trúc thì ngày nay hơn 80% dữ liệu trên thếgiới được sinh ra là phi cấu trúc (tài liệu, blog, hình ảnh, video, voice v.v.).Công nghệ Big Data cho phép chúng ta ngày nay liên kết và phân tích đa dạngchủng loại dữ liệu với nhau như comments/post của một nhóm người dùngnào đó trên Facebook với thông tin video được chia sẻ từ Youtube và Twitter
c Velocity
Dung lượng gia tăng của dữ liệu rất nhanh và tốc độ xử lý đang tiến tớireal-time Các ứng dụng phổ biến trên lĩnh vực Internet, Tài chính, Ngân hàng,Hàng không, Quân sự, Y tế – Sức khỏe ngày hôm nay phần lớn dữ liệu lớn đc
xử lý real-time Công nghệ xử lý dữ liệu lớn ngày một tiên tiến cho phépchúng ta xử lý tức thì trước khi chúng được lưu trữ vào cơ sở dữ liệu
d Veracity
Một trong những tính chất phức tạp nhất của BigData là độ chính xác của dữliệu Với xu hướng Social Media và Social Network ngày nay và sự gia tăngmạnh mẽ tính tương tác và chia sẻ của người dùng Mobile làm cho bức tranhxá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àitoá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ấtquan trọng của BigData
e Value
Giá trị thông tin là tính chất quan trọng nhất của xu hướng công nghệ BigData Ở đây doanh nghiệp phải hoạch định được những giá trị thông tin hữuích của BigData cho vấn đề, bài toán hoặc mô hình hoạt động kinh doanh củamình Có thể nói việc đầu tiên là phải xác định được tính chất “Value” thì mớinên bắt tay vào BigData
Trang 83 ỨNGDỤNGCỦABIGDATA
Big data và phân tích có thể được áp dụng trong nhiều vấn đề kinh doanh vànhiều trường hợp sử dụng khác nhau Dữ liệu lớn (Big Data) trên thực tế đang đượcứng dụng vào rất nhiều lĩnh vực của nền kinh tế, tạo những chuyển biến ấn tượng,giúp tăng hiệu quả và năng suất của doanh nghiệp
Một vài lĩnh vực phổ biến:
a Ngành ngân hàng
Trong hệ thống ngân hàng, Big Data đã và đang được ứng dụng hiệu quả thể hiệnvai trò quan trọng của mình trong mọi hoạt động của ngân hàng: từ thu tiền mặt đếnquản lý tài chính
Ngân hàng ứng dụng Big Data như thế nào:
Sử dụng các kỹ thuật phân cụm giúp đưa ra quyết định quan trọng Hệthống phân tích có thể xác định các địa điểm chi nhánh nơi tập trung nhiềunhu cầu của khách hàng tiềm năng, để đề xuất lập chi nhánh mới
Kết hợp nhiều quy tắc được áp dụng trong các lĩnh vực ngân hàng để dựđoán lượng tiền mặt cần thiết săn sàng cung ứng ở một chi nhánh tại thờiđiểm cụ thể hàng năm
Khoa học dữ liệu hiện đang là nền tảng của hệ thống ngân hàng kĩ thuậtsố
Machine learning và AI đang được nhiều ngân hàng sử dụng để phát hiệncác hoạt động gian lận và báo cáo cho các chuyên viên liên quan
Khoa học dữ liệu hô trợ xử lý, lưu trữ và phân tích lượng dữ liệu khổng lồ
từ các hoạt động hàng ngày và giúp đảm bảo an ninh cho ngân hàng
Trang 9b Ngành y tế
Khoa học dữ liệu đang dần khăng định vai trò khá quan trọng trong việc cải thiện sứckhỏe con người ngày nay Big Data không chỉ được ứng dụng để xác định phươnghướng điều trị mà giúp cải thiện quá trình chăm sóc sức khỏe
Ngành y tế ứng dụng Big Data:
Cho phép người quản lý ca dự đoán các bác sĩ cần thiết vào những thời điểm
cụ thể
Theo dõi tình trạng bệnh nhân bằng để theo dõi hồ sơ sức khỏe điện tử
Sử dụng các thiết bị kỹ thuật số có thể đeo, hệ thống Big Data có thể theodõi bệnh nhân và gửi báo cáo cho các bác sĩ liên quan
Big Data có thể đánh giá các triệu chứng và xác định nhiều bệnh ở giai đoạnđầu
Có thể lưu giữ các hồ sơ nhạy cảm được bảo mật và lưu trữ lượng dữ liệukhổng lồ một cách hiệu quả
Các ứng dụng Big Data cũng có thể báo trước khu vực có nguy cơ bùngphát dịch như: sốt xuất huyết hoặc sốt rét
c Thương mại điện tử
Thương mại điện tử không chỉ tận hưởng những lợi ích của việc điều hành trực tuyến
mà còn phải đối mặt với nhiều thách thức để đạt được các mục tiêu kinh doanh Lý
do là bởi các doanh nghiệp dù là nhỏ hay lớn, khi đã tham gia vào thị trường nàyđều cần đầu tư mạnh để cải tiến công nghệ Big Data có thể tạo lợi thế cạnh tranhcho doanh nghiệp bằng cách cung cấp thông tin chuyên sâu và các bản báo cáo phântích xu hướng tiêu dùng
Thương mại điện tử ứng dụng Big Data:
Có thể thu thập dữ liệu và yêu cầu của khách hàng ngay cả trước khi kháchthực sự bắt đầu giao dịch
Tạo ra một mô hình tiếp thị hiệu suất cao
Nhà quản lý trang thương mại điện tử có thể xác định các sản phẩm đượcxem nhiều nhất và tối ưu thời gian hiển thị của các trang sản phẩm này.Đánh giá hành vi của khách hàng và đề xuất các sản phẩm tương tự Điềunày làm tăng khả năng bán hàng, từ đó tạo ra doanh thu cao hơn
Trang 10Nếu bất kỳ sản phẩm nào được thêm vào giỏ hàng nhưng cuối cùng khôngđược khách hàng mua, Big Data có thể tự động gửi code khuyến mại chokhách hàng cụ thể đó.
Các ứng dụng Big Data còn có thể tạo một báo cáo tùy chỉnh theo các tiêuchí: độ tuổi, giới tính, địa điểm của khách truy cập, v.v
Xác định các yêu cầu của khách hàng, những gì họ muốn và tập trung vàoviệc cung cấp dịch vụ tốt nhất để thực hiện nhu cầu của họ
Phân tích hành vi, sự quan tâm của khách hàng và theo xu hướng của họ đểtạo ra các sản phẩm hướng đến khách hàng
Cung cấp các sản phẩm tốt hơn với chi phí thấp hơn
Có thể thu thập nhiều dữ liệu về hành vi khách hàng để thiết kế mô hìnhtiếp thị tối ưu dành được tùy biến theo đối tượng hoặc nhóm đối tượng, tăngkhả năng bán hàng
Tìm ra sự tương đồng giữa khách hàng và nhu cầu của họ Từ đó, việcnhắm mục tiêu các chiến dịch quảng cáo có thể được tiến hành dễ dàng hơndựa trên những phân tích đã có trước đó
Digital Marketing ứng dụng Big Data:
Phân tích thị trường, đối thủ cạnh tranh và đánh giá mục tiêu kinh doanh.Điều này giúp cho doanh nghiệp xác định rõ hơn, đâu là cơ hội tốt để tiếptục tiến hành các kế hoạch kinh doanh tiếp theo
Có thể xác định người dùng trên các phương tiện truyền thông xã hội vànhắm mục tiêu cho họ dựa trên nhân khẩu học, giới tính, thu nhập, tuổi tác
và sở thích
Tạo báo cáo sau môi chiến dịch quảng cáo bao gồm hiệu suất, sự tham giacủa khán giả và những gì có thể được thực hiện để tạo kết quả tốt hơn.Khoa học dữ liệu được sử dụng cho các khách hàng nhắm mục tiêu và nuôidưỡng chu trình khách hàng
Trang 173 CÁCTHÀNHPHẦNCHÍNHCỦAHADOOP
Hệ sinh thái đơn giản của Hadoop
3.1 Hadoop Distributes FileSystem(HDFS)
Trang 18a Kiến trúc của HDFS
HDFS là hệ thống file lưu trữ dữ liệu phân tán, có khả năng chịu lôi cao, triểnkhai trong các phần cứng thông thường, có khă năng truy cập throughput, thích hợpvới Big Data
Các thành phần chính: NameNode, DataNode, Secondary NameNode
NameNode
Lưu trữ thông tin metadata (fsimage, edit logs)
Quản lý user truy cập vào hệ thống
Giao tiếp với client cho thao tác đọc ghi dữ liệu
Cung cấp dịch vụ đăng ký DataNode mới trong cụm, nhận heartbeatcủa DataNode
Xác định địa chỉ của file, replicated file
DataNode
Cung cấp các block để lưu trữ file
Giao tiếp với client cho thao tác đọc ghi
Khởi tạo và xóa block data
Nhân rộng data trong cụm
Giữ liên lạc với NameNode thông qua gửi các heartbeat theo định kỳSecondary NameNode
Lưu các thông tin trên fsimage của NameNode theo định kỳ
Phục vụ cho việc khôi phục lại thông tin metadata trên NameNode khigặp sự cố
Block trong HDFS: là đơn vị cơ bản của dữ liệu được lưu trữ và quản lý trong hệthống
Trong Hadoop version 1: kích thước của block là 64MB
Trong Hadoop version 2: kích thước của block là 128MB và có thể lên tới256MB
(Trong hệ thống lưu trữ file bình thường thì môi block chỉ lưu trữ được từ vàitrăm KB đến vài MB)
Trang 19Rack Awareness: là một tính năng giúp tối ưu hóa việc định vị và phân phối dữ liệu.Rack có 2 điều kiện chặt đó là:
- Không có quá 1 block trên 1 node
- Không có quá 2 block trên cùng 1 Rack
Mục đích: tăng khả năng chống chịu lôi
VD: Giả sử Rack – 1 chết, dữ liệu trong Block A vẫn còn được lưu trữ ở
Rack – 2, dữ liệu của Block B vẫn được lưu trữ trong Rack – 3
b Đọc và ghi dữ liệu trên HDFS
Ghi dữ liệu:
Ứng dụng hoặc client gửi yêu cầu ghi dữ liệu tới NameNode trong HDFS.NameNode kiểm tra xem tệp tin và thư mục liên quan đã tồn tại hay chưa, vàxác định vị trí lưu trữ cho các khối dữ liệu mới
NameNode trả về thông tin về các DataNode (vị trí lưu trữ) cho ứng dụnghoặc client
Ứng dụng hoặc client truyền dữ liệu theo các khối tới các DataNode được chỉđịnh
Trang 20Các DataNode nhận dữ liệu và lưu trữ các khối trên đĩa cục bộ.
Khi một khối dữ liệu được ghi thành công, DataNode gửi thông báo choNameNode để cập nhật thông tin về bản sao khối và vị trí lưu trữ của nó.NameNode cập nhật thông tin về khối mới vào siêu dữ liệu (metadata)
Đọc dữ liệu:
Ứng dụng hoặc client gửi yêu cầu đọc dữ liệu tới NameNode
NameNode truy vấn siêu dữ liệu để xác định vị trí lưu trữ và các DataNodechứa khối dữ liệu
NameNode trả về thông tin vị trí lưu trữ cho ứng dụng hoặc client
Ứng dụng hoặc client truy vấn các DataNode được chỉ định để lấy dữ liệu từcác khối
Các DataNode truyền dữ liệu các khối tới ứng dụng hoặc client
Ứng dụng hoặc client hợp nhất và xử lý dữ liệu nhận được từ các khối để tạo
ra kết quả đọc
Mô hình ghi dữ kiệu trên HDFS
Trang 213.2 Hadoop YARN
a Các thành phần của YARN
YARN là một thành phân quang trọng trong Hadoop, YARN có 2 chức năng cơ bản là quản lý tài nguyên và lập lịch công việc Các thành phần chính của YARN bao gồm ResourceManager, NodeManager và ApplicationMaster.
Mô hình đọc dữ liệu trên HDFS
Trang 22ResourceManager có nhiệm vụ quản lý toàn bộ tài nguyên trong cụm, nó cungcấp tài nguyên là core, RAM cho ứng dụng cần dùng, đồng thời cũng là đầu nãoquản lý các NodeManager Trong một namespace chỉ có một activeResourceManger tại một thời điểm.
ResourceManager có hai thành phần chính là Scheduler và ApplicationManager:Scheduler: có nhiệm vụ cung cấp tài nguyên cho các ứng dụng sử dụng, nó
là thuần scheduler và không có nhiệm vụ quản lý hay theo dõi tình trạngcủa ứng dụng, hoặc như việc restart các task bị fail Việc cung cấp tàinguyên là dựa trên yêu cầu cảu ứng dụng, các tài nguyên như RAM, core, Việc này cũng dựa trên các chính sách chia nhỏ tài nguyên thành các queue,các chính sách như CapacityScheduler và FairScheduler
ApplicationManager: Có nhiệm vụ tiếp nhận các job từ client, cấp phát tàinguyên để start ApplicationMaster cho từng ứng dụng, đồng thời cung cấpdịch vụ restart ApplicationMaster trong trường hợp lôi
NodeManager được cài trên 1 node có nhiệm vụ quản lý tài nguyên (RAM,core ) và job trên node đó NodeManager thường xuyên gửi heartbeat đến RMthông báo tình trạng, mục đích chính của NM là quản lý các container mà RMgiao cho nó, kill các container này nếu RM yêu cầu
Các thành phần và cách thức hoạt động của YARN
Trang 23ApplicationMaster là một container được khởi tạo bới RM, tương ứng với môijob submit lên RM là một ApplicationMaster AppMaster có nhiệm vụ điều phốicác hoạt động của một job trong cụm, xin cấp phát tài nguyên từResourceManager và kết nối với NodeManger để quản lý các container.
Container là tiến trình của YARN, tập hợp các tài nguyên vật lý như core,RAM YARN container được quản lý bới đối tượng Container Launch Context,đối tượng này lưu trữ các thông tin như biến môi trường, dependencies, securitytokens và các chỉ thị để tạo tiến trình Container cấp quyền cho các ứng dụngchạy trên nó sử dụng một lượng tài nguyên nhất định
b Tiến trình thực hiện công việc trong YARN
Việc thực thi job sử dụng Hadoop YARN bao gồm 3 bước chính:
Client gửi yêu cầu tới YARN
YARN khởi tạo ApplicationMaster tương ứng với chương trình đó.ApplicationMaster quản lý thực thi của chương trình trên các containers
Chi tiết các bước như sau:
- Client gửi job đến RecourceManager bao gồm các bước, tài nguyên cầnthiết kế để khởi tạo ApplicationMaster
- RecourceManager cấp phát tài nguyên và khởi động ApplicationMaster
- AppMaster đăng ký với ResourceManager cho phép client giao tiếp trựctiếp đến AppMaster
- AppMaster sau đó request tài nguyên container từ ResourceManager
- Sau khi xin được tài nguyên từ RM, AppMaster cung cấp cho
NodeManager chỉ dẫn để khởi tạo các container trên NM đó Cáccontainer sau đó giao tiếp trực tiếp với AppMaster
- Việc thực thi job trên container báo cáo lại tiến độ công việc choAppMaster
- Trong khi chương trình thực thi, client giao tiếp trực tiếp với AppMaster
để nhận thông tin về tình trạng cung như cập nhật tiến độ công việc
- Khi chương trình hoàn tất, AppMaster ngắt kết nối với ResourceManger
và off các containers