본문 바로가기
Cloud | AI | BigData

[AWS-Hadoop|Hive|Spark] Hive 3.1.2 설치 (Mysql, Hadoop 연동)

by 개폰지밥 2022. 12. 12.
반응형
☞ 관련 글
2022.11.16 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark]AWS 회원가입, 계정 삭제, 비밀번호 변경
2022.12.03 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark]인스턴스 생성, 시작과 종료
2022.12.04 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 인스턴스 putty 접속 + root 접속 + puttygen .ppk 생성 +
2022.12.05 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 계정생성 Java8설치 + selinux해제
2022.12.06 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Haoop3.2 설치(Hadoop 계정)
2022.12.07 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hadoop 3.2 설정파일 설정
2022.12.08 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 인스턴스 복사(AMI 생성) + 이미지/인스턴스 삭제
2022.12.09 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hadoop Name/DataNode 및 Client 서버 기본 설정+ ssh 키생성
2022.12.10 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hdfs 파일 포맷, Hdfs/Yarm 시작 종료
2022.12.10 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Hadoop 구축 핵심 및 에러 정리
2022.12.11 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] yum으로 MariaDB 10.5 설치
2022.12.12 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Hive 3 설치
2022.12.13 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Spark 3 설치
2022.12.14 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] pip install로 jupyter 설치

 

| SystemStructure

11일째인 오늘은 Hive를 설치하겠습니다.

 

목차

1. 하이브 설치 및 환경설정
2. Mysql-Connector , Guava Library 설치 및 업로드
3. hive 환경파일 생성 및 수정
4. HDFS, YARM, Job History 서버 시작
5. HIVE 디렉토리 생성
6. schematool 띄우기
7. HIVE 실행

 

하이브를 쓰는 이유

hadoop으로 하면 맵리우스로 데이터 분석해야 했는데 hive는 DB 쿼리로 분석할 수 있게 됩니다.

 

1. 하이브 설치 및 환경설정

1.1 하이브 설치

[hadoop@client ~]$ cd ~ && wget https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

 

1.2 압축풀기

[hadoop@client ~]$ tar xvf apache-hive-3.1.2-bin.tar.gz

 

1.3 폴더명 변경

[hadoop@client ~]$ mv ./apache-hive-3.1.2-bin ./hive
[hadoop@client ~]$ ls

 

1.4 사용자 환경파일 수정

[hadoop@client ~]$ vi ~/.bashrc

아래 내용 추가

export HIVE_HOME=/home/hadoop/hive
:$HIVE_HOME/bin

[hadoop@client ~]$ source ~/.bashrc

[hadoop@client ~]$ echo $HIVE_HOME

 

2.  Mysql-Connector , Guava Library 설치 및 업로드

2.1 Mysql-Connector 설치

https://dev.mysql.com/downloads/connector/j/?os=26 접속

- Product Version : 8.0.21

- Operating System : Platform Indepedent

   -> 참고로 저는 Redhat 9를 사용하고있습니다.

Download -> mysql-connector-java-8.0.21 압축 해제 -> mysql-connector-java-8.0.21.jar 사용

- 경로 : mysql-connector-java-8.0.21\mysql-connector-java-8.0.21\mysql-connector-java-8.0.21.jar 

잠시 후 File Zilla라는 FTP 프로그램을 이용해서 mysql-connector-java-8.0.21.jar 를 Linux에 업로드합니다.

 

2.2 Guava 설치

https://jar-download.com/artifacts/com.google.guava/guava/29.0-jre/source-code

 

Download guava JAR 29.0-jre ➔ With all dependencies!

com.google.guava guava 29.0-jre compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' //Thanks for using https://jar-download.com libraryDependencies += "com.google.guava" % "guava" % "29.0-jre" //Thanks for using https://jar-download.com g

jar-download.com

Download guava (29.0-jre) 선택 -> jar_files 압축 해제 -> guava-29.0-jre.jar 사용

 

1.6  Mysql-Connector, Guava Library Upload (FileZilla)

FileZiilla가 없으신분들은 아래 사이트에서 FileZilla를 먼저 다운로드 해주세요.

 

서버3대 아이콘 선택 -> 새 사이트 -> 이름 바꾸기(ex:client server)

- 프로토콜: SFTP

- 호스트 : 본인 PUBLIC IP 혹은 DNS (AWS 인스턴스 페이지 참조)

- 포트 : 22 혹은 안적어도 됨

- 사용자 : ec2-user -- aws redhat 사용시, ubuntu는 ubuntu (AWS 인스턴스 페이지 참조)

- 키 파일 : aws 접속시 키 파일 (AWS 인스턴스 페이지 참조)

확인을 누르면 저장이 됩니다. 다시 서버모양 아이콘을 선택해서, 연결하고 싶은 서버를 선택하여 연결하면 됩니다.

업로드하고싶은 파일은 선택 -> 마우스 오른쪽 버튼 -> 업로드

오른쪽 리눅스 서버에 업로드 된것을 확인할 수 있습니다.

현재 업로드된 File은 ec2-user로 접속하여 올렸기 때문에, 권한이 ec2-user로 되어있습니다.

권한을 hadoop으로 바꿔주기 위하여 root로 접속하겠습니다.

[ec2-user@client ~]$ su - --root계정으로 변경
Password: root패스워드

[root@client ~]# cd /home/ec2-user/ --ec2-user 홈데릭토리로 이동
[root@client ec2-user]# ls
guava-29.0-jre.jar  mysql-connector-java-8.0.21.jar
[root@client ec2-user]# mv * /home/hadoop/hive/lib --현재 홈디렉토리에있는 모든것 hive/lib로 옮기기

[root@client ec2-user]# chown -R hadoop:hadoop /home/hadoop/hive/lib --권한 hadoop으로 변경

[hadoop@client ~]$ su - hadoop

[hadoop@client ~]$ cd /home/hadoop/hive/lib
[hadoop@client lib]$ ls guava-*
guava-19.0.jar  guava-29.0-jre.jar
[hadoop@client lib]$ rm guava-19.0.jar --기존에 있던 guava-19.0.jar는 삭제

 

3. hive 환경파일 생성 및 수정

[root@client ec2-user]# su - hadoop
[hadoop@client ~]$ cd /home/hadoop/hive/conf

 

3.1 hive-env.sh 수정

[hadoop@client conf]$ cp hive-env.sh.template hive-env.sh

[hadoop@client conf]$ vi hive-env.sh

맨마지막 줄로 이동 HADOOP_HOME 추가

HADOOP_HOME=/home/hadoop/hadoop

Esc -> Shist + : -> wq

3.2 hive-site.xml 생성

아래 파일을 $HIVE_HOME/conf에 업로드해주세요.

 

hive-site.xml
0.16MB

본인의 /home/hadoop/hive/conf/hive-default.xml.template를 복사해서 hive-site로 사용해도 되지만,

DB등 본인에 맞춰 수정해줘야 합니다.

DirectDB가 아닌 Mysql을 연결할것이기때문에 아래와 같이 수정을 했습니다.

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://namenode:3306/hivedb?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hiveuser</value>
    <description>Username to use against metastore database</description>
  </property>

 

 

4. HDFS, YARM, Job History 서버 시작

[hadoop@Namenode ~]$ start-dfs.sh

[hadoop@secondnode ~]$ start-yarn.sh

[hadoop@Namenode ~]$ mapred --daemon start historyserver

 

5. HIVE 디렉토리 생성

[hadoop@client ~]$ hdfs dfs -mkdir -p /user/hive/warehouse
[hadoop@client ~]$ hdfs dfs -chmod g+w /user/hive/warehouse
[hadoop@client ~]$ hdfs dfs -mkdir /tmp
[hadoop@client ~]$ hdfs dfs -chmod g+w /tmp

저는 /tmp가 이미 만들어져있어서 존재한다고 뜨네요.

 

6. schematool 띄우기

[hadoop@client ~]$ schematool -initSchema -dbType mysql

생략

 

6.1 DB 접속

[hadoop@Namenode ~]$ mysql -uroot -pmysql

 

6.1.1 Table 생성 된것 확인하기

MariaDB [(none)]> use hivedb;


MariaDB [hivedb]> show tables;

 

7. HIVE 실행

[hadoop@hadoop conf]$ hive

반응형

댓글