[Hive Homebrew 설치 및 설정]

statco19·2022년 1월 30일
0

Hive Homebrew 설치 및 설정 과정에 대해 기억하기 위해 적어보려고 한다.
Homebrew를 사용한 설치 방법은 간단하다.
(Hadoop이 설치되어 있어야 추후 설정이 가능하다.)

brew install hive

Homebrew를 통해 설치했다면 hive는 /usr/local/Cellar/hive/3.1.2_3/libexecconf 폴더가 존재할 것이다(버전마다 3.x.x 부분은 바꿔줘야 한다).
cd ~
vim ~/.zshrc
.zshrc 파일을 열어 환경변수를 편집해주면 추후에 $HIVE_HOME을 통해 편하게 위의 디렉토리로 들어갈 수 있다.
export $HIVE_HOME=/usr/local/Cellar/hive/3.1.2_3/libexec
source ~/.zshrc

hive를 실행했다면 추가적으로 해줘야 하는 작업이 있다. hive를 한 번도 실행하지 않았다면 이 단계는 건너뛰어도 좋다.

hive를 실행했다면

이미 terminal에서 hive라는 명령을 설정을 따로 하지 않고 실행한 경우 metastore_db 폴더를 삭제해줘야 한다.

cd ~
cd $HIVE_HOME
ls 명령어를 통해 metastore_db 폴더가 이미 존재함을 확인한다.
rm -r metastore_db 명령어로 폴더를 삭제한다.

hive를 실행하지 않았을 경우

설치만 하고 한 번도 실행하지 않았을 경우 metastore_db 폴더가 존재하지 않아 삭제해줄 필요가 없다. 이 이후부터는 hive 실행 여부와 상관없이 설정해줘야 한다.

cd ~
cd $HIVE_HOME
cd conf
cp hive-env.sh.template hive-env.sh

vim hive-env.sh
hive-env.sh 파일에 하둡 디렉토리 주소를 추가한다.
HADOOP_HOME=/usr/local/Cellar/hadoop/3.3.1/libexec
(하둡 역시 Homebrew로 설치한 경우 위의 주소에서 버전만 본인에게 맞게 바꿔주면 된다)

vim hive-site.xml
hive-site.xml 파일이 없을 경우 새로 만들어 주고 아래의 내용을 추가한다. 이미 존재할 경우 아래의 내용이 포함되어 있는지 확인하고 없으면 추가해준다.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse/</value> 
  </property>
  <property>
    <name>hive.cli.print.header</name>
    <value>true</value>
  </property>
  <property>
      <name>hive.metastore.uris</name>
      <value>thrift://localhost:9083</value>
  </property>
  <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
  </property>
</configuration>

Hadoop 실행
cd $HADOOP_HOME/sbin/start-dfs.sh
cd $HADOOP_HOME/sbin/start-yarn.sh

HDFS 디렉토리 생성/권한 부여
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod 777 /tmp/hive
hdfs dfs -chmod g+w /user/hive
hdfs dfs -chmod g+w /user/hive/warehouse

tmp, user, hive, warehouse 폴더가 hdfs 내에 존재하지 않는다고 나올 경우 폴더를 만들어 줘야 한다.
hdfs dfs -ls / home directory에 어떤 폴더가 존재하는지 확인한다.
hdfs dfs -mkdir /user user 폴더를 생성
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /tmp/hive
hdfs dfs -mkdir /user/hive
hdfs dfs -mkdir /user/hive/warehouse

위의 작업이 다 끝났다면 이제 마지막 한 단계가 남았다.

cd $HIVE_HOME/scripts/metastore/upgrade/derby
ls
상당히 많은 hive-schema-x.x.x.derby.sql 파일을 볼 수 있는데 본인의 버전에 맞는 가장 최신 파일을 선택해야 한다. 필자의 경우 hive-schema-3.1.0.derby.sql였다.

vim hive-schema-3.1.0.derby.sql 파일을 열어보면

CREATE FUNCTION "APP"."NUCLEUS_ASCII"...
CREATE FUNCTION "APP"."NUCLEUS_MATCHES" ...
이렇게 생긴 두 문장을 확인할 수 있다. 이 두 문장을 comment out 해줘야 한다. --를 앞에 추가하여 comment out 해준다.
-- CREATE FUNCTION "APP"."NUCLEUS_ASCII"...
-- CREATE FUNCTION "APP"."NUCLEUS_MATCHES" ...

이제 모든 설정이 끝났다.

hive 메타스토어 초기화
cd ~
schematool -initSchema -dbType derby

혹은

cd $HIVE_HOME
./bin/schematool -initSchema -dbType derby

으로 스키마를 초기화 시켜준다.

스키마 초기화가 잘 완료된 이후,
hive --service metastore & 명령을 통해 hive를 실행한다.
jps 명령어를 통해 RunJar가 뜨면 잘 실행된 것이다.

profile
조금씩 나아지는 중입니다!

0개의 댓글