본문으로 건너뛰기

클라이언트 서버 연결

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

Hadoop

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

  1. 설정 파일 복사
  2. /etc/hosts 설정 추가
  3. 파일 다운로드 및 압축 해제
  4. 명령어 실행

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.0hadoop 2.10.1
HDE-1.1.0hadoop 2.10.1
HDE-1.1.1hadoop 2.10.2
HDE-2.0.0hadoop 3.3.4
########################
# 파일 다운로드
# Java, Hadoop
$ wget https://objectstorage.kr-central-1.kakaocloud.com/v1/c745e6650f0341a68bb73fa222e88e9b/kbp-install-file/component/OpenJDK8U-jdk_x64_linux_hotspot_8u262b10.tar.gz
$ wget https://objectstorage.kr-central-1.kakaocloud.com/v1/c745e6650f0341a68bb73fa222e88e9b/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.0hive 2.3.2
HDE-1.1.0hive 2.3.9
HDE-1.1.1hive 2.3.9
HDE-2.0.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.0spark 2.4.6     
HDE-1.1.0spark 2.4.8
HDE-1.1.1spark 2.4.8
HDE-2.0.0spark 3.2.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.0hbase 1.4.13     
HDE-1.1.0hbase 1.7.1
HDE-1.1.1hbase 1.7.1
HDE-2.0.0hbase 2.4.13

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