[Hadoop] Hive 설치 및 시작 (MariaDB 기반)

Use_Silver·2022년 1월 28일
1

하둡

목록 보기
9/12

마리아db설치

설치 및 확인, 서비스 시작

dnf install mariadb-server
dnf search maria
systemctl start mariadb.service

mariadb 구성

mysql_secure_installation

Enter current password for root (enter for none): 그냥 Enter

Set root password? [Y/n] Y


New password: 		1234
Re-enter new password:	1234

Remove anonymous users? [Y/n] n
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n] y

실행 확인

https://devocean.sk.com/blog/techBoardDetail.do?ID=163549
mysql -u root -p -> 1234
show databases;
use mysql
show tables;
desc user;

MariaDB [mysql]> select host, user, password from user;
quit


mariadb 시작

  1. 서비스 시작
    systemctl start mariadb.service
  2. MariaDB 실행
    mysql -u root -p
    만약 안되면 -> systemctl restart mariadb.service

  1. 계정 생성
    grant all privileges on *.* to 'hive'@'localhost' identified by 'hive' with grant option;
    grant all privileges on *.* to 'hive'@'%' identified by 'hive' with grant option;
    flush privileges;

  2. 쿼리 실행
    use mysql
    select user,host from user;

    select host from mysql.user where user='hive';

    exit

참고 : https://thinmug.tistory.com/33


mariadb - hive 설정

  1. .bashrc
    HADOOP_HOME 경로 설정
    HADOOP_HOME=/home/hadoop/hadoop-3.2.2
    HIVE_HOME 경로 설정
    HIVE_HOME=/home/hadoop/hive-3.1.2
    PATH에 HADOOPHOME/sbin:HADOOP_HOME/sbin:HIVE_HOME/bin 설정

  2. hive conf hive-env.sh 설정

  • hive가 실행되려면 hive-env.sh가필요
  • template -> cp
  • HADOOP_HOME 변경
  1. hive-default.xml.template 변경
  • 하이브가 실행되려면 hive-site.xml이 필요함
    cp hive-default.xml.template hive-site.xml

    4-1. vi hive-site.xml
    • /tionURL
      - value 값 jdbc:mysql://192.168.56.102:3306/hive?createDatabaseIfNotExist=true 변경 (자기주소 or localhost)
    • /ConnectionDriverName
      - value com.mysql.jdbc.Driver
    • /ConnectionUserName
      - value hive
    • /ConnectionPassword 다음 n
      - value -hive
    • /local.scratchdir, /resource.dir
      - value /home/hadoop/iotmp
    • /current.db
      - value ture
    • /.warehouse.di 확인
  1. HIVE 디렉토리 생성 및 권한 변경
    [hadoop@hadoop00 ~]$ mkdir -p /home/hadoop/iotmp
    [hadoop@hadoop00 ~]$ chmod -R 775 /home/hadoop/iotmp/
  • mariadb-... .jar 파일 /hadoop-3.2.2/lib/ 경로에 복사
  • mysql Connector.tar.gz 설치
    • cd /tmp
    • 파일 다운로드
      wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
    • 파일 압축 해제
      tar xzvf mysql-connector-java-5.1.38.tar.gz
    • mysql connector 경로 변경
      cd mysql-connector-java-5.1.38
      mv mysql-connector-java-5.1.38-bin.jar /home/hadoop/hive-3.1.2/lib
    • mysql connector, mariadb connector 경로 확인
      pwd : /home/hadoop/hive-3.1.2/lib
      ls my*
      ls maria*
  1. hive 기본 디렉터리 생성 및 권한
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod -R 777 /tmp
hdfs dfs -chmod -R 777 /user/hive/warehouse
  1. Hive mysql 스키마 생성
    schematool -initSchema -dbType mysql
    schematool -initSchema -dbType mysql -userName hive -passWord hive
    7-1. 오류 발생

    7-2. 오류 해결
  • guava 19 버전을 변경
[hadoop@hadoop00 lib]$ ls guava*
guava-19.0.jar
[hadoop@hadoop00 lib]$ mv guava-19.0.jar ~guava-19.0.jar
[hadoop@hadoop00 lib]$
[hadoop@hadoop00 lib]$ ls ~*
'~guava-19.0.jar'
[hadoop@hadoop00 lib]$

cp ./guava-27.0-jre.jar / home/hadoop/hive-3.1.2/lib

  • copy 확인
[hadoop@hadoop00 lib]$ ls /home/hadoop/hive-3.1.2/lib/gua*
/home/hadoop/hive-3.1.2/lib/guava-27.0-jre.jar
[hadoop@hadoop00 lib]$

  • 이렇게 헀는데도 안된다면, guava 버전이 변경이 안돼 생기는 오류일 수 있다.
    1) stop-all.sh 하고 start-all.sh 다시
    2) mariadb stop -> 재실행 systemctl stop mariadb.service -> systemctl start mariadb.service

3) /home/hadoop/hive-3.1.2/lib 여기 경로에 ls *gu*
~guava-19.0.jar 얘가 있으면
경로 변경해주기
mv \~guava-19.0.jar ~ (home dir로 변경 )

  • 아래와같이 뜨면 성공 !
    schematool -initSchema -dbType mysql
use mysql
show database


show tables -> 나오면 성공


hive 실습

[hadoop@hadoop00 ~]$ hdfs dfs -ls -R /user
[hadoop@hadoop00 ~]$ hdfs dfs -ls -R /user/hive/warehouse

hive의 목적은 map-reduce

hive 접속

  • csv 데이터를 hive에 입힐 수 있따
  • hive : sql로 분석을 해야하는 사람들을 위한 툴임
  • 이렇게 오래걸려도 괜찮음
  • 테이블 생성 create table T1(id string);

  • 데이터 확인 hive (default)> select * from T1;

  • 데이터 inserthive (default)> insert into T1 values("Tom");

  • 확인 select * from T1;

  • count 함수 select count(*) from T1;

  • 하이브에서 만들어진 데이터 warehouse에 올라감
    [hadoop@hadoop00 ~]$ hdfs dfs -ls -R /user/hive/warehouse

예제 실습



참고 사이트 :
https://devocean.sk.com/blog/techBoardDetail.do?ID=163549
https://thinmug.tistory.com/33 (설치)
https://corock.tistory.com/347 (hive 예제)
http://databaser.net/moniwiki/wiki.php/Hive%EC%98%88%EC%A0%9C%ED%8C%8C%EC%9D%BC (hive 예제)

profile
과정은 힘들지만😨 성장은 즐겁습니다🎵

0개의 댓글