Dữ liệu lớn đang trở thành một phần sức mạnh và tài sản quan trọng của mọi công ty, và Hadoop là công nghệ cốt lõi để lưu trữ và truy cập dữ liệu lớn.
Hadoop là gì?
hadoop là một khung công tác apache mã nguồn mở cho phép phát triển các ứng dụng phân tán (xử lý phân tán) để lưu trữ và quản lý các tập dữ liệu lớn. Hadoop triển khai mô hình mapreduce, trong đó một ứng dụng được chia thành các phân đoạn khác nhau chạy song song trên nhiều nút khác nhau. Hadoop được viết bằng Java, nhưng vẫn hỗ trợ C++, Python, Perl thông qua cơ chế phát trực tuyến.
Hadoop giải quyết vấn đề gì?
- Xử lý và sử dụng dữ liệu khổng lồ ở quy mô petabyte.
- Xử lý phân tán, dữ liệu được lưu trữ trên nhiều phần cứng khác nhau, cần xử lý đồng bộ
- Lỗi xảy ra thường xuyên.
- Băng thông giữa phần cứng vật lý chứa dữ liệu phân tán bị hạn chế.
Kiến trúc hadoop là gì?
Một cụm hadoop nhỏ bao gồm 1 nút chính và nhiều nút worker/slave. Toàn bộ cụm bao gồm 2 lớp, một là lớp mapreduce và lớp còn lại là lớp hdfs. Mỗi lớp có các thành phần liên kết riêng. Nút chính bao gồm trình theo dõi công việc, trình theo dõi tác vụ, nút tên và nút dữ liệu. Các nút nô lệ/công nhân bao gồm các nút dữ liệu và trình theo dõi tác vụ. Cũng có thể các nút nô lệ/công nhân chỉ là các nút dữ liệu hoặc tính toán.
khuôn khổ hadoop bao gồm 4 mô-đun:
Hệ thống tệp phân tán 1.hadoop (hdfs)
Đây là một hệ thống tệp phân tán cung cấp khả năng truy cập thông lượng cao cho các ứng dụng khai thác dữ liệu. hệ thống tệp phân tán hadoop (hdfs) là một hệ thống tệp ảo. Khi ta di chuyển 1 file trên hdfs nó sẽ tự động chia thành nhiều phần nhỏ. Các phần nhỏ của tệp sẽ được sao chép và lưu trữ trên nhiều máy chủ khác để có khả năng chịu lỗi và tính sẵn sàng cao.
HDFS sử dụng kiến trúc chính/phụ, trong đó nút chính bao gồm một nút tên quản lý hệ thống tệp siêu dữ liệu và một hoặc nhiều nút dữ liệu phụ lưu trữ dữ liệu thực tế.
Một tệp ở định dạng hdfs được chia thành nhiều khối và các khối này được lưu trữ trong một tập hợp các nút dữ liệu. Các nút tên xác định ánh xạ từ các khối tới các nút dữ liệu. Các nút dữ liệu xử lý nhiệm vụ đọc và ghi dữ liệu hệ thống tệp. Họ cũng quản lý việc tạo, hủy và sao chép các khối thông qua các hướng dẫn từ NameNode.
2. bản đồ hadoop
Đây là một hệ thống dựa trên sợi để xử lý song song các tập dữ liệu lớn. Là một phương pháp chia các vấn đề dữ liệu lớn hơn thành các phần nhỏ hơn và phân phối chúng trên nhiều máy chủ. Mỗi máy chủ có bộ tài nguyên riêng và máy chủ xử lý dữ liệu cục bộ. Khi máy chủ xử lý xong dữ liệu, chúng được gửi trở lại máy chủ chính.
mapreduce bao gồm một trình theo dõi công việc chính (máy chủ) và trình theo dõi tác vụ phụ (máy trạm) trên mỗi nút cụm. Master chịu trách nhiệm quản lý tài nguyên, giám sát mức tiêu thụ tài nguyên và lên lịch các tác vụ trên máy trạm, giám sát chúng và thực hiện lại các tác vụ bị lỗi. Các nô lệ của trình theo dõi tác vụ thực hiện các tác vụ do chủ chỉ định và cung cấp thông tin trạng thái nhiệm vụ để chủ theo dõi.
jobtracker là điểm yếu của hadoop mapreduce. Nếu trình theo dõi công việc bị lỗi, tất cả các công việc liên quan sẽ bị gián đoạn.
3. hadoop chung
Đây là những thư viện và tiện ích java cần thiết được sử dụng bởi các mô-đun khác. Các thư viện này cung cấp hệ thống tệp và các lớp hệ điều hành trừu tượng, đồng thời chứa mã java để khởi động hadoop.
4. sợi hadoop
Quản lý tài nguyên hệ thống để lưu trữ dữ liệu và chạy phân tích.
Hadoop hoạt động như thế nào?
Giai đoạn 1
Người dùng hoặc ứng dụng có thể gửi yêu cầu xử lý và thông tin cơ bản tới hadoop (ứng dụng công việc của hadoop):
- Vị trí lưu trữ dữ liệu đầu vào và đầu ra trên hệ thống dữ liệu phân tán.
- lớp java ở định dạng jar, chứa dòng lệnh để thực thi các chức năng ánh xạ và rút gọn.
- Cài đặt dành riêng cho công việc thông qua các tham số đầu vào.
Giai đoạn 2
Ứng dụng công việc Hadoop gửi công việc (tệp jar, tệp thực thi) và cài đặt trình theo dõi công việc. Sau đó, chủ giao nhiệm vụ cho các nô lệ để theo dõi và quản lý tiến độ của họ, đồng thời cung cấp thông tin chẩn đoán và trạng thái liên quan đến khách hàng công việc.
Giai đoạn 3
Trình theo dõi tác vụ trên các nút khác nhau thực thi tác vụ mapreduce và trả về đầu ra được lưu trữ trong hệ thống tệp.
“Chạy hadoop” có nghĩa là chạy một tập hợp các trình tiện ích – có thể là trình tiện ích hoặc trình tiện ích – trên các máy chủ khác nhau trong mạng của bạn. Daemon có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ và một số có thể tồn tại trên nhiều máy chủ.
Daemon bao gồm:
- Nút tên
- Nút dữ liệu
- Nút tên phụ
- Trình theo dõi công việc
- Trình theo dõi tác vụ
- Mạnh mẽ và có thể mở rộng – có thể thêm và thay đổi các nút mới khi cần.
- Giá cả phải chăng và tiết kiệm chi phí – không cần phần cứng đặc biệt để chạy hadoop.
- Khả năng thích ứng và tính linh hoạt – hadoop được xây dựng có tính đến dữ liệu có cấu trúc và phi cấu trúc.
- Tính sẵn sàng cao và khả năng chịu lỗi – khi một nút bị lỗi, nền tảng hadoop sẽ tự động chuyển sang một nút khác.
- https://www.mastercode.vn/blog/web-development/hadoop-la-gi-huong-dan-cai-dat-cau-hinh-hadoop-tren-windows.84
- https://bigdataviet.wordpress.com/2015/08/08/hadoop-la-gi/
Tại sao nên sử dụng Hadoop?
Ưu điểm của việc sử dụng hadoop:
Tham khảo:
Có thể bạn muốn xem thêm:
26 công cụ và kỹ thuật dữ liệu lớn có thể bạn chưa biết
Dữ liệu lớn là gì? Giới thiệu về dữ liệu lớn
Dữ liệu lớn là gì? Trao đổi với CTO của Data Mart Solutions để tìm hiểu thêm về dữ liệu của bạn