Cấu trúc và thành phần của công nghệ HADOOP !
Trong bài viết trước đây, ITNavi đã chia sẻ cho bạn đọc về Big Data, đây là một kho dữ liệu khổng lồ được sử dụng cho rất nhiều lĩnh vực trong cuộc sống. Tiếp theo, hãy cùng chúng tôi tìm hiểu về Hadoop một trong những công nghệ nền tảng, cốt lõi chuyên dụng cho mục đích lưu trữ cũng như truy cập dữ liệu. Nếu bạn đang cần tìm hiểu Hadoop là gì cũng như cách thức hoạt động của Hadoop thì không nên bỏ qua bài viết mà chúng tôi chia sẻ sau đây.
Định nghĩa Hadoop là gì?
Trước khi đi sâu vào tìm hiểu khái niệm về Hadoop thì cùng tìm hiểu một chút về lịch sử Hadoop hình thành nhé.Khái quát về lịch sử hình thành
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.Bạn đã biết Hadoop là gì chưa?
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. Cái tên Hadoop được đặt bằng tên của một chú voi đồ chơi của một bé trai trong số lập trình viên sáng tạo ra Hadoop ban đầu.Hadoop là gì?
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 bạn phát triển được các ứng dụng phân tán 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ơ chế streaming nên khi được viết bằng ngôn ngữ Java thì Hadoop còn cho phép bạn 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… Nếu có nhu cầu tìm kiếm công việc thì đừng quên tham khảo các hot jobs PythonCấu trúc của Hadoop là gì?
Hadoop hoạt động dựa trên 4 module bao gồm: 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.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 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.Hadoop là một framework quan trọng
Các ưu điểm của Hadoop là gì?
Để hiểu rõ hơn Hadoop là gì thì dưới đây là những ưu điểm nổi bật vốn có của Hadoop.- 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.
Hadoop giải quyết vấn đề gì và hướng giải quyết như thế nào?
Sau khi hiểu rõ Hadoop là gì, để người dùng có thể hiểu rõ hơn về Framework này; sau đây ITNavi sẽ giới thiệu đến bạn các vấn đề mà Hadoop có thể giải quyết.Các vấn đề Hadoop có thể giải quyết
- Hadoop có khả năng làm việc cùng với một khối lượng dữ liệu vô cùng lớn.
- Hầu hết. các nguồn dữ liệu đều có khả năng được xử lý trong một môi trường dạng phân tán, đồng bộ cũng như được lưu trữ tại nhiều phần cứng khác nhau.
- Hadoop sở hữu khả năng băng thông được mọi lưu trữ giữa các phần cứng vật lý của kho dữ liệu có giới hạn cho phép. Chính vì vậy, nó cần được quản lý cũng như nâng cấp sao cho kịp thời nhất.
Hướng giải quyết của Hadoop
- Thực hiện nhiệm vụ quản lý các file phân tán: HDFS (Hadoop Distributed File System) được giao nhiệm vụ chia nhỏ các kho dữ liệu thành nhiều phần khác nhau và những dữ liệu này đều sẽ được quản lý sao cho có hệ thống nhất.
- Mô hình MapReduce: Đây là một trong những mô hình quen thuộc của Hadoop. Nó được phân công thực hiện chia nhỏ các task thành nhiều phần khác nhau để có thể dễ dàng xử lý hơn. Những task này đều sẽ được xử lý song song dựa trên các Node CPU khác nhau và sẽ được đồng bộ với máy chủ quản lý Master Node.
Hadoop hoạt động ra sao?
Các giai đoạn hoạt động của Hadoop?
Giai đoạn 1
Các user hoặc ứng dụng đều sẽ submit được một công việc lên Hadoop (hadoop job client) để có thể đề xuất các yêu cầu xử lý thông tin cơ bản như:- Nơi lưu các dữ liệu input, output trên hệ thống các dữ liệu thuộc dạng phân tán.
- Hầu hết, các java class theo kiểu định dạng jar đều sẽ chứa những dòng lệnh có khả năng thực thi thông qua các hàm map và reduce.
- Những thiết bị cụ thể hoặc liên quan đến các job đều thông qua những thông số truyền vào.
Giai đoạn 2
Hadoop job client submit job sẽ thiết lập cho JobTracker; sau đó, master sẽ thực hiện các công việc như phân phối cho các tác vụ đến máy slave để có thể theo dõi cũng như quản lý được các tiến trình hoạt động của các nhà máy này. Từ đó, sẽ liên tiếp thực hiện việc cung cấp các thông tin liên quan đến việc chẩn đoán các tình trạng có liên quan đến job-client.Giai đoạn 3
TaskTrackers được nằm trên các node sẽ tiến hành thực thi cho các tác vụ MapReduce để có thể trả về được những kết quả thuộc dạng output đã được lưu trữ ngay trong hệ thống file. Khi thực hiện chạy Hadoop thì cũng đồng nghĩa là bạn đang chạy các tập trình nền hoặc những chương trình thuộc dạng thường trú khác ngay trên các máy chủ khác nhau nằm trên mạng của bạn. Các trình nền này thường sẽ có những vai trò cụ thể nên những chỉ số tồn tại trên máy chủ có thể tồn tại ở nhiều máy chủ khác nhau. Một số daemon khác bao gồm:- NameNode
- DataNode
- SecondaryNameNode
- JobTracker
- TaskTracker