본문으로 건너뛰기

클라이언트 서버 연결

HDE 클러스터에 사용자가 생성한 클라이언트 VM을 연결하는 방법은 다음과 같습니다.

Hadoop​

하둡을 연결하는 순서는 다음과 같습니다.

1. 설정 파일 복사​

HDE 클러스터에 설치된 컴포넌트의 설정은 /etc/[컴포넌트 명]/conf에 위치합니다.
각 노드에 설치된 컴포넌트에 따라 설정이 존재하는 경우와 없는 경우가 있을 수 있으며, Hadoop, Hive의 설정을 확인하는 방법은 아래와 같습니다.
(각 컴포넌트의 설정 파일 위치에 접근하여 tar 명령으로 압축 후 scp 명령으로 복사하면 됩니다.)

Hadoop - 설정 파일 복사
########################################
# hadoop 설정 확인
########################################
$ cd /etc/hadoop/conf
$ ls -alh
total 216
drwxr-xr-x 3 ubuntu ubuntu 4096 Sep 26 18:19 ./
drwxr-xr-x 3 ubuntu ubuntu 4096 Sep 26 18:18 ../
-rw-r--r-- 1 ubuntu ubuntu 9610 Sep 26 18:19 capacity-scheduler.xml
-rw-r--r-- 1 ubuntu ubuntu 1335 Jul 29 2022 configuration.xsl
-rw-r--r-- 1 ubuntu ubuntu 2567 Jul 29 2022 container-executor.cfg
-rw-r--r-- 1 ubuntu ubuntu 5017 Sep 26 18:19 core-site.xml
-rw-rw-r-- 1 ubuntu ubuntu 0 Sep 26 18:19 dfs.hosts.exclude
-rw-r--r-- 1 ubuntu ubuntu 3999 Jul 29 2022 hadoop-env.cmd

########################################
# hive 설정 확인
########################################
$ cd /etc/hive/conf
$ ls -alh
total 380
drwxr-xr-x 2 ubuntu ubuntu 4096 Sep 26 18:19 ./
drwxr-xr-x 10 ubuntu ubuntu 4096 Sep 26 18:21 ../
-rw-r--r-- 1 ubuntu ubuntu 1596 Oct 24 2019 beeline-log4j2.properties.template
-rw-r--r-- 1 ubuntu ubuntu 300727 Apr 4 2022 hive-default.xml.template
-rw-rw-r-- 1 ubuntu ubuntu 2194 Sep 26 18:19 hive-env.sh
-rw-r--r-- 1 ubuntu ubuntu 2365 Oct 24 2019 hive-env.sh.template

########################################
# hadoop 설정 압축 및 복사
########################################
# hadoop 설정 압축
$ tar czf hadoop-conf.tgz /etc/hadoop/conf/*

# hadoop 설정 복사
$ scp -i {PRIVATE_KEY 파일} hadoop-conf.tgz ubuntu@{대상 노드 IP}:{PATH}

2. /etc/hosts 설정 추가​

클러스터와 연결을 위해서 사용자 VM에 호스트 정보를 추가해야 합니다.
이를 위해 연결하고자 하는 클러스터의 VM에서 /etc/hosts 파일을 확인하고 이를을 복사합니다.
(사용자 VM의 정보도 클러스터의 각 노드에 추가해 주어야 합니다.)

  • HDE 클러스터의 노드
    • 사용자 VM의 호스트 정보 추가 필요
  • 사용자 VM
    • HDE 클러스터 노드의 정보 추가 필요
Hadoop - /etc/hosts 파일 수정 및 확인
########################################
# /etc/hosts 파일 수정
########################################
$ sudo vi /etc/hosts

########################################
# /etc/hosts 설정 확인
######################################## $ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
172.30.35.48 host-172-30-35-48
172.30.34.235 host-172-30-34-235
172.30.34.124 host-172-30-34-124

3. 파일 다운로드 및 압축 해제​

Java는 다음 버전을 다운로드하고, 하둡은 HDE 버전에 맞게 다운로드합니다.

컴포넌트버전위치
javajdk8
HDE-1.0.1hadoop 2.10.1
HDE-1.1.2hadoop 2.10.2
HDE-2.0.1hadoop 3.3.4
HDE-2.1.0hadoop 3.3.6
HDE-2.2.0hadoop 3.3.6
HDE-2.3.0hadoop 3.3.6
########################
# 파일 다운로드
# Java, Hadoop
$ wget https://objectstorage.kr-central-2.kakaocloud.com/v1/e96c0af292734ab0845d64a061f9c96b/kbp-install-file/component/OpenJDK8U-jdk_x64_linux_hotspot_8u262b10.tar.gz
$ wget https://objectstorage.kr-central-2.kakaocloud.com/v1/e96c0af292734ab0845d64a061f9c96b/kbp-install-file/component/hadoop-3.3.4-kbp.tar.gz


########################
# 압축 해제
$ tar zxf hadoop-3.3.4-kbp.tar.gz
$ tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u262b10.tar.gz

4. 명령어 실행​

압축 해제 후 다음과 같이 명령을 실행할 수 있습니다.

명령어 실행
# 현재 파일 구조 확인
$ ls -alh
total 782620
drwxr-x--- 7 ubuntu ubuntu 4096 Sep 27 08:57 ./
drwxr-xr-x 3 root root 4096 Sep 27 08:54 ../
-rw-r--r-- 1 ubuntu ubuntu 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Jan 6 2022 .bashrc
drwx------ 2 ubuntu ubuntu 4096 Sep 27 08:56 .cache/
-rw-r--r-- 1 ubuntu ubuntu 807 Jan 6 2022 .profile
drwx------ 2 ubuntu ubuntu 4096 Sep 27 08:54 .ssh/
-rw-rw-r-- 1 ubuntu ubuntu 191 Sep 27 08:56 .wget-hsts
-rw-rw-r-- 1 ubuntu ubuntu 103200089 Aug 9 05:14 OpenJDK8U-jdk_x64_linux_hotspot_8u262b10.tar.gz
drwxrwxr-x 3 ubuntu ubuntu 4096 Sep 27 08:57 etc/
drwxr-xr-x 10 ubuntu ubuntu 4096 Jul 29 2022 hadoop-3.3.4/
-rw-rw-r-- 1 ubuntu ubuntu 698117781 Aug 9 05:10 hadoop-3.3.4-kbp.tar.gz
-rw-rw-r-- 1 ubuntu ubuntu 28867 Sep 27 08:57 hadoop-conf.tgz
drwxr-xr-x 8 ubuntu ubuntu 4096 Jul 15 2020 jdk8u262-b10/

# 환경 변수 export
$ export JAVA_HOME=/home/ubuntu/jdk8u262-b10
$ export HADOOP_CONF=/home/ubuntu/etc/hadoop/conf/

# HDFS 조회 명령어 실행
$ ./hadoop-3.3.4/bin/hadoop fs -ls hdfs://host-172-30-35-48/
Found 8 items
drwxrwxrwt - yarn hadoop 0 2023-09-27 00:07 hdfs://host-172-30-35-48/app-logs
drwxrwxrwx - hdfs hadoop 0 2023-09-26 23:18 hdfs://host-172-30-35-48/apps
drwxr-xr-t - yarn hadoop 0 2023-09-26 09:20 hdfs://host-172-30-35-48/ats
drwxr-xr-x - hdfs hadoop 0 2023-09-26 09:20 hdfs://host-172-30-35-48/hadoop
drwxr-xr-x - mapred hadoop 0 2023-09-26 09:20 hdfs://host-172-30-35-48/mr-history
drwxrwxrwt - hdfs hadoop 0 2023-09-26 09:21 hdfs://host-172-30-35-48/tmp
drwxr-xr-x - hdfs hadoop 0 2023-09-26 09:21 hdfs://host-172-30-35-48/user
drwxrwxrwt - yarn hadoop 0 2023-09-26 09:20 hdfs://host-172-30-35-48/var

Hive​

Hive를 연결하는 순서는 다음과 같습니다.

  • 설정 파일 복사
  • /etc/hosts 설정 추가
  • 파일 다운로드 및 압축 해제
  • 명령어 실행
안내

설정 파일 복사와 /etc/hosts 설정은 Hadoop과 동일합니다.

파일 다운로드 및 압축 해제​

Java는 다음 버전을 다운로드하고, Hive은 HDE 버전에 맞게 다운로드합니다.

컴포넌트버전위치
javajdk8
HDE-1.0.1hive 2.3.2
HDE-1.1.2hive 2.3.9
HDE-2.0.1hive 3.1.3
HDE-2.1.0hive 3.1.3
HDE-2.2.0hive 3.1.3
HDE-2.3.0hive 3.1.3

Hive 설정 연결​

Hive 설정을 연결하기 위해서 먼저 Hadoop을 설정해야 합니다.
Hadoop을 설정한 후, 필요한 설정을 연결하기 전에 export하고, 서버의 설정 파일에서 Hive 설정을 연결하여 작업을 진행합니다.

Hive 설정 연결
#######################################
# 환경변수 설정
$ export JAVA_HOME=/home/ubuntu/jdk8u262-b10
$ export HADOOP_HOME=/home/ubuntu/hadoop-3.3.4/
$ export HADOOP_CONF=/home/ubuntu/etc/hadoop/conf/
$ export HIVE_CONF_DIR=/home/ubuntu/etc/hive/conf/

#######################################
# beeline 실행 및 연결 후 database 정보 확인
$ ./apache-hive-3.1.3-bin/bin/beeline
Beeline version 3.1.3 by Apache Hive
beeline> !connect jdbc:hive2://host-172-30-35-48:10000/default
Connecting to jdbc:hive2://host-172-30-35-48:10000/default
Enter username for jdbc:hive2://host-172-30-35-48:10000/default:
Enter password for jdbc:hive2://host-172-30-35-48:10000/default:
Connected to: Apache Hive (version 3.1.3)
Driver: Hive JDBC (version 3.1.3)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://host-172-30-35-48:10000/defau> show databases;
INFO : Compiling command(queryId=ubuntu_20230927090910_62ea1ad1-58b6-49ee-871b-ee07cb7ed32a): show databases
INFO : Semantic Analysis Completed (retrial = false)
INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:database_name, type:string, comment:from deserializer)], properties:null)
INFO : Completed compiling command(queryId=ubuntu_20230927090910_62ea1ad1-58b6-49ee-871b-ee07cb7ed32a); Time taken: 1.181 seconds
INFO : Executing command(queryId=ubuntu_20230927090910_62ea1ad1-58b6-49ee-871b-ee07cb7ed32a): show databases
INFO : Starting task [Stage-0:DDL] in serial mode
INFO : Completed executing command(queryId=ubuntu_20230927090910_62ea1ad1-58b6-49ee-871b-ee07cb7ed32a); Time taken: 0.63 seconds
INFO : OK
+----------------+
| database_name |
+----------------+
| default |
+----------------+
1 row selected (2.467 seconds)

Spark​

파일 다운로드 및 압축 해제​

Java는 다음 버전을 다운로드하고, Spark는 HDE 버전에 맞게 다운로드합니다.

컴포넌트버전위치
javajdk8
HDE-1.0.1spark 2.4.6     
HDE-1.1.2spark 2.4.8
HDE-2.0.1spark 3.2.2
HDE-2.1.0spark 3.5.2
HDE-2.2.0spark 3.5.2
HDE-2.3.0spark 3.5.2

Spark 설정 연결​

Spark 설정 연결
#######################################
# 환경변수 설정
$ export JAVA_HOME=/home/ubuntu/jdk8u262-b10
$ export HADOOP_HOME=/home/ubuntu/hadoop-3.3.4/
$ export HADOOP_CONF=/home/ubuntu/etc/hadoop/conf/
$ export HIVE_CONF_DIR=/home/ubuntu/etc/hive/conf/

# spark-env.sh 에 hadoop classpath 명령으로 출력되는 정보를 추가
# PATH에 hadoop 명령어의 경로가 추가되어 있다면 따로 설정하지 않아도 됨
$ export SPARK_DIST_CLASSPATH="../home/ubuntu/spark/hadoop-3.3.4//share/hadoop/yarn/lib/*:/home/ubuntu/spark/hadoop-3.3.4//share/hadoop/yarn/*.."


#######################################
# /etc/hosts 정보 확인
$ 사용자 VM과 클러스터에 사용자 VM의 호스트 정보, 클러스터의 호스트 정보가 모두 추가되어 있어야 함

$ spark-shell
23/09/29 04:23:12 INFO YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.8
23/09/29 04:23:12 INFO BlockManagerMasterEndpoint: Registering block manager host-172-30-33-233:41301 with 366.3 MiB RAM, BlockManagerId(1, host-172-30-33-233, 41301, None)
Spark context Web UI available at http://host-172-30-33-46:4040
Spark context available as 'sc' (master = yarn, app id = application_1695806330771_0003).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.2.2
/_/

Using Scala version 2.12.15 (OpenJDK 64-Bit Server VM, Java 1.8.0_262)
Type in expressions to have them evaluated.
Type :help for more information.

오류 확인​

  • 자주 발생하는 오류
    • Caused by: java.net.UnknownHostException: host-172-30-33-46
      • 사용자 VM에 클러스터의 호스트 정보, 클러스터의 VM에 사용자 VM의 호스트 정보가 추가되지 않았을 때 발생
    • Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.Filter
      • SPARK_DIST_CLASSPATH에 정보가 정확하게 추가되어 있지 않을 때 발생

HBase​

파일 다운로드 및 압축 해제​

Java는 다음 버전을 다운로드하고, HBase는 HDE 버전에 맞게 다운로드합니다.

컴포넌트버전위치
javajdk8
HDE-1.0.1hbase 1.4.13     
HDE-1.1.2hbase 1.7.1
HDE-2.0.1hbase 2.4.13
HDE-2.1.0hbase 2.6.0
HDE-2.2.0hbase 2.6.0
HDE-2.3.0hbase 2.6.0

HBase 설정 연결​

Hbase 설정을 위해서 Hadoop도 함께 설정해야 합니다.

HBase 설정 연결
#######################################
# 환경변수 설정
export JAVA_HOME=/home/ubuntu/jdk8u262-b10
export HADOOP_CONF_DIR=/home/ubuntu/etc/hadoop/conf/
export HBASE_CONF_DIR=/home/ubuntu/etc/hbase/conf/

$ ./hbase-1.4.13/bin/hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
Version 1.4.13, r38bf65a22b7e9320f07aeb27677e4533b9a77ef4, Sun Feb 23 02:06:36 PST 2020

hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load

hbase(main):002:0> exit