Các cỗ máy tìm kiếm như Google chọn lọc thông tin và trả về kết quả trong tích tắc. Kỹ thuật thường được sử dụng là chia nhỏ nhiệm vụ(job) để hàng loạt máy tính cùng nhau thực hiện. Kỹ thuật này cũng được biết đến với tên gọi Cloud computing. Tìm hiểu hadoop sẽ giúp chúng ta làm quen với Cloud computing.
Apache Hadoop được Doug Cutting, người viết hadoop, đặt tên theo tên con voi đồ chơi của con ông ta, đã nhận được sự ủng hộ và ứng dụng của Yahoo, Google, IBM…Hadoop có thể chạy các ứng dụng với lượng dữ liệu lớn một cách nhanh chóng, chính xác, hiệu quả cao bằng cách lưu và tính toán dữ liệu trên nhiều node một cách độc lập. Hadoop có 2 thành phần chủ yếu là HDFS (Hadoop Distributed File System) và MapReduce.
Nhìn từ bên ngoài, files lưu trên HDFS cũng giống như lưu trong Windows hay Linux. Chúng ta có thể create new, delete, move, rename…Nhưng trên thực tế, dữ liệu được chia ra thành blocks lưu trữ trên rất nhiều DataNode, mỗi block có nhiều bản sao(mặc định là 3) lưu trên nhiều DataNode khác nhau, phòng khi một DataNode nào đó có sự cố thì hệ thống vẫn hoạt động bình thường. Ngoài ra còn có 1(và chỉ 1) NameNode làm nhiệm vụ quản lí dữ liệuvà điều tiết các lệnh đòi hỏi thao tác chúng.
Còn MapReduce giúp cho việc xử lí song song được thuận lợi, ít nhất gồm 3 bộ phận: hàm Map để phân tích data thành các cặp(key, value); hàm Reduce căn cứ vào các key để gom tập hợp các cặp như vậy lại với nhau và đưa ra kết quả; hàm Main để điều tiết. Mỗi một thao tác Map hoặc Reduce được gọi là TaskTracker. Thông thường TaskTrackers được chạy trên DataNodes để giảm đường truyền. Tasktrackers được JobTracker căn cứ vào thông tin của blocks để khởi tạo trên DataNode phù hợp. JobTracker không nhất thiết chạy trên cùng máy với NameNode.
Hãy xem 1 ví dụ đơn giản là thống kê tần số xuất hiện của từng từ trong : hello world, hello hadoop. 1 TaskTracker sẽ Map đoạn “hello world” để cho ra (hello, 1)(world, 1). TaskTracker khác sẽ Map đoạn “hello hadoop” để cho ra (hello, 1)(hadoop, 1). Sau đó 1 TaskTracker khác sẽ Reduce để cho ra kết quả (hello, 2)(world, 1)(hadoop, 1).
Nói chung, Hadoop đang ngày càng được ứng dụng và phát triển rộng rãi tại nhiều nước, tuy nhiên rất ít ở Việt Nam hiện nay. Tài liệu tiếng Việt chưa nhiều, nên hi vọng trong quá tình tìm tòi và nghiên cứu, các bạn sẽ chia sẻ nhiều tài liệu bổ ích để tiết kiệm sức lực cho cộng đồng mạng Việt Nam ta.