Hive - Giới thiệu
Thuật ngữ 'Dữ liệu lớn' được sử dụng cho các bộ sưu tập các bộ dữ liệu lớn bao gồm khối lượng lớn, tốc độ cao và nhiều loại dữ liệu đang tăng lên từng ngày. Sử dụng các hệ thống quản lý dữ liệu truyền thống, rất khó để xử lý Dữ liệu lớn. Do đó, Apache Software Foundation đã giới thiệu một khuôn khổ gọi là Hadoop để giải quyết các thách thức về quản lý và xử lý Dữ liệu lớn.
Hadoop
Hadoop là một khung mã nguồn mở để lưu trữ và xử lý Dữ liệu lớn trong môi trường phân tán. Nó chứa hai mô-đun, một là MapReduce và một là Hệ thống tệp phân tán Hadoop (HDFS).
MapReduce: Đây là một mô hình lập trình song song để xử lý một lượng lớn dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc trên các cụm lớn phần cứng hàng hóa.
HDFS:Hệ thống tệp phân tán Hadoop là một phần của khuôn khổ Hadoop, được sử dụng để lưu trữ và xử lý các tập dữ liệu. Nó cung cấp một hệ thống tệp có khả năng chịu lỗi để chạy trên phần cứng hàng hóa.
Hệ sinh thái Hadoop chứa các dự án con (công cụ) khác nhau như Sqoop, Pig và Hive được sử dụng để trợ giúp các mô-đun Hadoop.
Sqoop: Nó được sử dụng để nhập và xuất dữ liệu đến và đi giữa HDFS và RDBMS.
Pig: Nó là một nền tảng ngôn ngữ thủ tục được sử dụng để phát triển một tập lệnh cho các hoạt động MapReduce.
Hive: Nó là một nền tảng được sử dụng để phát triển các tập lệnh kiểu SQL để thực hiện các hoạt động MapReduce.
Note: Có nhiều cách khác nhau để thực hiện các hoạt động MapReduce:
- Cách tiếp cận truyền thống sử dụng chương trình Java MapReduce cho dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc.
- Phương pháp tiếp cận tập lệnh cho MapReduce để xử lý dữ liệu có cấu trúc và bán cấu trúc bằng Pig.
- Ngôn ngữ truy vấn Hive (HiveQL hoặc HQL) cho MapReduce để xử lý dữ liệu có cấu trúc bằng Hive.
Hive là gì
Hive là một công cụ cơ sở hạ tầng kho dữ liệu để xử lý dữ liệu có cấu trúc trong Hadoop. Nó nằm trên Hadoop để tóm tắt Dữ liệu lớn và giúp dễ dàng truy vấn và phân tích.
Ban đầu Hive được phát triển bởi Facebook, sau này Apache Software Foundation đã tiếp nhận và phát triển thêm dưới dạng mã nguồn mở với tên Apache Hive. Nó được sử dụng bởi các công ty khác nhau. Ví dụ: Amazon sử dụng nó trong Amazon Elastic MapReduce.
Hive không
- Cơ sở dữ liệu quan hệ
- Một thiết kế cho Xử lý giao dịch trực tuyến (OLTP)
- Ngôn ngữ cho các truy vấn thời gian thực và cập nhật cấp hàng
Các tính năng của Hive
- Nó lưu trữ lược đồ trong cơ sở dữ liệu và dữ liệu được xử lý thành HDFS.
- Nó được thiết kế cho OLAP.
- Nó cung cấp ngôn ngữ kiểu SQL để truy vấn được gọi là HiveQL hoặc HQL.
- Nó quen thuộc, nhanh chóng, có thể mở rộng và mở rộng.
Kiến trúc của Hive
Sơ đồ thành phần sau đây mô tả kiến trúc của Hive:
Sơ đồ thành phần này chứa các đơn vị khác nhau. Bảng sau đây mô tả từng đơn vị:
Tên bài | Hoạt động |
---|---|
Giao diện người dùng | Hive là một phần mềm cơ sở hạ tầng kho dữ liệu có thể tạo ra sự tương tác giữa người dùng và HDFS. Các giao diện người dùng mà Hive hỗ trợ là Hive Web UI, dòng lệnh Hive và Hive HD Insight (Trong máy chủ Windows). |
Cửa hàng Meta | Hive chọn các máy chủ cơ sở dữ liệu tương ứng để lưu trữ lược đồ hoặc Siêu dữ liệu của bảng, cơ sở dữ liệu, cột trong bảng, kiểu dữ liệu của chúng và ánh xạ HDFS. |
Công cụ xử lý HiveQL | HiveQL tương tự như SQL để truy vấn thông tin lược đồ trên Metastore. Đây là một trong những phương pháp thay thế cách tiếp cận truyền thống cho chương trình MapReduce. Thay vì viết chương trình MapReduce bằng Java, chúng ta có thể viết một truy vấn cho công việc MapReduce và xử lý nó. |
Công cụ thực thi | Phần kết hợp của Công cụ quy trình HiveQL và MapReduce là Công cụ thực thi Hive. Công cụ thực thi xử lý truy vấn và tạo ra kết quả giống như kết quả MapReduce. Nó sử dụng hương vị của MapReduce. |
HDFS hoặc HBASE | Hệ thống tệp phân tán Hadoop hoặc HBASE là các kỹ thuật lưu trữ dữ liệu để lưu trữ dữ liệu vào hệ thống tệp. |
Làm việc của Hive
Sơ đồ sau mô tả quy trình làm việc giữa Hive và Hadoop.
Bảng sau xác định cách Hive tương tác với khuôn khổ Hadoop:
Bước không. | Hoạt động |
---|---|
1 | Execute Query Giao diện Hive chẳng hạn như Dòng lệnh hoặc Giao diện người dùng Web gửi truy vấn đến Trình điều khiển (bất kỳ trình điều khiển cơ sở dữ liệu nào như JDBC, ODBC, v.v.) để thực thi. |
2 | Get Plan Trình điều khiển cần sự trợ giúp của trình biên dịch truy vấn phân tích cú pháp truy vấn để kiểm tra cú pháp và kế hoạch truy vấn hoặc yêu cầu của truy vấn. |
3 | Get Metadata Trình biên dịch gửi yêu cầu siêu dữ liệu đến Metastore (bất kỳ cơ sở dữ liệu nào). |
4 | Send Metadata Metastore gửi siêu dữ liệu dưới dạng phản hồi tới trình biên dịch. |
5 | Send Plan Trình biên dịch kiểm tra yêu cầu và gửi lại kế hoạch cho trình điều khiển. Đến đây, việc phân tích cú pháp và biên dịch truy vấn đã hoàn tất. |
6 | Execute Plan Trình điều khiển gửi kế hoạch thực thi đến công cụ thực thi. |
7 | Execute Job Bên trong, quá trình thực thi công việc là một công việc MapReduce. Công cụ thực thi sẽ gửi công việc đến JobTracker, nằm trong nút Tên và nó chỉ định công việc này cho TaskTracker, nằm trong nút Dữ liệu. Tại đây, truy vấn thực hiện công việc MapReduce. |
7.1 | Metadata Ops Trong khi thực thi, công cụ thực thi có thể thực hiện các hoạt động siêu dữ liệu với Metastore. |
số 8 | Fetch Result Công cụ thực thi nhận kết quả từ các nút Dữ liệu. |
9 | Send Results Công cụ thực thi gửi các giá trị kết quả đó đến trình điều khiển. |
10 | Send Results Trình điều khiển sẽ gửi kết quả đến Hive Interfaces. |