Hadoop là gì? Tìm hiểu thông tin về công cụ phân tích Big data
Khi tìm hiểu về Big data, không sớm thì muộn bạn sẽ bắt gặp một thuật ngữ có thể khá lạ: Hadoop. Nếu Big Data là kho dữ liệu khổng lồ được sử dụng cho nhiều lĩnh vực trong cuộc sống, thì Hadoop có vai trò là một trong những công nghệ nền tảng phục vụ lưu trữ và truy cập dữ liệu. Nếu muốn hiểu chi tiết về Hadoop và cách thức hoạt động của Hadoop thì bạn nhất định không nên bỏ qua bài viết dưới đây.
Hadoop là gì?
Hadoop là một Apache framework có mã nguồn mở được viết bằng Java. Hadoop cho phép người dùng phát triển các ứng dụng phân tán để lưu trữ, quản lý các tập dữ liệu. Một số ứng dụng có khả năng làm việc với hàng trăm node và hàng nghìn petabyte dữ liệu.
Hadoop được phát triển dựa trên mô hình MapReduce, theo đó ứng dụng được chia thành nhiều phân đoạn khác nhau và chạy song song trên nhiều node khác nhau. Với cơ chế streaming, Hadoop còn cho phép phát triển các ứng dụng ở dạng phân tán dựa trên các ngôn ngữ lập trình C++, Python, Pearl,...
4 module của Hadoop
Hadoop được tạo thành từ các "module", mỗi module đảm nhiệm một nhiệm vụ cụ thể trên một hệ thống máy tính và hệ thống này sử dụng cho việc phân tích Big data.
1. Hệ thống file phân tán
Hai module quan trọng nhất của Hadoop là:
- Distributed File System - Hệ thống tệp phân tán cho phép lưu trữ data ở một định dạng dễ truy cập, trên một số lượng lớn các thiết bị lưu trữ có liên kết với nhau
- MapReduce - cung cấp các công cụ cơ bản sử dụng để "chọc" vào data.
"File system" là phương pháp máy tính sử dụng để lưu trữ data, qua đó data có thể được tìm thấy và sử dụng. Thông thường, hệ điều hành máy tính sẽ xác định các vị trí này, tuy nhiên, hệ thống Hadoop sẽ sử dụng File system của riêng mình và File system này nằm "phía trên" File system của máy chủ - có nghĩa là nó có thể được truy cập từ bất kỳ máy tính nào chạy bất kỳ OS nào được hỗ trợ).
Hadoop được tạo thành từ các "module", mỗi module đảm nhiệm một nhiệm vụ cụ thể
2. MapReduce
MapReduce được đặt tên theo hai thao tác cơ bản mà module này thực hiện - đọc data từ cơ sở dữ liệu, đưa data vào định dạng phù hợp để phân tích (dưới dạng bản đồ - map) và chạy các thuật toán. Ví dụ: đếm số nam giới trên 30 tuổi trong cơ sở dữ liệu khách hàng (reduce).
3. Hadoop Common
Một module khác là Hadoop Common, cung cấp các công cụ (dạng Java) cần thiết cho hệ thống máy tính của người dùng (Windows, Unix hoặc bất cứ OS nào) để đọc dữ liệu được lưu trữ trong hệ thống tệp Hadoop.
4. YARN
Module cuối cùng là YARN, quản lý tài nguyên của các hệ thống lưu trữ dữ liệu và chạy phân tích. Trong một vài năm trở lại đây, nhiều quy trình, thư viện, hay một số tính năng được coi như một phần của Hadoop framework, nhưng Hệ thống tệp phân tán của Hadoop, Hadoop MapReduce, Hadoop Common và Hadoop YARN là bốn nguyên tắc cơ bản nhất về công cụ này.
Đôi nét về lịch sử hình thành Hadoop
Sự phát triển của Hadoop bắt đầu khi một số các kỹ sư phần mềm nhận ra rằng sẽ vô cùng hữu ích để có thể lưu trữ và phân tích các tập dữ liệu lớn hơn nhiều khả năng lưu trữ và truy cập thực tế trên một thiết bị lưu trữ vật lý (như đĩa cứng chẳng hạn).
Khởi đầu của ý tưởng này có thể là do các thiết bị lưu trữ vật lý dần dần sẽ phải lớn hơn, cần nhiều thời gian hơn để thành phần đọc dữ liệu từ đĩa (nằm trong đĩa cứng, có thể là phần "head") di chuyển đến một phân đoạn cụ thể nào đó. Thay vào đó, nhiều thiết bị nhỏ hơn làm việc song song sẽ cho hiệu quả tốt hơn một thiết bị lớn.
Hadoop được Apache Software Foundation phát hành chính thức vào năm 2005
Hadoop được Apache Software Foundation phát hành chính thức vào năm 2005. Apache Software Foundation là tổ chức phi lợi nhuận chuyên sản xuất phần mềm nguồn mở hỗ trợ rất nhiều mạng Internet.
Thêm một thông tin ngoài lề khá thú vị cho bạn: Nếu bạn đang tự hỏi cái tên lạ tai Hadoop đến từ đâu, câu trả lời là Hadoop là tên của một chú voi đồ chơi thuộc về con trai của một trong số những người sáng lập ban đầu!
Cách thức hoạt động của Hadoop
Giai đoạn 1
Một user hay ứng dụng có thể submit một công việc lên Hadoop (Hadoop job client) để đề xuất xử lý các thông tin cơ bản như:
- Nơi lưu (location) các 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 sẽ chứa các dòng lệnh thực thi thông qua các hàm map và reduce.
- Các thiết bị 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) sẽ thiết lập cho JobTracker. Sau đó, master sẽ phân phối các tác vụ đến máy slave để theo dõi và quản lý tiến trình các máy này. Từ đó cung cấp các thông tin về tình trạng và các chẩn đoán liên quan đến job - client.
Giai đoạn 3
TaskTrackers trên các node sẽ tiến hành các tác vụ MapReduce để trả về kết quả output được lưu trữ trong hệ thống file.
Khi thực hiện “chạy Hadoop” thì cũng đồng nghĩa với việc bạn chạy các tập 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 trong mạng của bạn. Thông thường, những trình nền sẽ có vai trò cụ thể, do đó một số chỉ số tồn tại trên máy chủ có thể tồn tại trên nhiều máy chủ khác.
Các daemon khác bao gồm:
- NameNode
- DataNode
- SecondaryNameNode
- JobTracker
- TaskTracker
Ưu điểm nổi bật của Hadoop
Dưới đây là một số ưu điểm nổi bật của Hadoop:
- Hadoop có khả năng thêm các node mới và thay đổi cấu hình của chúng.
- Các doanh nghiệp không cần phải đầu tư quá nhiều vào phần cứng mạnh khi chạy Hadoop. Nhờ vậy có thể tiết kiệm tối đa các chi phí đầu tư ban đầu.
- Hadoop có khả năng xử lý hầu hết những kho dữ liệu có cấu trúc hoặc không có cấu trúc.
- Trong quá trình hoạt động, nếu một node trên hệ thống bị lỗi thì nền tảng của Hadoop sẽ tự động di chuyển sang dạng node dự phòng khác. Nhờ đó mà hệ thống có thể hoạt động xuyên suốt, ổn định hơn.
- Hadoop là mã nguồn mở, có khả năng tương thích với nhiều cấu hình và platform khác nhau.
Ứng dụng của Hadoop
Khả năng linh hoạt của hệ thống Hadoop cho phép các công ty có thể thêm hoặc sửa đổi hệ thống dữ liệu bất cứ khi nào nhu cầu phát sinh sự thay đổi. Họ cũng có thể sử dụng các thành phần giá thành rẻ và có sẵn từ bất kỳ nhà cung cấp nào trên thị trường.
Ngày nay, Hadoop là hệ thống cung cấp lưu trữ và xử lý dữ liệu trên phần cứng được sử dụng rộng rãi nhất - tương đối hiệu quả về chi phí, các hệ thống sẵn có được kết nối với nhau, trái ngược với các giải pháp chuyên biệt đắt tiền được thiết kế riêng cho từng nhu cầu cụ thể.
Theo Bizfly Cloud chia sẻ
BizFly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.
BizFly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của BizFly Cloud có thể truy cập tại đây.
DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud