centos7 기준입니다.
PostgreSQL, hadoop이 설치됨을 가정합니다.
서버는 호스트네임기준 mast02서버에 설치할 예정이고,
PostgreSQL 역시 mast02서버에 설치됨을 가정합니다.
hive폴더는 hadoop 유저권한,
hive metaDB(PostgreSQL)는 DB명 hive, DB 유저 hive입니다.
PostgreSQL설치
https://developer-woong.tistory.com/41
HADOOP 설치
https://developer-woong.tistory.com/36
1. Hive에서 사용할 PostgreSQL 유저 및 DB 생성
action server: mast02
user: root
pwd: -
cmd:
su - postgres
# 다른 포트로 설치하였습니다.
psql -p 14325
create user hive password 'hive';
create database hive owner hive;
grant all privileges on database hive to hive;
\connect hive;
\q
# root계정 전환
exit
2. Hive 압축파일 다운로드
action server: mast02
user: root
pwd: -
cmd:
cd /opt/apps
wget https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
# 압축 해제 및 이름 변경
tar xvfz apache-hive-3.1.3-bin.tar.gz
mv apache-hive-3.1.3-bin hive-3.1.3
3. Hive 환경변수 지정 및 권한 변경
action server: mast02
user: root
pwd: -
cmd:
chown -R hadoop:hadoop /opt/apps/hive-3.1.3
vi /etc/profile.d/hive.sh
export HIVE_HOME=/opt/apps/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile.d/hive.sh
# 계정 전환 및 경로 이동
su - hadoop
cd /opt/apps/hive-3.1.3
4. Hive 설정 파일 수정
action server: mast02
user: hadoop
pwd: /opt/apps/hive-3.1.3
cmd:
cp conf/hive-env.sh.template conf/hive-env.sh
# hive 실행 환경 수정
vi conf/hive-env.sh
HADOOP_HOME=/opt/apps/hadoop-3.3.5
export HIVE_AUX_JARS_PATH=/opt/apps/hive-3.1.3/lib/
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
if [ "${HIVE_AUX_JARS_PATH}" != "" ]; then
if [ -f "${HIVE_AUX_JARS_PATH}" ]; then
export HIVE_AUX_JARS_PATH=${HIVE_AUX_JARS_PATH}
elif [ -d "/opt/apps/hive-3.1.3/hcatalog/share/hcatalog" ]; then
export HIVE_AUX_JARS_PATH=/opt/apps/hive-3.1.3/hcatalog/share/hcatalog/hive-hcatalog-core-3.1.3.jar
fi
elif [ -d "/opt/apps/hive-3.1.3/hcatalog/share/hcatalog" ]; then
export HIVE_AUX_JARS_PATH=/opt/apps/hive-3.1.3/hcatalog/share/hcatalog/hive-hcatalog-core-3.1.3.jar
fi
# hive 설정 변경
vi conf/hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:postgresql://mast02:14325/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.postgresql.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
</property>
<property>
<name>hive.security.authorization.sqlstd.confwhitelist.append</name>
<value>mapreduce.*|mapred.*|hadoop.*|user*|password*|hive.*</value>
</property>
<property>
<name>hive.strict.managed.tables</name>
<value>false</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.user.install.directory</name>
<value>/user/</value>
</property>
<property>
<name>hive.exec.parallel</name>
<value>true</value>
</property>
<property>
<name>hive.exec.parallel.thread.number</name>
<value>8</value>
</property>
</configuration>
cp conf/hive-log4j2.properties.template conf/hive-log4j2.properties
chmod 755 conf/hive-log4j2.properties
# hive log 디렉토리지정
vi conf/hive-log4j2.properties
property.hive.log.dir = /data/hive/log
property.hive.log.file = hive.log
# hive log 디렉토리 생성 및 권한 부여
exit
mkdir -p /data/hive/log
chown -R hadoop:hadoop /data/hive/
su - hadoop
cd /opt/apps/hive-3.1.3
5. jar 파일 변경 및 추가
action server: mast02
user: hadoop
pwd: /opt/apps/hive-3.1.3
cmd:
# hadoop의 구아바버전과 동일하게 설정
find ./ -name guava*.jar -> 구아바 파일 찾기
rm -rf ./lib/guava-19.0.jar -> 해당 하이브는 구아바 19버전을 사용하였습니다.
# 하둡 폴더 내의 구아바파일을 복사합니다.
cp ../hadoop-3.3.5/share/hadoop/common/lib/guava-27.0-jre.jar ./lib
# postgresql.jar파일을 업로드합니다.
cp postgresql-42.2.6.jar /opt/apps/hive-3.1.3/lib/
# 업로드 후 파일 권한들 hadoop:hadoop으로 되어있는지 확인해주세요!
6. Hive에서 사용할 HDFS 경로 생성
action server: mast02
user: hadoop
pwd: /opt/apps/hive-3.1.3
cmd:
hdfs dfs -mkdir /user/hive
hdfs dfs -mkdir /user/hive/warehouse
hdfs dfs -mkdir /tmp/hive
hdfs dfs -chmod g+w /user/hive
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod 777 /tmp/hive
7. Hive 초기화 및 기동
action server: mast02
user: hadoop
pwd: /opt/apps/hive-3.1.3
cmd:
./bin/schematool -initSchema -dbType postgres
cd bin
# hiveserver2 기동
nohup hive --service hiveserver2 >> /data/hive/log/hiveserver2.log 2>&1 &
# hive metastore 기동
nohup hive --service metastore >> /data/hive/log/hive-metastore.log 2>&1 &
# 기동 확인
netstat -ntlp | grep 9083
netstat -ntlp | grep 10000
netstat -ntlp | grep 10002
mast02:10002
8. Hive 콘솔진입
action server: mast02
user: hadoop
pwd: /opt/apps/hive-3.1.3/bin
cmd:
# 콘솔 진입
hive
create database test;
use test;
create table first (col1 string);
select * from first;
다음 포스팅에 tez엔진 교체를 다루어보겠습니다!
'BigData > Hive' 카테고리의 다른 글
Hive) 테이블 컬럼명 변경 (0) | 2023.12.28 |
---|---|
apache hive 엔진 tez 교체 (0) | 2023.09.08 |
Hive server, metastore 로그 (0) | 2023.09.07 |
apache tez build error 트러블슈팅 (0) | 2023.07.26 |
apache tez 빌드 (2) | 2023.07.24 |