Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.89 MB, 29 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
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ênHồn thiện, chỉnh sửa bào cáo Tất cả thành viênHoàn thiện, chỉnh sửa slide Tất cả thành viên
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">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
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 274.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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">•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 tồ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 tố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.
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ệuVariety: 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íchVeracity: Độ chính xác
Value: Giá trị của dữ liệu
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">a. 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, Qn sự, Y tế – Sức khỏe ngày hôm nay phần lớn dữ liệu lớn đcxử 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àitố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ữch của BigData cho vấn đề, bài tố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.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">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.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">b. 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.
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ếnmà 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.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Nế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 đó.
d. Digital marketing
Digital Marketing là chìa khóa để cánh cửa thành công cho bất kỳ doanh nghiệp nào.Giờ đây, khơng chỉ các cơng ty lớn có thể điều hành các hoạt động quảng cáo tiếp thịmà cả các doanh nhân nhỏ cũng có thể chạy các chiến dịch quảng cáo thành công trêncác nền tảng truyền thông xã hội và quảng bá sản phẩm của họ. Big Data đã tiếp sứccho Digital Marketing phát triển thực sự mạnh mẽ, và nó đã trở thành một phầnkhơng thể thiếu của bất kỳ doanh nghiệp nào.
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ácvà 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à nidưỡng chu trình khách hàng.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><small>Hệ sinh thái đơn giản của Hadoop</small>
3.1. Hadoop Distributes FileSystem(HDFS)
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">a. 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ữ fileGiao tiếp với client cho thao tác đọc ghiKhở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)
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Rack 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ó q 1 block trên 1 node- Khơng có q 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 HDFSGhi 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.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Cá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ạora kết quả đọc.
<small>Mơ hình ghi dữ kiệu trên HDFS</small>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">3.2. Hadoop YARNa. Các thành phần của YARN
<small>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.</small>
<small>Mơ hình đọc dữ liệu trên HDFS</small>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">ResourceManager có nhiệm vụ quản lý tồn bộ tài ngun 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.
<small>Các thành phần và cách thức hoạt động của YARN</small>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">ApplicationMaster 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ực
và off các containers.
</div>