본문 바로가기
Data Engineering

가상머신(VMWare, Ubuntu) 기본 세팅(3) - Java, Hadoop, Spark

by nijex 2022. 12. 29.

가상머신을 새로 팔 때마다 그때그때 필요한 혹은 해보고싶은 것들을 까는데, 보통은 spark를 이용한 데이터 처리는 거의 필수(...)여서 java, hadoop, spark는 기본 세트나 다름없이 매번 설치하고 있다.

 

가상머신은 로컬에서 script에 에러가 없는지 확인하는 용도로 사용하는 게 대부분이라, 빠르게 hadoop기반으로 spark를 실행할 수 있도록 하는 최소한의 세팅이다.

 

그리고, 개인의 선택이지만 나는 루트 디렉토리가 아니라 계정 홈에 java, hadoop, spark를 설치하였다. 

 

1. Java 설치

Amazon Corretto Documentation

 

https://docs.aws.amazon.com/corretto/index.html

 

docs.aws.amazon.com

Amazon Corretto 홈페이지에서 원하는 java버전을 선택하여 좌측의 Downloads를 클릭하면 명령어가 나온다.

ubuntu 터미널에 복붙해주자.

나는 java 11 버전을 설치하였다.

# 설치 파일 다운로드
$ wget https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz

# 압축 해제
$ tar xvzf amazon-corretto-11-x64-linux-jdk.tar.gz

# 바로가기 생성
$ ln -s amazon-correto-11.0.15.9.1-linux-x64/ java

java에 대한 환경변수를 설정해주자.

일단 .bashrc를 vim 에디터로 열고,

$ sudo vim ~/.bashrc

.bashrc 파일에 아래의 내용을 추가한 후 저장해주자.

[i]를 눌러 내용을 편집할 수 있고, [esc]+[:wq!]+[Enter]를 눌러 편집한 내용을 저장할 수 있다.

참고로 ubuntu는 내 계정 이름이다.

# java
export JAVA_HOME = /home/ubuntu/java
export PATH=$PATH:$JAVA_HOME/bin

저장 후 새로고침

$ source ~/.bashrc

 

 

2. Hadoop 설치

Apache Hadoop

 

Apache Hadoop

Download Hadoop is released as source code tarballs with corresponding binary tarballs for convenience. The downloads are distributed via mirror sites and should be checked for tampering using GPG or SHA-512. Version Release date Source download Binary dow

hadoop.apache.org

Hadoop Download 페이지에서 원하는 버전의 binary의 link를 복사한 뒤, ubuntu 터미널에서 wget으로 설치해주면 된다.

나는 3.3.3 버전을 설치하였다.

# 설치 파일 다운로드
$ wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz

# 압축 해제
$ tar xvzf hadoop-3.3.3.tar.gz

# 바로가기 생성
$ ln -s hadoop-3.3.3 hadoop

java와 동일한 방식으로 .bashrc에서 환경변수를 추가해주자.

.bashrc 파일을 열어 아래의 내용을 추가한 후 저장해주면 된다.

# hadoop
export HADOOP_HOME=/home/ubuntu/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
	
# hadoop user
export HDFS_NAMENODE_USER=ubuntu
export HDFS_DATANODE_USER=ubuntu
export HDFS_SECONDARYNAMENODE_USER=ubuntu
export YARN_RESOURCEMANAGER_USER=ubuntu
export YARN_NODEMANAGER_USER=ubuntu

hadoop 환경 설정 파일에서 java를 실행하기 위한 기본 설정을 해주어야 한다.

$ cd $HADOOP_CONF_DIR
$ vim hadoop-env.sh

hadoop-env.sh 파일에서 주석을 제거해주고, 수정이 필요하면 수정한 뒤 저장해주면 된다.

# 54번째 줄:
export JAVA_HOME=/home/ubuntu/java

# 58번째 줄:
export HADOOP_HOME=/home/ubuntu/hadoop

# 68번째 줄:
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

# 198번째 줄:
export HADOOP_PID_DIR=$HADOOP_HOME/pids

그 다음으로 포트 설정

$ cd $HADOOP_CONF_DIR
$ vim core-site.xml
<configuration>
	<property>
	    <name>fs.defaultFS</name>
	    <value>hdfs://localhost:9000</value>
	</property>
</configuration>

site 설정

$ cd $HADOOP_CONF_DIR
$ vim hdfs-site.xml
<configuration>
	<property> # 복사본 갯수
		<name>dfs.replication</name>
		<value>1</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/home/ubuntu/hadoop/namenode_dir</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/home/ubuntu/hadoop/datanode_dir</value>
	</property>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>localhost:50090</value>
	</property>
</configuration>

mapreduce로 yarn을 사용하겠다고 명시

$ cd $HADOOP_CONF_DIR
$ vim mapred-site.xml
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

이렇게까지 기본적인 세팅이 끝이다.

포맷을 처음 한 번만 실시해주어야 한다.

# namenode 포맷
$ hdfs namenode -format

# datanode 포맷
$ hdfs datanode -jormat

이제 아래의 명령어를 하둡을 한 번에 켜고 끌 수 있다.

# hadoop 실행
$ start-all.sh

# hadoop 종료
$ stop-all.sh

hadoop이 정상적으로 운용 중인지 확인하려면 jps 명령어를 입력하면 된다.

총 6개의 프로세스가 확인되면 정상 작동 중이다.

$ jps
ResourceManager
DataNode
NodeManager
NameNode
SecondaryNamenode
Jps

 

3. Spark 설치

Downloads | Apache Spark

 

Downloads | Apache Spark

Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS by following these procedures. Note that Spark 3 is pre-built with Scala 2.12 in general and Spark 3.2+ provides

spark.apache.org

Spark Download 페이지에서 원하는 버전을 선택한 후 link를 복사해, ubuntu 터미널에서 wget으로 설치해주면 된다.

나는 3.2.2(without hadoop) 버전을 설치하였다.

# 설치 파일 다운로드
$ wget https://dlcdn.apache.org/spark/spark-3.2.2/spark-3.2.2-bin-without-hadoop.tgz

# 압축 해제
$ tar xvzf saprk-3.2.2-bin-without-hadoop

# 바로가기 생성
$ ln -s saprk-3.2.2-bin-without-hadoop spark

spark도 .bashrc에 아래와 같이 환경변수 설정을 추가해주자.

$ sudo vim ~/.bashrc
# spark
export SPARK_HOME=/home/ubuntu/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath)
$ source ~/.bashrc

spark-env.sh 파일을 만든 후 아래와 같이 실행 환경을 추가한 뒤 저장해주자.

$ cd $SPARK_HOME/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh
export JAVA_HOME=/home/ubuntu/java
export HADOOP_CONF_DIR=/home/ubuntu/hadoop/etc/hadoop
export YARN_CONF_DIR=/home/ubuntu/hadoop/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/home/ubuntu/hadoop/bin/hadoop classpath)
export PYSPARK_PYTHON=/usr/bin/python3
export PYSPARK_DRIVER_PYTHON=/usr/bin/python3

마지막으로 resourcemanager로 yarn을 사용함을 명시해주자.

spark-defaults.conf 파일을 만든 후 최하단에 한 줄 추가해주면 된다.

$ cd $SPARK_HOME/conf
$ cp spark-defaults.conf.template spark-defaults.conf
$ vim spark-defaults.conf
spark.master		yarn

터미널에서 pyspark를 입력해 설치가 잘 되었는지 확인할 수 있다.

$ pyspark

 

댓글