MYSQL로 HIVE Metastore를 설치하고 구성하는 방법
HIVE 메타스토어란 무엇입니까?
Hive Metastore는 Apache Hive와 관련된 메타데이터(열 이름, 데이터 유형, 설명 등)를 저장하는 저장소입니다. MySQL or PostgreSQL. 이 Hive 메타스토어는 관계형 데이터베이스의 테이블을 사용하여 구현됩니다.
사용하는 이유 MySQL Hive에서 Metastore로:
- 기본적으로 Hive에는 Derby 데이터베이스가 메타스토어로 제공됩니다.
- Derby 데이터베이스는 한 번에 단 한 명의 활성 사용자만 지원할 수 있습니다.
- Derby는 프로덕션 환경에서는 권장되지 않습니다.
그래서 해결책 여기있다.
- 백엔드에서 MYSQL을 Meta 저장소로 사용하여 여러 사용자를 동시에 Hive에 연결합니다.
- MYSQL은 독립형 메타스토어에 가장 적합한 선택입니다.
Hive Metastore를 설치하고 구성하는 방법 MySQL 데이터베이스
단계 1) 설치 MySQL 서버
이 단계에서는 두 가지 작업을 수행하겠습니다.
- mysql-server 설치
- mysql-server 및 해당 프로세스 확인
- 사용 sudo apt-get install mysql-server 명령어를 사용하면 MySQL 서버를 다운로드할 수 있습니다.
설치 MySQL 스크린샷과 같이
- 성공적으로 설치를 마친 후, MySQL 아래 스크린 샷과 같이 실행됩니다
단계 2) 설치 MySQL Java 커넥터
설치 MySQL Java 커넥터. 이는 Java 종속성 및 연결 목적을 위한 것입니다.
단계 3) 커넥터에 대한 소프트 링크 만들기
Hive lib 디렉터리에 커넥터에 대한 소프트 링크를 생성합니다. 이는 사이의 소프트 링크를 위한 것입니다. Java 그리고 MySQL.
단계 4) Hive에서 MySQL 저장소 구성
- MySql –u root –p를 입력한 후 비밀번호를 입력합니다.
- 여기서 –u는 루트 사용자 이름을 나타내고, p는 비밀번호를 나타냅니다.
- 위 명령을 입력한 후 사용자는 유효한 비밀번호를 입력하고 Enter를 클릭해야 합니다.
- 그러면 MySQL 셸 모드로 들어갑니다.
단계 5) 아이디와 비밀번호 만들기
MySQL에 대한 사용자 이름과 비밀번호를 생성하고 권한을 부여합니다.
아래와 같이 명령을 실행해야 합니다.
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; mysql> flush privileges;
단계 6) hive-site.xml 구성
- 5단계 후에는 사용자 이름과 비밀번호를 할당하세요. MySQL 데이터베이스 및 주어진 권한.
- 여기서는 연결을 위해 Hive의 일부 속성을 구성합니다. MySQL 데이터 베이스.
위의 스크린샷에서 우리는 다음을 관찰합니다. 여기서 우리는 MYSQL을 Meta store로 설정하는 데 필요할 수 있는 4가지 속성을 정의하고 있습니다. 하이브
이들은 다음과 같습니다 :
- 이 속성은 연결 URL 용도로 사용됩니다. 여기서는 이 속성에 ConnectionURL을 정의합니다. JDBC 연결 역할을 하며 메타스토어 위치도 나타냅니다.
- 이 속성은 연결 드라이버 이름에 대한 것입니다. 여기서 mysql.jdbc.Driver는 값 태그에서 언급해야 하는 존중되는 값입니다.
- 연결 사용자 이름을 정의하는 데 사용되는 속성입니다. 여기서는 "hiveguru"를 사용자 이름으로 정의했습니다.
- 이 속성은 연결 비밀번호를 언급하는 데 사용됩니다. 여기서는 비밀번호를 사용자 비밀번호로 정의했습니다.
hive –site.xml에 속성을 배치한 후 수동으로 저장(Ctrl+S)하고 파일을 닫아야 합니다. 이 파일을 닫은 후 Hive 테이블을 만들고 테이블 세부 정보를 확인해야 합니다. MySQL 저장.
이 코드를 hive-site.xml에 넣으세요.
하이브-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>
7단계) 표 만들기
Hive에 "guru99" 테이블을 만듭니다.
위의 스크린샷에서 우리는 다음을 관찰할 수 있습니다.
- 두 개의 열 이름을 가진 테이블 이름 "guru99" 생성
- 데이터 유형이 하나는 정수이고 다른 하나는 문자열 유형으로 언급된 열 이름입니다.
다음 단계에서는 이것이 MySql에 저장되어 있는지 아닌지 확인해보겠습니다.
단계 8) MySQL 셸 모드로 들어가기
위의 스크린샷에서 우리는 다음을 관찰할 수 있습니다.
- 먼저 데이터베이스를 "메타스토어 사용"으로 사용해야 합니다.
- 메타 저장소를 선택하면 스크린샷에 표시된 대로 "show" tables 명령을 사용하여 여기에 있는 테이블을 확인할 수 있습니다.
- Hive에서 생성된 테이블이 무엇이든 메타데이터는 TBLS에 저장된 테이블에 해당합니다. MySQL 데이터 베이스.
- “Guur99 테이블”은 Hive에 생성되므로 해당 메타데이터는 Hive에 저장됩니다. MySQL TBLS 하에서.
단계 9) TBLS에서 선택 *를 입력하세요.
생성된 테이블이 현재 존재하는지 확인 MySQL 또는
TBLS에서 select *를 입력하면 Hive 셸 모드에서 생성한 테이블이 표시됩니다.
위의 스크린샷에서 다음과 같은 사항을 관찰할 수 있습니다.
- 생성된 테이블 이름 “guru99”는 Hive에 표시될 수 있습니다. MySQL 쉘 모드
- 이 외에도 위 스크린샷에 표시된 것처럼 테이블 생성 시간, 액세스 시간 및 기타 속성과 같은 정보도 제공합니다.