Cách cài đặt và định cấu hình HIVE Metastore với MYSQL

Di căn HIVE là gì?

Hive metastore là kho lưu trữ siêu dữ liệu (tên cột, kiểu dữ liệu, nhận xét, v.v.) liên quan đến Apache Hive bằng cách sử dụng MySQL or PostgreSQL. Kho lưu trữ Hive này được triển khai bằng cách sử dụng các bảng trong cơ sở dữ liệu quan hệ.

Tại sao sử dụng MySQL trong Hive dưới dạng Metastore:

  • Theo mặc định, Hive đi kèm với cơ sở dữ liệu derby dưới dạng kho lưu trữ.
  • Cơ sở dữ liệu Derby chỉ có thể hỗ trợ một người dùng hoạt động tại một thời điểm
  • Derby không được khuyến khích trong môi trường sản xuất

Nên giải pháp đây là

  • Sử dụng MYSQL làm bộ lưu trữ Meta ở phần phụ trợ để kết nối nhiều người dùng với Hive cùng một lúc
  • MYSQL là sự lựa chọn tốt nhất cho kho lưu trữ độc lập

Cách cài đặt và định cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Bước 1) đặt MySQL của chúng tôi
Ở bước này chúng ta sẽ thực hiện 2 nhiệm vụ

  1. Cài đặt máy chủ mysql
  2. Kiểm tra máy chủ mysql và quy trình của nó
  1. Sử dụng Lệnh sudo apt-get install mysql-server, chúng ta có thể tải xuống máy chủ mysql

đặt MySQL như thể hiện trong ảnh chụp màn hình

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

  1. Sau khi cài đặt thành công ở cuối, MySQL sẽ chạy như trong ảnh chụp màn hình bên dưới

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Bước 2) đặt MySQL Java của DINTEK
Cài đặt MySQL Java Kết nối. Điều này dành cho mục đích kết nối và phụ thuộc java

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Bước 3) Tạo liên kết mềm cho đầu nối
Tạo liên kết mềm cho trình kết nối trong thư mục Hive lib. Đây là liên kết mềm giữa Java và MySql.

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Bước 4) Định cấu hình bộ nhớ MySql trong Hive

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

  • Nhập MySql –u root –p theo sau là mật khẩu
  • Ở đây –u đại diện cho tên người dùng gốc, p biểu thị mật khẩu
  • Sau khi nhập lệnh trên, người dùng phải nhập mật khẩu hợp lệ rồi nhấn enter
  • Sau đó, nó sẽ vào chế độ shell MySql

Bước 5) Tạo tên người dùng và mật khẩu
Tạo tên người dùng và mật khẩu cho MySql, cấp đặc quyền.

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Chúng ta phải thực hiện các lệnh như dưới đây,

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; 
mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';
mysql>  flush privileges;

Bước 6) Định cấu hình hive-site.xml

  • Sau Bước 5, gán tên người dùng và mật khẩu cho MySQL cơ sở dữ liệu và các đặc quyền được cấp.
  • Ở đây chúng tôi sẽ định cấu hình một số thuộc tính trong Hive để có kết nối với MySQL cơ sở dữ liệu.

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Từ ảnh chụp màn hình ở trên, chúng ta quan sát thấy những điều sau. Ở đây chúng ta định nghĩa 4 thuộc tính có thể cần thiết để thiết lập MYSQL làm kho lưu trữ Meta trong Tổ ong

Những điều này như sau:

  1. Thuộc tính này dành cho mục đích URL kết nối. Ở đây chúng tôi đang xác định ConnectionURL trong thuộc tính này. Nó hoạt động như kết nối JDBC và đại diện cho vị trí di căn của nó
  2. Thuộc tính này dành cho tên trình điều khiển kết nối. Ở đây mysql.jdbc.Driver là giá trị được tôn trọng mà chúng ta phải đề cập trong thẻ giá trị
  3. Thuộc tính này được sử dụng để xác định Tên người dùng kết nối. Trong phần này, chúng tôi đã định nghĩa “hiveguru” là tên người dùng
  4. Thuộc tính này được sử dụng để đề cập đến Mật khẩu kết nối. Trong phần này, chúng tôi đã xác định mật khẩu là mật khẩu người dùng.

Sau khi các thuộc tính được đặt trong hive –site.xml, chúng ta phải lưu thủ công (Ctrl+S) và đóng tệp. Sau khi đóng tệp này, chúng ta phải tạo bảng Hive và kiểm tra chi tiết bảng trong MySQL lưu trữ.

Đặt mã này vào Hive-site.xml

Hive-site.xml

<configuration>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value>
		<description>metadata is stored in a MySQL server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
		<description>MySQL JDBC driver class</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>hiveuser</value>
		<description>user name for connecting to mysql server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>hivepassword</value>
		<description>password for connecting to mysql server</description>
	</property>
</configuration>

Bước 7) Tạo bảng
Tạo bảng “guru99” trong Hive.

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  • Tạo tên bảng”guru99″ với XNUMX tên cột
  • Tên các cột được đề cập với kiểu dữ liệu của nó là một là số nguyên và một cột khác là kiểu chuỗi

Trong bước tiếp theo, chúng ta sẽ kiểm tra xem nó có được lưu trữ trong MySql hay không

Bước 8) Nhập vào chế độ shell MySql

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  • Đầu tiên chúng ta phải sử dụng cơ sở dữ liệu là “use metastore”
  • Khi nó chọn cửa hàng meta, chúng ta có thể kiểm tra các bảng có trong này bằng cách sử dụng lệnh “hiển thị” bảng như trong ảnh chụp màn hình
  • Bất kể bảng nào được tạo trong Hive, siêu dữ liệu tương ứng với các bảng đó được lưu trữ trong TBLS trong MySQL cơ sở dữ liệu.
  • “Bảng Guur99” được tạo trong Hive, do đó siêu dữ liệu tương ứng được lưu trữ trong MySQL theo TBLS.

Bước 9) Nhập chọn * từ TBLS
Kiểm tra xem bảng đã tạo có đang hiển thị không MySQL hay không

Cài đặt và cấu hình Hive Metastore để MySQL Cơ sở dữ liệu

Bằng cách nhập select * from TBLS, nó sẽ hiển thị các bảng mà chúng tôi đã tạo ở chế độ Hive shell

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau:

  • Tên bảng “guru99” đã tạo là Hive có thể được hiển thị trong MySQL chế độ vỏ
  • Bên cạnh đó, nó cũng sẽ cung cấp thông tin như thời gian tạo bảng, thời gian truy cập và các thuộc tính khác như trong ảnh chụp màn hình ở trên.