HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

Hệ sinh thái Hadoop - Giới thiệu về các thành phần của Hadoop

Trong blog trước của chúng tôi, chúng tôi đã thảo luận về Giới thiệu Hadoop chi tiết. Bây giờ trong blog này, chúng ta sẽ trả lời Hệ sinh thái Hadoop là gì và vai trò của các Thành phần Hadoop là gì.

Trong hướng dẫn về Thành phần Hadoop này, chúng ta sẽ thảo luận về các thành phần hệ sinh thái khác nhau của họ Hadoop như HDFS, MapReduce, YARN, Hive, HBase, Pig, Zookeeper, v.v.

Tất cả các Thành phần này của Hệ sinh thái Hadoop đều được thảo luận cùng với các tính năng và trách nhiệm của chúng.

Hướng dẫn về Hệ sinh thái Hadoop

Apache Hadoop là công cụ mạnh mẽ nhất của Dữ liệu lớn. Hệ sinh thái Hadoop xoay quanh ba thành phần chính HDFS, MapReduce và YARN. Ngoài các Thành phần Hadoop này, còn có một số thành phần khác của hệ sinh thái Hadoop, đóng một vai trò quan trọng để tăng cường các chức năng của Hadoop.

Bây giờ chúng ta hãy hiểu chi tiết các Thành phần Hadoop khác nhau.

a. HDFS

Hệ thống tệp phân tán Hadoop (HDFS) là hệ thống lưu trữ chính của Hadoop. HDFS lưu trữ các tệp rất lớn chạy trên một nhóm phần cứng hàng hóa.

Nó tuân theo nguyên tắc lưu trữ ít số lượng tệp lớn hơn là số lượng lớn các tệp nhỏ. HDFS lưu trữ dữ liệu một cách đáng tin cậy ngay cả trong trường hợp lỗi phần cứng. Do đó, nó cung cấp khả năng truy cập thông lượng cao vào ứng dụng bằng cách truy cập song song.

Các thành phần của HDFS:

  • Mã Tên - Nó hoạt động như Master trong cụm Hadoop. Namenode lưu trữ siêu dữ liệu, tức là số khối, bản sao và các chi tiết khác. Siêu dữ liệu có trong bộ nhớ trong cái chính. NameNode chỉ định nhiệm vụ cho nút phụ. Nó sẽ triển khai trên phần cứng đáng tin cậy vì nó là trung tâm của HDFS.
  • Mã dữ liệu - Nó hoạt động như Slave trong cụm Hadoop. Trong Hadoop HDFS, DataNode chịu trách nhiệm lưu trữ dữ liệu thực tế trong HDFS. DataNode cũng thực hiện thao tác đọc và ghi theo yêu cầu của khách hàng. DataNodes cũng có thể triển khai trên phần cứng hàng hóa.

b. MapReduce

Hadoop MapReduce là lớp xử lý dữ liệu của Hadoop. Nó xử lý dữ liệu có cấu trúc và phi cấu trúc lớn được lưu trữ trong HDFS. MapReduce cũng xử lý song song một lượng lớn dữ liệu.

Nó thực hiện điều này bằng cách chia công việc (công việc đã nộp) thành một tập hợp các nhiệm vụ độc lập (công việc phụ). Trong Hadoop, MapReduce hoạt động bằng cách chia quá trình thành các giai đoạn:Bản đồ và Thu nhỏ.

  • Bản đồ - Đây là giai đoạn đầu tiên của quá trình xử lý, nơi chúng tôi chỉ định tất cả mã logic phức tạp.
  • Giảm - Đây là giai đoạn thứ hai của quá trình xử lý. Ở đây, chúng tôi chỉ định xử lý nhẹ như tổng hợp / tổng hợp.

c. SỢI

Hadoop YARN cung cấp quản lý tài nguyên. Nó là hệ điều hành của Hadoop. Vì vậy, nó có trách nhiệm quản lý và giám sát khối lượng công việc, thực hiện các biện pháp kiểm soát an ninh. Nó là một nền tảng trung tâm để cung cấp các công cụ quản trị dữ liệu trên các cụm Hadoop.

YARN cho phép nhiều công cụ xử lý dữ liệu như phát trực tuyến thời gian thực, xử lý hàng loạt, v.v.

Các thành phần của YARN:

  • Trình quản lý Tài nguyên - Nó là một thành phần cấp cụm và chạy trên máy Master. Do đó, nó quản lý tài nguyên và lên lịch cho các ứng dụng chạy trên YARN. Nó có hai thành phần:Bộ lập lịch và Trình quản lý ứng dụng.
  • Trình quản lý nút - Nó là một thành phần cấp độ nút. Nó chạy trên mỗi máy nô lệ. Nó liên tục giao tiếp với Trình quản lý tài nguyên để luôn cập nhật

d. Hive

Apache Hive là một hệ thống kho dữ liệu mã nguồn mở được sử dụng để truy vấn và phân tích các tập dữ liệu lớn được lưu trữ trong các tệp Hadoop. Nó xử lý dữ liệu có cấu trúc và bán cấu trúc trong Hadoop.

Hive cũng hỗ trợ phân tích các tập dữ liệu lớn được lưu trữ trong HDFS và cả trong hệ thống tệp Amazon S3 cũng được Hive hỗ trợ. Hive sử dụng ngôn ngữ gọi là HiveQL (HQL), tương tự như SQL. HiveQL tự động dịch các truy vấn giống SQL thành các công việc MapReduce.

e. Con lợn

Nó là một nền tảng ngôn ngữ cấp cao được phát triển để thực thi các truy vấn trên bộ dữ liệu khổng lồ được lưu trữ trong Hadoop HDFS. PigLatin là một ngôn ngữ được sử dụng trong pig rất giống với SQL.

Pig tải dữ liệu, áp dụng các bộ lọc cần thiết và kết xuất dữ liệu ở định dạng bắt buộc. Pig cũng chuyển đổi tất cả hoạt động thành các tác vụ Bản đồ và Rút gọn được xử lý hiệu quả trên Hadoop.

Đặc điểm của lợn:

  • Có thể mở rộng - Người dùng lợn có thể tạo các chức năng tùy chỉnh để đáp ứng các yêu cầu xử lý cụ thể của họ.
  • Tự tối ưu hóa - Vì Pig cho phép hệ thống tự động tối ưu hóa. Vì vậy, người dùng có thể tập trung vào ngữ nghĩa.
  • Xử lý tất cả các loại dữ liệu - Pig phân tích cả có cấu trúc và không có cấu trúc.

f. HBase

Apache HBase là cơ sở dữ liệu NoSQL chạy trên Hadoop. Nó là một cơ sở dữ liệu lưu trữ dữ liệu có cấu trúc trong các bảng có thể có hàng tỷ hàng và hàng triệu cột. HBase cũng cung cấp quyền truy cập thời gian thực để đọc hoặc ghi dữ liệu trong HDFS.

Các thành phần của HBase:

  • HBase Master - Nó không phải là một phần của bộ lưu trữ dữ liệu thực tế. Nhưng nó thực hiện quản trị (giao diện để tạo, cập nhật và xóa bảng.).
  • Máy chủ Vùng - Nó là nút công nhân. Nó xử lý các yêu cầu đọc, ghi, cập nhật và xóa từ máy khách. Máy chủ vùng cũng chạy trên mọi nút trong cụm Hadoop.

g. HCatalog

Nó là lớp quản lý bảng và lưu trữ trên đầu Apache Hadoop. HCatalog là một thành phần chính của Hive. Do đó, nó cho phép người dùng lưu trữ dữ liệu của họ ở bất kỳ định dạng và cấu trúc nào. Nó cũng hỗ trợ các thành phần Hadoop khác nhau để dễ dàng đọc và ghi dữ liệu từ cụm.

Ưu điểm của HCatalog:

  • Cung cấp khả năng hiển thị cho các công cụ lưu trữ và làm sạch dữ liệu.
  • Với sự trừu tượng hóa bảng, HCatalog giải phóng người dùng khỏi chi phí lưu trữ dữ liệu.
  • Bật thông báo về tính khả dụng của dữ liệu.

i. Avro

Đây là một dự án mã nguồn mở cung cấp dịch vụ tuần tự hóa dữ liệu và trao đổi dữ liệu cho Hadoop. Sử dụng tuần tự hóa, các chương trình dịch vụ có thể tuần tự hóa dữ liệu thành các tệp hoặc tin nhắn.

Nó cũng lưu trữ dữ liệu định nghĩa và dữ liệu cùng nhau trong một tin nhắn hoặc tệp. Do đó, điều này giúp các chương trình dễ dàng hiểu động thông tin được lưu trữ trong tệp hoặc tin nhắn Avro.

Avro cung cấp:

  • Tệp vùng chứa, để lưu trữ dữ liệu liên tục.
  • Cuộc gọi thủ tục từ xa.
  • Cấu trúc dữ liệu phong phú.
  • Định dạng dữ liệu nhị phân, nhỏ gọn, nhanh chóng.

j. Tiết kiệm

Apache Thrift là một khung phần mềm cho phép phát triển các dịch vụ đa ngôn ngữ có thể mở rộng. Tiết kiệm cũng được sử dụng cho giao tiếp RPC. Apache Hadoop thực hiện rất nhiều lệnh gọi RPC, vì vậy có khả năng sử dụng Thrift cho hiệu suất.

k. Khoan

Máy khoan được sử dụng để xử lý dữ liệu quy mô lớn. Thiết kế của máy khoan là mở rộng quy mô đến hàng nghìn nút và truy vấn hàng petabyte dữ liệu. Nó cũng là một công cụ truy vấn phân tán có độ trễ thấp dành cho các tập dữ liệu quy mô lớn.

Công cụ này cũng là công cụ truy vấn SQL phân tán đầu tiên có mô hình không có giản đồ.

Đặc điểm của máy khoan :

  • Kiểm tra siêu dữ liệu phi tập trung - Drill không có yêu cầu siêu dữ liệu tập trung. Người dùng Drill không cần tạo và quản lý bảng trong siêu dữ liệu để truy vấn dữ liệu.
  • Tính linh hoạt - Khoan cung cấp mô hình dữ liệu cột phân cấp. Nó có thể đại diện cho dữ liệu phức tạp, có độ động cao và cũng cho phép xử lý hiệu quả.
  • Khám phá giản đồ động - Để bắt đầu quá trình thực thi truy vấn Drill không yêu cầu bất kỳ đặc tả kiểu nào cho dữ liệu. Thay vào đó, máy khoan bắt đầu xử lý dữ liệu trong các đơn vị được gọi là lô bản ghi. Nó cũng phát hiện ra giản đồ một cách nhanh chóng trong quá trình xử lý.

l. Mahout

Nó là một khung công tác mã nguồn mở được sử dụng để tạo thuật toán học máy có thể mở rộng. Khi chúng tôi lưu trữ dữ liệu trong HDFS, mahout cung cấp các công cụ khoa học dữ liệu để tự động tìm các mẫu có ý nghĩa trong các tập Dữ liệu lớn đó.

m. Sqoop

Nó chủ yếu được sử dụng để nhập và xuất dữ liệu. Vì vậy, nó nhập dữ liệu từ các nguồn bên ngoài vào các thành phần Hadoop có liên quan như HDFS, HBase hoặc Hive. Nó cũng xuất dữ liệu từ Hadoop sang các nguồn bên ngoài khác. Sqoop hoạt động với các cơ sở dữ liệu quan hệ như Teradata, Netezza, Oracle, MySQL.

n. Flume

Flume thu thập, tổng hợp và di chuyển một lượng lớn dữ liệu từ nguồn gốc của nó một cách hiệu quả và gửi nó trở lại HDFS. Nó có một kiến ​​trúc rất đơn giản và linh hoạt dựa trên việc phân luồng các luồng dữ liệu. Flume có khả năng chịu lỗi, cũng là một cơ chế đáng tin cậy.

Flume cũng cho phép luồng dữ liệu từ nguồn vào môi trường Hadoop. Nó sử dụng một mô hình dữ liệu có thể mở rộng đơn giản cho phép ứng dụng phân tích trực tuyến. Do đó, sử dụng Flume, chúng tôi có thể lấy dữ liệu từ nhiều máy chủ ngay lập tức vào Hadoop.

o. Ambari

Nó là một nền tảng quản lý mã nguồn mở. Nó là một nền tảng để cung cấp, quản lý, giám sát và bảo mật cụm Apache Hadoop. Việc quản lý Hadoop trở nên đơn giản hơn vì Ambari cung cấp nền tảng nhất quán, an toàn để kiểm soát hoạt động.

Lợi ích của Ambari:

  • Cài đặt, cấu hình và quản lý được đơn giản hóa - Nó có thể dễ dàng và hiệu quả tạo và quản lý các cụm trên quy mô lớn.
  • Thiết lập bảo mật tập trung - Ambari định cấu hình bảo mật cụm trên toàn bộ nền tảng. Nó cũng làm giảm sự phức tạp khi quản lý.
  • Có thể mở rộng và tùy chỉnh cao - Ambari rất có thể mở rộng để cung cấp các dịch vụ tùy chỉnh dưới sự quản lý.
  • Khả năng hiển thị đầy đủ về tình trạng cụm - Ambari đảm bảo rằng nhóm hoạt động lành mạnh và khả dụng với phương pháp giám sát toàn diện.

tr. Người giữ vườn thú

Zookeeper trong Hadoop là một dịch vụ tập trung. Nó duy trì thông tin cấu hình, đặt tên và cung cấp đồng bộ hóa phân tán. Nó cũng cung cấp các dịch vụ nhóm. Zookeeper cũng quản lý và điều phối một nhóm máy lớn.

Lợi ích của Zookeeper:

  • Nhanh - Zookeeper nhanh chóng với khối lượng công việc mà việc đọc dữ liệu phổ biến hơn là ghi. Tỷ lệ đọc / ghi lý tưởng là 10:1.
  • Đã đặt hàng - Người giữ vườn thú lưu giữ hồ sơ của tất cả các giao dịch, hồ sơ này cũng có thể được sử dụng cho cấp cao

q. Oozie

Nó là một hệ thống lập lịch trình quy trình làm việc để quản lý các công việc Apache Hadoop. Nó kết hợp nhiều công việc tuần tự thành một đơn vị công việc hợp lý.

Do đó, khung công tác Oozie được tích hợp hoàn toàn với ngăn xếp Apache Hadoop, YARN như một trung tâm kiến ​​trúc. Nó cũng hỗ trợ các công việc Hadoop cho Apache MapReduce, Pig, Hive và Sqoop.

Oozie có thể mở rộng và cũng rất linh hoạt. Người ta có thể dễ dàng bắt đầu, dừng, tạm dừng và chạy lại công việc. Do đó, Oozie làm cho nó rất dễ dàng để chạy lại các quy trình làm việc bị lỗi. Cũng có thể bỏ qua một nút bị lỗi cụ thể.

Có hai loại công việc Oozie cơ bản:

  • Quy trình làm việc Oozie - Nó là để lưu trữ và chạy các quy trình công việc bao gồm các công việc Hadoop, ví dụ:MapReduce, Pig, Hive.
  • Điều phối viên Oozie - Nó chạy các công việc theo quy trình công việc dựa trên lịch trình xác định trước và tính sẵn có của dữ liệu.

Kết luận

Do đó, Hệ sinh thái Hadoop cung cấp các thành phần khác nhau khiến nó trở nên phổ biến. Do các thành phần Hadoop này, một số vai trò công việc Hadoop hiện có sẵn.

Tôi hy vọng hướng dẫn về Hệ sinh thái Hadoop này sẽ giúp bạn rất nhiều để hiểu họ Hadoop và vai trò của họ. Nếu bạn tìm thấy bất kỳ câu hỏi nào, vui lòng chia sẻ với chúng tôi trong khung bình luận.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. InputSplit trong Hadoop MapReduce là gì?

  2. Cơ sở dữ liệu hoạt động trong CDP

  3. Giới thiệu chính sách phân vùng nén Apache HBase Medium Object Storage (MOB)

  4. Cách triển khai mô hình ML vào sản xuất

  5. Sao chép cơ sở dữ liệu hoạt động của Cloudera trong một Nutshell