Hive là một công cụ Phân tích Dữ liệu lớn được sử dụng rộng rãi trong doanh nghiệp và đó là một nơi tuyệt vời để bắt đầu nếu bạn chưa quen với Dữ liệu lớn. Bài học Apache Hive này trình bày về các nguyên tắc cơ bản của Apache Hive, tại sao một tổ ong lại cần thiết, các tính năng của nó và mọi thứ khác mà bạn nên biết.
Đầu tiên chúng ta hãy hiểu khung công tác Hadoop mà Apache Hive được xây dựng trên đó.
Apache Hadoop
Apache Hadoop là miễn phí và mã nguồn mở nền tảng để lưu trữ và xử lý các tập dữ liệu lớn có kích thước từ gigabyte đến petabyte. Hadoop cho phép phân cụm nhiều máy tính để phân tích song song các bộ dữ liệu khổng lồ, thay vì yêu cầu một máy tính lớn duy nhất để lưu trữ và phân tích dữ liệu.
MapReduce và Hệ thống tệp phân tán Hadoop là hai trong số các thành phần:
- Bản đồGiảm - MapReduce là một kỹ thuật lập trình song song để xử lý khối lượng lớn dữ liệu có tổ chức, bán cấu trúc và phi cấu trúc trên các cụm phần cứng hàng hóa.
- HDFS - HDFS (Hệ thống tệp phân tán Hadoop) là một thành phần khung Hadoop lưu trữ và xử lý dữ liệu. Đó là một hệ thống tệp có khả năng chịu lỗi chạy trên phần cứng tiêu chuẩn
Các dự án con (công cụ) khác nhau trong hệ sinh thái Hadoop, bao gồm Sqoop, Pig và Hive, được sử dụng để hỗ trợ các mô-đun Hadoop.
- Tổ ong - Hive là một khuôn khổ để viết các script kiểu SQL thực hiện các phép tính MapReduce.
- Heo - Pig là một ngôn ngữ lập trình thủ tục có thể được sử dụng để tạo tập lệnh cho các quy trình MapReduce.
- sqoop - Sqoop là công cụ nhập và xuất dữ liệu giữa HDFS và RDBMS.
Là gì Tổ ong Apache?
Apache Hive là một mã nguồn mở kho dữ liệu chương trình để đọc, ghi và quản lý các tập dữ liệu khổng lồ được lưu trữ trực tiếp trong Hệ thống tệp phân tán Apache Hadoop (HDFS) hoặc các hệ thống lưu trữ dữ liệu khác như Apache HBase.
Các nhà phát triển SQL có thể sử dụng Hive để tạo các câu lệnh Hive Query Language (HQL) để truy vấn và phân tích dữ liệu có thể so sánh với các câu lệnh SQL thông thường. Nó được tạo ra để giúp lập trình MapReduce dễ dàng hơn bằng cách loại bỏ nhu cầu học và viết mã Java dài. Thay vào đó, bạn có thể viết các truy vấn của mình trong HQL và Hive sẽ xây dựng bản đồ và giảm bớt các chức năng cho bạn.
Giao diện giống SQL của Apache Hive đã trở thành Tiêu chuẩn vàng để thực hiện các tìm kiếm đặc biệt, tóm tắt và phân tích dữ liệu Hadoop. Khi được đưa vào đám mây mạng máy tính, giải pháp này đặc biệt hiệu quả về chi phí và có thể mở rộng, đó là lý do tại sao nhiều công ty, bao gồm Netflix và Amazon, tiếp tục phát triển và cải tiến Apache Hive.
Lịch Sử
Trong thời gian làm việc tại Facebook, Joydeep Sen Sarma và Ashish Sooo đã đồng tạo ra Apache Hive. Cả hai đều nhận ra rằng để tận dụng tối đa Hadoop, họ phải tạo một số tác vụ Java Map-Reduce khá phức tạp. Họ nhận ra rằng họ sẽ không thể đào tạo các nhóm kỹ thuật và phân tích đang mở rộng nhanh chóng của mình về các kỹ năng mà họ cần để tận dụng Hadoop trên toàn công ty. Các kỹ sư và nhà phân tích thường sử dụng SQL làm giao diện người dùng.
Mặc dù SQL có thể đáp ứng phần lớn các nhu cầu phân tích, các nhà phát triển cũng có ý định kết hợp khả năng lập trình của Hadoop. Apache Hive xuất phát từ hai mục tiêu này: một ngôn ngữ khai báo dựa trên SQL cũng cho phép các nhà phát triển đưa vào các tập lệnh và chương trình của riêng họ khi SQL không đủ.
Nó cũng được phát triển để chứa siêu dữ liệu tập trung (dựa trên Hadoop) về tất cả các bộ dữ liệu trong công ty nhằm giúp việc xây dựng các tổ chức theo hướng dữ liệu dễ dàng hơn.
Apache Hive hoạt động như thế nào?
Tóm lại, Apache Hive chuyển đổi chương trình đầu vào được viết bằng ngôn ngữ HiveQL (giống SQL) thành một hoặc nhiều tác vụ Java MapReduce, Tez hoặc Spark. (Tất cả các công cụ thực thi này đều tương thích với Hadoop YARN.) Sau đó, Apache Hive sắp xếp dữ liệu thành các bảng cho HDFS Hệ thống tệp phân tán Hadoop) và thực hiện các tác vụ trên một cụm để nhận được câu trả lời.
Ngày
Các bảng Apache Hive được sắp xếp giống như các bảng trong cơ sở dữ liệu quan hệ được tổ chức, với các đơn vị dữ liệu có kích thước từ lớn hơn đến nhỏ hơn. Cơ sở dữ liệu được tạo thành từ các bảng được chia thành các bộ phận, các bảng này lại được chia thành các nhóm. HiveQL (Ngôn ngữ truy vấn Hive) được sử dụng để truy cập dữ liệu, dữ liệu này có thể được thay đổi hoặc thêm vào. Dữ liệu bảng được tuần tự hóa trong mỗi cơ sở dữ liệu và mỗi bảng có thư mục HDFS riêng.
Kiến trúc
Bây giờ chúng ta sẽ nói về khía cạnh quan trọng nhất của Kiến trúc Hive. Các thành phần của Apache Hive như sau:
Kho hàng - Nó theo dõi thông tin về mỗi bảng, chẳng hạn như cấu trúc và vị trí của nó. Siêu dữ liệu phân vùng cũng được bao gồm trong Hive. Điều này cho phép trình điều khiển theo dõi tiến trình của các tập dữ liệu khác nhau trải rộng trong cụm. Dữ liệu được lưu trữ ở định dạng RDBMS thông thường. Siêu dữ liệu Hive là cực kỳ quan trọng để trình điều khiển duy trì theo dõi dữ liệu. Máy chủ sao lưu sao lưu dữ liệu một cách thường xuyên để nó có thể được phục hồi trong trường hợp mất dữ liệu.
Người lái xe - Các câu lệnh HiveQL được nhận bởi một trình điều khiển, có chức năng như một bộ điều khiển. Bằng cách thiết lập các phiên, trình điều khiển bắt đầu thực hiện câu lệnh. Nó theo dõi tuổi thọ và tiến độ của giám đốc điều hành. Trong quá trình thực thi một câu lệnh HiveQL, trình điều khiển sẽ lưu siêu dữ liệu được yêu cầu. Nó cũng đóng vai trò là điểm thu thập dữ liệu hoặc kết quả truy vấn sau quá trình Rút gọn.
Trình biên dịch - Nó thực hiện biên dịch truy vấn HiveQL. Truy vấn hiện được chuyển đổi thành một kế hoạch thực thi. Các nhiệm vụ được liệt kê trong kế hoạch. Nó cũng bao gồm các bước mà MapReduce phải thực hiện để có được kết quả như được dịch bởi truy vấn. Truy vấn được trình biên dịch của Hive (AST) chuyển đổi thành Cây cú pháp trừu tượng. Chuyển đổi AST thành Đồ thị vòng có hướng dẫn sau khi kiểm tra tính tương thích và lỗi thời gian biên dịch (DAG).
Trình tối ưu hóa - Nó tối ưu hóa DAG bằng cách thực hiện các thay đổi khác nhau trên kế hoạch thực hiện. Nó kết hợp các phép biến đổi để cải thiện hiệu quả, chẳng hạn như biến một đường dẫn các phép nối thành một phép nối duy nhất. Để cải thiện tốc độ, trình tối ưu hóa có thể phân chia các hoạt động, chẳng hạn như áp dụng một phép chuyển đổi cho dữ liệu trước khi thực hiện thao tác giảm.
Công chức - Người thực thi chạy các tác vụ khi quá trình biên dịch và tối ưu hóa kết thúc. Các công việc được điều hành bởi Người thừa hành.
CLI, UI và Thrift Server - Giao diện dòng lệnh (CLI) là giao diện người dùng cho phép người dùng bên ngoài giao tiếp với Hive. Máy chủ tiết kiệm của Hive, tương tự như các giao thức JDBC hoặc ODBC, cho phép các máy khách bên ngoài giao tiếp với Hive qua mạng.
Bảo mật
Apache Hive được tích hợp với bảo mật Hadoop, sử dụng Kerberos để xác thực lẫn nhau giữa máy khách-máy chủ. HDFS chỉ định quyền cho các tệp mới được tạo trong Apache Hive, cho phép bạn phê duyệt bởi người dùng, nhóm và những người khác.
Đặc tính nổi bật
- Hive hỗ trợ các bảng bên ngoài, cho phép bạn xử lý dữ liệu mà không cần lưu trữ trong HDFS.
- Nó cũng cho phép phân đoạn dữ liệu ở cấp bảng để tăng tốc độ.
- Apache Hive đáp ứng xuất sắc nhu cầu giao diện cấp thấp của Hadoop.
- Hive giúp việc tóm tắt, truy vấn và phân tích dữ liệu trở nên dễ dàng hơn.
- HiveQL không yêu cầu bất kỳ kỹ năng lập trình nào; hiểu đơn giản về các truy vấn SQL là đủ.
- Chúng tôi cũng có thể sử dụng Hive để thực hiện các truy vấn đặc biệt để phân tích dữ liệu.
- Nó có thể mở rộng, quen thuộc và có thể thích ứng.
- HiveQL không yêu cầu bất kỳ kỹ năng lập trình nào; hiểu đơn giản về các truy vấn SQL là đủ.
Lợi ích
Apache Hive cho phép báo cáo cuối ngày, đánh giá giao dịch hàng ngày, tìm kiếm đột xuất và phân tích dữ liệu. Thông tin chi tiết toàn diện do Apache Hive cung cấp mang lại lợi thế cạnh tranh đáng kể và giúp bạn đáp ứng nhu cầu thị trường dễ dàng hơn.
Dưới đây là một số lợi ích của việc có sẵn những thông tin như vậy:
- Dễ sử dụng - Với ngôn ngữ giống SQL, việc truy vấn dữ liệu rất dễ hiểu.
- Chèn dữ liệu tăng tốc - Vì Apache Hive đọc lược đồ mà không xác minh loại bảng hoặc định nghĩa lược đồ, dữ liệu không phải đọc, phân tích cú pháp và tuần tự hóa vào đĩa ở định dạng bên trong của cơ sở dữ liệu. Ngược lại, trong cơ sở dữ liệu thông thường, dữ liệu phải được xác thực mỗi khi được thêm vào.
- Khả năng mở rộng vượt trội, tính linh hoạt và hiệu quả chi phí - Bởi vì dữ liệu được lưu trữ trong HDFS, Apache Hive có thể chứa 100 petabyte dữ liệu, làm cho nó trở thành một tùy chọn có khả năng mở rộng hơn nhiều so với một cơ sở dữ liệu thông thường. Apache Hive, là một dịch vụ Hadoop dựa trên đám mây, cho phép khách hàng nhanh chóng quay lên và xuống các máy chủ ảo để đáp ứng khối lượng công việc đang thay đổi.
- Năng lực làm việc rộng rãi - Bộ dữ liệu lớn có thể xử lý tới 100,000 truy vấn mỗi giờ.
Hạn chế
- Nói chung, các truy vấn Apache Hive có độ trễ rất cao.
- Hỗ trợ truy vấn con bị hạn chế.
- Các truy vấn thời gian thực và thay đổi cấp độ hàng không khả dụng trong Apache Hive.
- Không có hỗ trợ cho các quan điểm cụ thể hóa.
- Trong tổ ong, các hành động cập nhật và xóa không được hỗ trợ.
- Không dành cho OLTP (quy trình chuyển tiếp trực tuyến).
Bắt đầu với Apache Hive
Apache Hive là một đối tác Hadoop mạnh mẽ giúp đơn giản hóa và hợp lý hóa quy trình làm việc của bạn. Để tận dụng tối đa Apache Hive, tích hợp liền mạch là điều cần thiết. Bước đầu tiên là đi đến trang mạng.
1. Cài đặt Hive từ bản phát hành ổn định
Bắt đầu bằng cách tải xuống bản phát hành ổn định gần đây nhất của Hive từ một trong các máy nhân bản tải xuống Apache (xem Bản phát hành Hive). Tarball sau đó phải được giải nén. Thao tác này sẽ tạo một thư mục con được gọi là hive-xyz (trong đó xyz là số phát hành):
Đặt biến môi trường HIVE_HOME trỏ tới thư mục cài đặt:
Cuối cùng, thêm $ HIVE_HOME / bin vào PATH
:
2. Chạy Hive
Hive sử dụng Hadoop, vì vậy:
- bạn phải có Hadoop trong đường dẫn của mình HOẶC
3. Hoạt động DLL
Tạo bảng Hive
tạo một bảng có tên là pokes với hai cột, cột đầu tiên là một số nguyên và cột thứ hai là một chuỗi.
Duyệt qua các bảng
Liệt kê tất cả các bảng
Thay đổi và giảm bảng
Có thể thay đổi tên bảng và có thể thêm hoặc thay thế các cột:
Cần lưu ý rằng REPLACE COLUMNS thay thế tất cả các cột hiện có trong khi chỉ thay đổi cấu trúc của bảng chứ không thay đổi dữ liệu. Một SerDe gốc phải được sử dụng trong bảng. REPLACE COLUMNS cũng có thể được sử dụng để xóa các cột khỏi lược đồ của bảng:
Bàn thả
Có nhiều hoạt động và tính năng bổ sung trong Apache Hive mà bạn có thể tìm hiểu bằng cách truy cập trang web chính thức.
Kết luận
Định nghĩa Hive là một giao diện chương trình dữ liệu để truy vấn và phân tích cho các tập dữ liệu khổng lồ được xây dựng trên Apache Hadoop. Các chuyên gia chọn nó thay vì các chương trình, công cụ và phần mềm khác vì nó chủ yếu được thiết kế cho dữ liệu rộng rãi của Hive và dễ sử dụng.
Hy vọng hướng dẫn này sẽ giúp bạn bắt đầu với Apache Hive và làm cho quy trình công việc của bạn hiệu quả hơn. Hãy cho chúng tôi biết trong các ý kiến.
Bình luận