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

Nội dung

Trang 1

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

Nguyễn Thị LợiNguyễ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 1Chương I TỔNG QUAN VỀ HỆ CHUYÊN GIA 2CHƯƠNG II TƯ VẤN HƯỚNG NGHIỆP Ở TRƯỜNG TRUNG HỌC PHỔ THÔNG 9CHƯƠNG III BÀI TOÁN TƯ VẤN NGHỀ NGHIỆP Ở TRƯỜNG TRUNG HỌC PHỔ THÔNG 16TÀ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ọcDuy 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ảimá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ứcvề Hệ chuyên gia, một nền móng hết sức quan trọng, đóng vai trò quyết định trongviệ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ắnchú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 emhoà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ảoNguyễn Thị LợiHồ Thị Băng Nhân

Trang 5

Chương I.TỔNG QUAN VỀ HADOOP1.1Khá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 ứngdụ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ànpetabyte 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ơ1chế streaming nên khi được viết bằng ngôn ngữ Java thì Hadoop còn cho phép bạn2phá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ậptrì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ảnvà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áytí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ự áncon Hadoop mới trong tháng 1 năm 2006 Doug Cutting đã làm việc tại Yahoo! vàothờ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ởinhiề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 ApacheSoftware Apache Software là một trong những tổ chức phi lợi nhuận chuyên dụngtrong 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ềntả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ủachính mình trong quá trình lưu trữ cũng như xử lý cho các kho dữ liệu

1.2Nhiệ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.3Nguyên tắc thiết kế của Hadoop

Trang 6

1.4Cấ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 đềucung 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ếntrì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 filephâ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ụngtrong việc khai thác dữ liệu HDFS sử dụng kiến trúc master/slave, trong đó mastergồm một NameNode để quản lý hệ thống file metadata và một hay nhiều slaveDataNodes để lưu trữ dữ liệu thực tại Với một tập tin có dạng HDFS đều sẽ được chiathành nhiều khối khác nhau và chúng đều được lưu trữ trong các tậpDataNodes.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ệuvà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ủycá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 singlemaster 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ồithự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 slaveTaskTracker đề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ềuframework 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.5Cá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ủachú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ầncứ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 đacá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ặckhô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ảngcủ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.6Cá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ánliê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ácchươ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ìnhnề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ênnhiều máy chủ.

Các daemon bao gồm:

Trang 8

-4-CHƯƠNG II CÁC MODULE HADOOP2.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 1cụ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ụcReduce() 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áiniệm biển đối của bản đồ và reduce những chức năng lập trình theo hướng chứcnăng Thư viện của thủ tục Map() và Reduce() sẽ được viết bằng nhiều loại ngônngữ 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 đĩacứ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 quamộ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ìnhviên quản lý dễ dàng hơn một lượng danh sách cũng như phân bổ giá trị saocho 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 Saukhi Map hoàn thành xong công việc của mình thì Shuffle sẽ làm nhiệm vụ chínhlà thu thập cũng như tổng hợp từ khóa/giá trị trung gian đã được Map sinh ratrước đó rồi chuyển qua cho Reduce tiếp tục xử lý.

Hình 2.2 Các hàm của MapReduce2.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ồiphâ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ả saucù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 trongReduce 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 -6-

Trang 10

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

Input ReaderMap FunctionPartition FunctionCompare FunctionReduce FunctionOutput 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àiliệu đó

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

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 Hive2.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ệuvà để 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ácnhà 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ântích dữ liệu và truy vấn dữ liệu Ngôn ngữ truy vấn, được hỗ trợ độc quyền bởiHive, là HiveQL Ngôn ngữ này chuyển các truy vấn giống SQL thành các côngviệc MapReduce để triển khai chúng trên Hadoop HiveQL cũng hỗ trợ các tậplệnh MapReduce có thể được cắm vào các truy vấn Hive tăng tính linh hoạttrong 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 nhautrong cụm Dữ liệu này thường có trong cơ sở dữ liệu quan hệ Siêu dữ liệu theodõ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ầnthự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ọnbằ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ếtquả 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 thicá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 Hbase2.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ủagoogle (được xây dựng dựa trên Google Big Table) Hbase được viết bằng ngônngữ 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 Hbasekhông có một schemas cố định nào và cũng không có mối quan hệ giữa cácbả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 HbaseThờ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à columnsCó độ ổ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ácnhau như plain test, json, xml Nhờ đó chúng ta có thể khai thác dữ liệu khôngcầ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