1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn học phân tích dữ liệu tổng quan về hadoop

15 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tổng Quan Về Hadoop
Tác giả Hồ Thị Băng Nhân, Nguyễn Thị Lợi, Nguyễn Trần Minh Bảo
Người hướng dẫn PGS.TS Lê Hoàng Sơn
Trường học Trường Đại học Duy Tân
Chuyên ngành Phân tích Dữ liệu
Thể loại Tiểu luận môn học
Năm xuất bản 2022
Thành phố Quảng Ngãi
Định dạng
Số trang 15
Dung lượng 3,15 MB

Nội dung

Bài viết này là một bài nghiên cứu được sản sinh ra từ Google - MapReduce: Xử lý dữ liệu đơn giản trên các cluster lớn một tập hợp các máy tính/máy chủ phối hợp hoạt động với nhau như mộ

Trang 1

TRƯỜNG ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH

-o0o -TIỂU LUẬN MÔN HỌC PHÂN TÍCH DỮ LIỆU

Tên tiểu luận:

Thực hiện: Nhóm 3 – Lớp K24MCS.2 Thành viên: Hồ Thị Băng Nhân

Nguyễn Thị Lợi

Nguyễn Trần Minh Bảo

Giảng viên giảng dạy: PGS.TS Lê Hoàng Sơn

Quảng Ngãi, tháng 10/2022

Trang 2

MỤC LỤC LỜI CẢM ƠN 1 Chương I TỔNG QUAN VỀ HỆ CHUYÊN GIA 2 CHƯƠNG II TƯ VẤN HƯỚNG NGHIỆP Ở TRƯỜNG TRUNG HỌC PHỔ THÔNG 9 CHƯƠNG III BÀI TOÁN TƯ VẤN NGHỀ NGHIỆP Ở TRƯỜNG TRUNG HỌC PHỔ THÔNG 16 TÀI LIỆU THAM KHẢO 21

Trang 3

DANH MỤC HÌNH ẢNH, BẢNG BIỂU

Hình 1 Một số lĩnh vực ứng dụng của trí tuệ nhân tạo 2

Hình 2 Hoạt động của hệ chuyên gia 2

Hình 3 Quan hệ giữa lĩnh vực vấn đề và lĩnh vực tri thức 3

Hình 4 Thành phần cơ bản của Hệ chuyên gia 6

Hình 5 Mối quan hệ giữa các thành phần 6

Hình 6 Kiến trúc hệ chuyên gia theo J L Ermine 7

Hình 7 Kiến trúc hệ chuyên gia theo C Ernest 7

Hình 8 Kiến trúc hệ chuyên gia theo E V Popov 7

Hình 9 Nền tảng của công nghệ hệ chuyên gia dựa trên luật hiện đại 8

Hình 10: Mô hình tam giác hướng nghiệp 10

Hình 11: Kiến trúc hệ chuyên gia theo mô hình C Ernest 12

Bảng 1: Nhóm tính cách và môi trường làm việc 15

Bảng 2: Nhóm ngành nghề 18

Trang 4

LỜI CẢM ƠN

Lời đầu tiên chúng em xin chân thành cảm ơn Ban giám hiệu trường Đại Học Duy Tân – Đà Nẵng đã tạo điều kiện để chúng em có một môi trường học tập thoải mái về cơ sở hạ tầng cũng như cơ sở vật chất.

Xin cảm ơn trường Khoa học máy tính đã giúp chúng em được mở mang tri thức

về Hệ chuyên gia, một nền móng hết sức quan trọng, đóng vai trò quyết định trong việc thực hiện chuyên ngành khoa học máy tính

Em chân thành cảm ơn PGS.TS Lê Hoàng Sơn đã trực tiếp hướng dẫn tận tình và đóng góp nhiều ý kiến quý báu giúp nhóm chúng em hoàn thành tốt bài tiểu luận này Với những giới hạn về kiến thức và thời gian, trong quá trình tìm hiểu chắc chắn chúng không tránh khỏi thiếu sót, mong Thầy và các bạn tận tình góp ý để nhóm em hoàn thiện hơn nữa những kiến thức của mình.

Nhóm em xin chân thành cảm ơn!

Thực hiện Nhóm 3 Trần Minh Anh Bảo Nguyễn Thị Lợi

Hồ Thị Băng Nhân

Trang 5

Chương I.

TỔNG QUAN VỀ HADOOP 1.1 Khái niệm cơ bản

1.1.1 Khái niệm

Apache Hadoop hay Hadoop được định nghĩ là một framework có mã nguồn mở được viết bằng ngôn ngữ lập trình Java Hadoop cho phép phát triển được các ứng dụng phân tán (distributed processing) và nó có nguồn dữ liệu lớn hoàn toàn miễn phí Một số ứng dụng thường có thể làm việc với hàng trăm node khác cùng hàng ngàn petabyte dữ liệu Hadoop đã và đang được phát triển dựa vào các ý tưởng từ Google về các mô hình MapReduce và GFS (Google File System) Bên cạnh đó thì dựa vào cơ1 chế streaming nên khi được viết bằng ngôn ngữ Java thì Hadoop còn cho phép bạn2 phát triển các ứng dụng nằm dưới các dạng phân tán dựa vào các loại ngôn ngữ lập trình khác như: C++, Python , Pearl…

1.1.2 Khái quát về lịch sử hình thành

Nguồn gốc của Hadoop đến từ các bài viết File System Google được xuất bản vào tháng 10 năm 2003 Bài viết này là một bài nghiên cứu được sản sinh ra từ Google

- MapReduce: Xử lý dữ liệu đơn giản trên các cluster lớn (một tập hợp các máy tính/máy chủ phối hợp hoạt động với nhau như một hệ thống đơn nhất)

Bắt đầu phát triển trên dự án Apache Nutch, nhưng đã được chuyển qua dự án con Hadoop mới trong tháng 1 năm 2006 Doug Cutting đã làm việc tại Yahoo! vào thời điểm đó, đặt tên Hadoop theo tên của con voi đồ chơi của con trai mình Hadoop 0.1.0 được phát hành vào tháng 4 năm 2006 và tiếp tục phát triển bởi nhiều người đóng góp đến dự án Apache Hadoop

Do đó, Hadoop được phát hành chính thức vào năm 2005 bởi tập đoàn Apache Software Apache Software là một trong những tổ chức phi lợi nhuận chuyên dụng trong việc sản xuất các phần mềm cũng như các mã nguồn mở từ đó hỗ trợ cho các nền tảng khác trên Internet

Với hơn 15 năm phát triển nên Hadoop dần khẳng định được tầm quan trọng của chính mình trong quá trình lưu trữ cũng như xử lý cho các kho dữ liệu

1.2 Nhiệm vụ của Hadoop

- Xử lý và làm việc khối lượng dữ liệu khổng lồ tính bằng Petabyte.

- Xử lý trong môi trường phân tán, dữ liệu lưu trữ ở nhiều phần cứng khác nhau, yêu cầu xử lý đồng bộ.

- Các lỗi xuất hiện thường xuyên.

- Băng thông giữa các phần cứng vật lý chứa dữ liệu phân tán có giới hạn.

1.3 Nguyên tắc thiết kế của Hadoop

- Cần xử lý dữ liệu lớn

- Cần tính toán song song trên hàng ngàn node

- Chịu lỗi và phục hồi tự động

1 một mô hình được Google thiết kế độc quyền với khả năng lập trình xử lý một lượng lớn các dữ liệu song song đồng thời phân tán các thuật toán trên cùng một máy tính

2 công nghệ được sử dụng để truyền dữ liệu tới máy tính và các thiết bị di động thông qua Internet

Trang 6

-2-1.4 Cấu trúc của Hadoop là gì?

Hadoop framework gồm hai layer chính: Hadoop Distriduted file system (HDFS), Execution engine (MapReduce)

Hadoop hoạt động dựa trên 4 module:

- Hadoop Common: Đây được xem là một trong những thư viện tiện ích cần thiết

để đảm bảo cho các module khác có thể sử dụng Hầu hết, những thư viện này đều cung cấp cho các hệ thống các file và lớp OS trừu tượng có chứa các mã lệnh Java để

có thể khởi động được Hadoop

- Hadoop YARN: Là một framework được sử dụng cho việc quản lý cho các tiến trình cũng như tài nguyên của cluster

Hình: Cấu trúc của Hadoop

- Hadoop Distributed File System (HDFS): Đây là một trong những hệ thống file phân tán giúp cung cấp cũng như truy cập đến các thông lượng cao dành cho ứng dụng trong việc khai thác dữ liệu HDFS sử dụng kiến trúc master/slave, trong đó master gồm một NameNode để quản lý hệ thống file metadata và một hay nhiều slave DataNodes để lưu trữ dữ liệu thực tại Với một tập tin có dạng HDFS đều sẽ được chia thành nhiều khối khác nhau và chúng đều được lưu trữ trong các tập DataNodes.NameNode đều sẽ được định nghĩa là các ánh xạ đến từ những khối từ DataNode Những loại DataNode này đều điều hành những tác vụ đọc và ghi dữ liệu vào hệ thống file Ngoài ra, chúng còn có nhiệm vụ quản lý việc tạo, nhân rộng, hủy các khối thông qua những chỉ thị từ NameNode.

- Hadoop MapReduce: Là một trong những hệ thống dựa trên YARN để có thể thực hiện xử lý song song các tập dữ liệu lớn MapReduce sẽ bao gồm một single master JobTracker và các slave TaskTracker gay trên mỗi cluster-node Các Master này đều có nhiệm vụ quản lý được các tài nguyên cũng như theo dõi quá trình tiêu thụ rồi thực hiện lập lịch quản lý các tác vụ trên máy trạm Hầu hết, các máy slave TaskTracker đều sẽ thực thi được những master theo dạng chỉ định và có thể cung cấp được các thông tin trạng thái tác vụ để cho master có thể theo dõi Tính đến thời điểm

Trang 7

hiện tại thì Hadoop đang ngày càng được mở rộng hơn cũng như được nhiều framework khác hỗ trợ như: Hive, Hbase, Pig Chình vì vậy, các lập trình viên có thể

sự vào mục đích sử dụng cụ thể để có thể nâng cao hiệu quả xử lý dữ liệu từ Hadoop

1.5 Các ưu điểm của Hadoop là gì?

- Hadoop có khả năng thêm nhiều node mới và thay đổi được các cấu hình của chúng một cách dễ dàng: Các doanh nghiệp không cần phải đầu tư quá nhiều vào phần cứng quá mạnh và đặc biệt khi chạy Hadoop Nhờ vậy, bạn có thể tiết kiệm được tối đa các chi phí đầu tư ban đầu

- Hadoop có khả năng xử lý được hầu hết những kho dữ liệu có cấu trúc hoặc không có cấu trúc một cách dễ dàng

Trong suốt quá trình hoạt động thì 1 node trên hệ thống nếu bị lỗi thì nền tảng của Hadoop sẽ có thể tự động di chuyển sang dạng node dự phòng khác Nhờ vậy mà

hệ thống sẽ có thể hoạt động xuyên suốt ổn định hơn

- Hadoop đó là mã nguồn mở, điều này giúp nó tương thích rất nhiều cấu hình và platform khác nhau

1.6 Các giai đoạn 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:

- Nơi lưu (location) dữ liệu input, output trên hệ thống dữ liệu phân tán.

- Các java class ở định dạng jar chứa các dòng lệnh thực thi các hàm map và reduce.

- 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à các thiết lập

cho JobTracker Sau đó, master sẽ phân phối tác vụ đến các máy slave để theo dõi và quản lý tiến trình các máy này, đồng thời cung cấp thông tin về tình trạng và chẩn đoán liên quan đến job-client.

Giai đoạn 3: TaskTrackers trên các node khác nhau thực thi tác vụ MapReduce

và trả về kết quả output được lưu trong hệ thống file.

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ững trì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ủ.

Các daemon bao gồm:

NameNode DataNode SecondaryNameNode JobTracker

TaskTracker

Trang 8

-4-CHƯƠNG II

CÁC MODULE HADOOP 2.1 MapReduce

2.1.1 Mapreduce là gì?

MapReduce là mô hình được thiết kế độc quyền bởi Google, nó có khả năng lập trình xử lý các tập dữ liệu lớn song song và phân tán thuật toán trên 1 cụm máy tính

H ình 2 1Định nghĩa Mapreduce là gì?

MapReduce sẽ bao gồm những thủ tục sau: thủ tục Map() và Reduce() Thủ tục Map() bao gồm lọc (filter) và phân loại (sort) trên dữ liệu, thủ tục Reduce() thực hiện quá trình tổng hợp dữ liệu Đây là mô hình dựa vào các khái niệm biển đối của bản đồ và reduce những chức năng lập trình theo hướng chức năng Thư viện của thủ tục Map() và Reduce() sẽ được viết bằng nhiều loại ngôn ngữ khác nhau Thủ tục được cài đặt miễn phí và được sử dụng phổ biến nhất là

là Apache Hadoop.

2.1.2 Các hàm chính của MapReduce

MapReduce có 2 hàm chính là Map() và Reduce(), đây là 2 hàm đã được định nghĩa bởi người dùng và nó cũng chính là 2 giai đoạn liên tiếp trong quá trình xử lý dữ liệu của MapReduce Nhiệm vụ cụ thể của từng hàm như sau:

Hàm Map(): có nhiệm vụ nhận Input cho các cặp giá trị/khóa và output

chính là tập những cặp giá trị/khóa trung gian Sau đó, chỉ cần ghi xuống đĩa cứng và tiến hành thông báo cho các hàm Reduce() để trực tiếp nhận dữ liệu

Trang 9

Hàm Reduce(): có nhiệm vụ tiếp nhận từ khóa trung gian và những giá

trị tương ứng với lượng từ khóa đó Sau đó, tiến hành ghép chúng lại để có thể tạo thành một tập khóa khác nhau Các cặp khóa/giá trị này thường sẽ thông qua một con trỏ vị trí để đưa vào các hàm reduce Quá trình này sẽ giúp cho lập trình viên quản lý dễ dàng hơn một lượng danh sách cũng như phân bổ giá trị sao cho phù hợp nhất với bộ nhớ hệ thống

Ở giữa Map và Reduce còn 1 bước trung gian đó chính là Shuffle Sau khi Map hoàn thành xong công việc của mình thì Shuffle sẽ làm nhiệm vụ chính

là thu thập cũng như tổng hợp từ khóa/giá trị trung gian đã được Map sinh ra trước đó rồi chuyển qua cho Reduce tiếp tục xử lý.

Hình 2.2 Các hàm của MapReduce 2.1.3 Hoạt động của MapReduce

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

MapReduce hoạt động dựa vào nguyên tắc chính là "Chia để trị", như sau: Phân chia các dữ liệu cần xử lý thành nhiều phần nhỏ trước khi thực hiện

Xử lý các vấn đề nhỏ theo phương thức song song trên các máy tính rồi phân tán hoạt động theo hướng độc lập.

Tiến hành tổng hợp những kết quả thu được để đề ra được kết quả sau cùng

Các bước hoạt động của MapReduce

Bước 1: Tiến hành chuẩn bị các dữ liệu đầu vào để cho Map() có thể xử lý.

Bước 2: Lập trình viên thực thi các mã Map() để xử lý

Bước 3: Tiến hành trộn lẫn các dữ liệu được xuất ra bởi Map() vào trong Reduce Processor

Bước 4: Tiến hành thực thi tiếp mã Reduce() để có thể xử lý tiếp các dữ liệu cần thiết

Bước 5: Thực hiện tạo các dữ liệu xuất ra cuối cùng

Trang 10

-6-Luồng dữ liệu nền tảng của Mapreduce

Input Reader

Map Function

Partition Function

Compare Function

Reduce Function

Output Writer

2.1.4 Ví dụ cụ thể về hoạt động của MapReduce

Hình 2.3 Ví dụ về tiến trình hoạt động của MapReduce

MapReduce được ứng dụng cho việc thống kê hàng loạt những số liệu cụ thể như sau:

Thực hiện thống kê cho các từ khóa được xuất hiện ở trong các tài liệu, bài viết, văn bản hoặc được cập nhật trên hệ thống fanpage, website,…

Khi số lượng các bài viết đã được thống kê thì tài liệu sẽ có chứa các từ khóa đó

Sẽ có thể thống kê được những câu lệnh match, pattern bên trong các tài liệu đó

Khi thống kê được số lượng các URLs có xuất hiện bên trong một webpages

Sẽ thống kê được các lượt truy cập của khách hàng sao cho nó có thể tương ứng với các URLs.

Sẽ thống kê được tất cả từ khóa có trên website, hostname,…

2.2 Apache Hive

2.2.1 Apache Hive là gì?

Apache Hive là một hệ thống kho dữ liệu để tổng hợp và phân tích dữ liệu

và để truy vấn các hệ thống dữ liệu lớn trong nền tảng Hadoop mã nguồn mở.

Trang 11

Nó chuyển đổi các truy vấn giống SQL thành các công việc MapReduce để dễ dàng thực thi và xử lý khối lượng dữ liệu cực lớn.

Apache Hive là một thành phần Hadoop thường được triển khai bởi các nhà phân tích dữ liệu

Ba chức năng quan trọng mà Hive được triển khai là tóm tắt dữ liệu, phân tích dữ liệu và truy vấn dữ liệu Ngôn ngữ truy vấn, được hỗ trợ độc quyền bởi Hive, là HiveQL Ngôn ngữ này chuyển các truy vấn giống SQL thành các công việc MapReduce để triển khai chúng trên Hadoop HiveQL cũng hỗ trợ các tập lệnh MapReduce có thể được cắm vào các truy vấn Hive tăng tính linh hoạt trong thiết kế lược đồ và cũng như tuần tự hóa và giải mã hóa dữ liệu.

2.2.2 Các thành phần chính của Apache Hive

Hình 2.4 Các thành phần chính của Apache Hive

Metastore: Đây là kho lưu trữ siêu dữ liệu Siêu dữ liệu này bao gồm dữ liệu

cho mỗi bảng như vị trí và giản đồ của nó Nó cũng chứa thông tin về siêu dữ liệu phân vùng cho phép bạn theo dõi các tiến trình dữ liệu phân tán khác nhau trong cụm Dữ liệu này thường có trong cơ sở dữ liệu quan hệ Siêu dữ liệu theo dõi dữ liệu, sao chép dữ liệu và cung cấp bản sao lưu trong trường hợp mất dữ liệu.

Trình điều khiển: Trình điều khiển nhận các câu lệnh HiveQL và hoạt động

giống như một bộ điều khiển Nó giám sát tiến trình và vòng đời của các lần thực thi khác nhau bằng cách tạo các phiên Trình điều khiển lưu trữ siêu dữ liệu được tạo trong khi thực thi câu lệnh HiveQL Khi hoàn thành thao tác thu gọn bằng công việc MapReduce , trình điều khiển sẽ thu thập các điểm dữ liệu và kết quả truy vấn.

Trình biên dịch: Trình biên dịch được giao nhiệm vụ chuyển đổi truy vấn

HiveQL thành đầu vào MapReduce Nó bao gồm một phương thức để thực thi các bước và tác vụ cần thiết để cho phép MapReduce xuất ra HiveQL khi cần.

Trang 12

-8-Trình tối ưu hóa: Điều này thực hiện các bước chuyển đổi khác nhau để tổng

hợp và chuyển đổi đường ống bằng một phép nối duy nhất cho nhiều phép nối Nó cũng được chỉ định để phân chia một nhiệm vụ trong khi chuyển đổi dữ liệu, trước khi giảm các hoạt động, để cải thiện hiệu quả và khả năng mở rộng.

Người thực thi: Người thực thi thực thi các tác vụ sau các bước biên dịch và tối

ưu hóa Nó tương tác trực tiếp với Trình theo dõi công việc Hadoop để lên lịch cho các nhiệm vụ sẽ được chạy.

CLI, UI và Thrift Server: Giao diện dòng lệnh (CLI) và giao diện người dùng (UI) gửi các truy vấn, giám sát quy trình và hướng dẫn để người dùng bên ngoài

có thể tương tác với Hive Thrift Server cho phép các máy khách khác tương tác với Hive.

2.3 Apache Hbase

2.3.1 Apache Hbase là gì?

Hbase là hệ quản trị cơ sở dữ liệu dựa trên Hadoop, đây là mã nguồn mở nằm trong dự án của Apache, phát triển và mở rộng từ dự án lưu trữ Bigdata của google (được xây dựng dựa trên Google Big Table) Hbase được viết bằng ngôn ngữ Java , có thể lưu trữ dữ liệu cực lớn từ terabytes đến petabytes.

Hbase thực chất là một NoSQL điển hình nên vì thế các table của Hbase không có một schemas cố định nào và cũng không có mối quan hệ giữa các bảng Hiện nay, có rất nhiều công ty và tập đoàn công nghệ lớn trên thế giới sử dụng Hbase, có thể kể đến: Facebook, Twitter, Yahoo, Adobe….

Các tính năng của Hbase

Thời gian lọc dữ liệu nhanh

Lưu trữ dữ liệu Big-Data, có thể lưu trữ hàng tỷ rows và columns

Có độ ổn định và giảm thiểu rủi ro (failover) khi lưu một lượng lớn dữ liệu.

Truy vấn dữ liệu theo thời gian thực

Cung cấp giao thức REST, giúp trả về dữ liệu theo các định dạng khác nhau như plain test, json, xml Nhờ đó chúng ta có thể khai thác dữ liệu không cần qua API từ phần mềm thứ 3.

Nhất quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop

Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như Java, PHP Python , …

Lưu trữ dữ liệu đáng tin cậy, được các hãng công nghệ trên thế giới sử dụng trên quy mô lớn.

2.3.2 Kiến trúc của Apache Hbase

Ngày đăng: 12/07/2024, 17:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w