---
title: "Spark 3 버전 사용"
slug: "hadoop-spark-use-vpc"
updated: 2026-05-21T09:01:29Z
published: 2026-05-21T09:03:07Z
canonical: "guide-gov.ncloud-docs.com/hadoop-spark-use-vpc"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Spark 3 버전 사용

VPC 환경에서 이용 가능합니다.

사용자가 임의의 Spark 실행 환경을 구성할 수 있습니다.

이 가이드에서는 Cloud Hadoop에서 Spark 3 버전을 설치하여 Spark 실행 환경을 구성하는 방법을 소개합니다.

## 사전 작업

이 예제는 이미 클라이언트로 적용된 환경에서 실행한다고 가정하에 설명합니다. 서버를 이용하여 클라이언트로 구성해야 하는 경우에만 아래 사전 작업 1~4번을 진행해 주십시오.

### 1. 서버와 클러스터 간의 통신 확인

서버와 클러스터 간의 통신이 가능한지 확인해 주십시오. 서버가 Cloud Hadoop 클러스터가 구성되어 있는 ACG에 등록되어야 합니다. ACG에 대한 자세한 내용은 [ACG 설정](/docs/compute-compute-2-3-vpc) 가이드를 참조해 주십시오.

### 2. Cloud Hadoop 클러스터 호스트명과 IP 정보 등록

Cloud Hadoop 클러스터의 호스트명과 Private IP 정보를 /etc/hosts에 등록해 주십시오. 해당 정보는 **Ambari UI > Hosts**에서 확인할 수 있습니다.

- Ambari UI 접속 및 사용에 대한 자세한 내용은 [Ambari UI](/docs/chadoop-5-vpc) 가이드를 참조해 주십시오.  

![hadoop-chadoop-use-ex2_0-1_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/hadoop-chadoop-use-ex2_0-1_ko.png)
- /etc/hosts에 Cloud Hadoop 클러스터의 호스트명과 Private IP 정보를 등록하는 방법은 아래와 같습니다.

```
# root 사용자
# echo 'IP            호스트명'      >> /etc/hosts
echo  '1**.**.*.*  e-001-*****-**'  >> /etc/hosts
echo  '1**.**.*.*  m-001-*****-**'  >> /etc/hosts
echo  '1**.**.*.*  m-002-*****-**'  >> /etc/hosts
echo  '1**.**.*.*  d-001-*****-**'  >> /etc/hosts
echo  '1**.**.*.*  d-002-*****-**'  >> /etc/hosts
```

### 3. Hadoop 클라이언트 구성

참고

Hadoop 클라이언트 패키지는 이미 클러스터 내 모든 노드에 설치되어 있습니다. 만약 설치되어 있지 않은 경우, 아래의 절차를 통해 설치해 주십시오. 이 과정은 엣지 노드에 SSH로 접속한 상태에서 진행해야 합니다.

Spark에서는 Hadoop의 환경 변수를 사용하기 때문에 Hadoop 클라이언트 구성이 필요합니다. 간단한 repo 설정과 yum 명령어로 hadoop-client 패키지를 설치할 수 있습니다.

hadoop-client 패키지를 설치하는 방법은 다음과 같습니다.

1. 다음 명령어를 사용하여 repo 파일이 아래와 같이 구성되어 있는지 확인해 주십시오.

```
$ cat /etc/yum.repos.d/ambari-nch-1.repo # Cloud Hadoop 2.x

[NCH-3.1-repo-1]
name=NCH-3.1-repo-1
baseurl=http://nch-repo.navercorp.com/yum/nch/redhat/NCH-3.1.1.3.1.2
path=/
enabled=1
gpgcheck=0
[NCH-3.1-GPL-repo-1]
name=NCH-3.1-GPL-repo-1
baseurl=http://nch-repo.navercorp.com/yum/nch/redhat/NCH-GPL-3.1.0.0
path=/
enabled=1
gpgcheck=0
[NCH-UTILS-1.1.0.22-repo-1]
name=NCH-UTILS-1.1.0.22-repo-1
baseurl=http://nch-repo.navercorp.com/yum/nch/redhat/NCH-UTILS-1.1.0.22
path=/
enabled=1
```

```
$ cat /etc/yum.repos.d/ambari-hdp-1.repo # Cloud Hadoop 1.x

[HDP-3.1-repo-1]
name=HDP-3.1-repo-1
baseurl=http://dist.kr.hadoop3.naverncp.com/HDP/centos7/3.x/updates/3.1.0.0
path=/
enabled=1
gpgcheck=0
[HDP-3.1-GPL-repo-1]
name=HDP-3.1-GPL-repo-1
baseurl=http://dist.kr.hadoop3.naverncp.com/HDP-GPL/centos7/3.x/updates/3.1.0.0
path=/
enabled=1
gpgcheck=0
[HDP-UTILS-1.1.0.22-repo-1]
name=HDP-UTILS-1.1.0.22-repo-1
baseurl=http://dist.kr.hadoop3.naverncp.com/HDP-UTILS-1.1.0.22/repos/centos7
path=/
enabled=1
```
2. 다음 명령어를 사용하여 hadoop-client가 생성되었는지 확인해 주십시오.

```
$ yum clean all 
$ yum install hadoop-client
$ curl -u $AMBARI_ID:$AMBARI_PASS -H "X-Requested-By: ambari" -X GET http://$AMBARI_URI:8080/api/v1/clusters/$CLUSTER_NAME/services/HDFS/components/HDFS_CLIENT?format=client_config_tar > hdfs_client_conf.tar.gz
$ tar -xvf hdfs_client_conf.tar.gz
$ sudo cp ~/* /usr/nch/current/hadoop-client/conf/ # Cloud Hadoop 2.x
$ sudo cp ~/* /usr/hdp/current/hadoop-client/conf/ # Cloud Hadoop 1.x
```

### 4. JDK, Python3 설치 여부 확인

JDK와 Python3가 미리 설치되어 있어야 합니다. 이전 Spark 버전은 Python2가 사용 가능했으나 Spark 3.0.0부터는 Python3만 사용할 수 있습니다.

다음 명령어를 실행하여 Python3를 설치해 주십시오.

```
$ yum install -y python3
```

## Spark 3.0.1 버전 적용

### 1. Spark 패키지 다운로드

다음 명령어를 사용하여 서버에서 사용하려는 Spark 패키지를 다운로드하고 압축을 해제해 주십시오.

- Spark 3.0.1 다운로드 페이지: [https://archive.apache.org/dist/spark/spark-3.0.1/](https://archive.apache.org/dist/spark/spark-3.0.1/)
- 이미 Hadoop 클라이언트가 구성된 환경에서 실행하므로 Pre-built with user-provided Apache Hadoop(`spark-3.0.1-bin-without-hadoop.tgz`)을 다운로드한 후 임의의 디렉터리에서 압축을 해제해 주십시오.  

![hadoop-chadoop-use-ex2_1-1_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/hadoop-chadoop-use-ex2_1-1_ko.png)

```
$ wget https://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-without-hadoop.tgz
$ tar xvfz spark-3.0.1-bin-without-hadoop.tgz
```

### 2. Spark 환경 변수 설정

다음 명령어를 사용하여 Spark 환경 변수를 설정하고 압축 해제한 패키지에 Hadoop jar를 복사해 주십시오.

```
# 환경 변수 설정
export SPARK_HOME=/home1/sshuser/spark-3.0.1-bin-without-hadoop
export SPARK_CONF_DIR=/home1/sshuser/spark-3.0.1-bin-without-hadoop/conf
export SPARK_SUBMIT_OPTS="-Dhdp.version=3.1.0.0-78"
export PATH=$SPARK_HOME/bin:$PATH
export SPARK_DIST_CLASSPATH=`$HADOOP_COMMON_HOME/bin/hadoop classpath`

# config 파일 복사
$ sudo cp /usr/hdp/current/spark2-client/conf/* $SPARK_CONF_DIR/

# Hadoop 관련 jar를 Spark jars 디렉터리에 복사해 주십시오.
$ cp -n /usr/nch/current/spark2-client/jars/hadoop-*.jar $SPARK_HOME/jars
```

### 3. 구동 확인

다음 명령어를 사용하여 설치 버전 정보로 구동이 되는지 확인해 주십시오. 아래 화면과 같이 표시되면 Spark 3.0.1을 사용할 수 있는 상태입니다.

```
$ pyspark --version
```

![hadoop-chadoop-use-ex2_1-2_ko](https://cdn.document360.io/f2d93c92-8957-408f-94df-b9b370f76a32/Images/Documentation/hadoop-chadoop-use-ex2_1-2_ko.png)

### 4. Owner 권한 부여

다음 명령어를 사용하여 /user 아래에 사용자 전용 폴더를 생성한 후 Owner 권한을 부여해 주십시오. Spark job은 사용자 계정 {USER}의 폴더가 HDFS의 /user 아래에 있어야 정상적으로 동작합니다.

다음 예시는 USER가 sshuser인 경우입니다.

```
$ sudo -u hdfs hadoop fs -mkdir /user/sshuser
$ sudo -u hdfs hadoop fs -chown -R sshuser:hdfs /user/sshuser/
```

### 5. PySpark, spark-shell 실행

PySpark와 spark-shell을 실행하는 방법은 다음과 같습니다.

1. PySpark 실행 시 아래 옵션을 추가하여 실행해 주십시오.

```
$ pyspark --conf spark.driver.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
--conf spark.yarn.am.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro \
--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
```
2. spark-shell도 아래 명령어로 실행해 주십시오.

```
spark-shell --conf spark.driver.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
--conf spark.yarn.am.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro \
--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
--conf spark.kerberos.access.hadoopFileSystems=hdfs://<사용하려는 네임노드 명시>
```
