웹사이트 검색

우분투 13.10에 하둡을 설치하는 방법


전제 조건

이 튜토리얼의 유일한 전제 조건은 Ubuntu 13.10 x64가 설치된 VPS입니다.

다음 두 가지 방법 중 하나로 수행할 수 있는 명령줄에서 명령을 실행해야 합니다.

  1. SSH를 사용하여 드롭릿에 액세스합니다.\n
  2. Digital Ocean Droplet Management Panel에서 '콘솔 액세스' 사용

하둡이란 무엇입니까?

Hadoop은 서버 클러스터에 분산된 데이터 세트의 처리를 단순화하는 프레임워크(소프트웨어 라이브러리로 구성됨)입니다. Hadoop의 두 가지 주요 구성 요소는 HDFS와 MapReduce입니다.

HDFS는 모든 데이터를 저장하기 위해 Hadoop에서 사용하는 파일 시스템입니다. 이 파일 시스템은 Hadoop에서 사용 중인 모든 노드에 걸쳐 있습니다. 이러한 노드는 단일 VPS에 있거나 다수의 가상 서버에 분산될 수 있습니다.

MapReduce는 Hadoop의 모든 활동을 조정하는 프레임워크입니다. 클러스터의 다른 노드에 대한 작업 할당을 처리합니다.

Hadoop 사용의 이점

Hadoop의 아키텍처를 사용하면 필요할 때 하드웨어를 확장할 수 있습니다. 데이터 형식의 변경이나 파일 시스템에 있는 응용 프로그램의 처리에 대해 걱정할 필요 없이 새 노드를 점진적으로 추가할 수 있습니다.

Hadoop의 가장 중요한 기능 중 하나는 값싼 상용 서버를 값비싼 서버로 대체하여 막대한 비용을 절약할 수 있다는 것입니다. 이것은 Hadoop이 하드웨어 계층에서 응용 프로그램 계층으로 내결함성 책임을 이전하기 때문에 가능합니다.

하둡 설치

Hadoop을 설치하고 실행하는 것은 매우 간단합니다. 그러나 이 프로세스는 여러 구성 및 설정 파일을 편집해야 하므로 각 단계를 올바르게 수행해야 합니다.

1. 자바 설치

Hadoop을 사용하려면 Java가 설치되어 있어야 하므로 먼저 Java를 설치해 보겠습니다.

apt-get update
apt-get install default-jdk

이 명령은 VPS의 패키지 정보를 업데이트한 다음 Java를 설치합니다. 이러한 명령을 실행한 후 다음 명령을 실행하여 Java가 설치되었는지 확인합니다.

java -version

Java가 설치된 경우 다음 이미지와 같이 버전 정보가 표시됩니다.

2. SSH 인증서 생성 및 설정

Hadoop은 일반적으로 사용자가 암호를 입력해야 하는 SSH(노드에 액세스하기 위해)를 사용합니다. 그러나 다음 명령을 사용하여 SSH 인증서를 만들고 설정하면 이 요구 사항을 제거할 수 있습니다.

ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

이 두 명령 중 첫 번째 명령을 실행한 후 파일 이름을 묻는 메시지가 표시될 수 있습니다. 그냥 비워두고 계속하려면 Enter 키를 누르십시오. 두 번째 명령은 Hadoop이 암호를 묻지 않고 SSH를 사용할 수 있도록 새로 생성된 키를 인증된 키 목록에 추가합니다.

3. Hadoop 가져오기 및 설치

먼저 다음 명령을 사용하여 미러 중 하나에서 Hadoop을 가져옵니다.

wget http://www.motorlogy.com/apache/hadoop/common/current/hadoop-2.3.0.tar.gz

참고: 이 명령은 Hadoop 웹 사이트에 나열된 미러 중 하나에서 다운로드 링크를 사용합니다. 미러 목록은 이 링크에서 찾을 수 있습니다. 원하는 경우 다른 거울을 선택할 수 있습니다. 최신 안정 버전을 다운로드하려면 선택한 미러의 현재 또는 current2 디렉토리에서 hadoop-X.Y.Z.tar.gz 파일을 선택하십시오.

Hadoop 패키지를 다운로드한 후 다음 명령을 실행하여 압축을 풉니다.

tar xfz hadoop-2.3.0.tar.gz

이 명령은 이 패키지의 모든 파일을 hadoop-2.3.0이라는 디렉토리에 추출합니다. 이 자습서에서는 다음 명령을 사용하여 Hadoop 설치를 /usr/local/hadoop 디렉터리로 이동합니다.

mv hadoop-2.3.0 /usr/local/hadoop 

참고: 추출된 폴더의 이름은 다운로드하고 추출한 Hadoop 버전에 따라 다릅니다. 버전이 이 튜토리얼에서 사용된 버전과 다른 경우 위 명령을 적절하게 변경하십시오.

4. 구성 파일 편집 및 설정

Hadoop 설정을 완료하려면 다음 파일을 수정해야 합니다.

  • ~/.bashrc
  • /usr/local/hadoop/etc/hadoop/hadoop-env.sh
  • /usr/local/hadoop/etc/hadoop/core-site.xml
  • /usr/local/hadoop/etc/hadoop/yarn-site.xml
  • /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
  • /usr/local/hadoop/etc/hadoop/hdfs-site.xml

나. 편집 ~/.bashrc

홈 디렉토리의 .bashrc 파일을 편집하기 전에 JAVA_HOME 환경 변수를 설정하기 위해 Java가 설치된 경로를 찾아야 합니다. 이를 위해 다음 명령을 사용합시다.

update-alternatives --config java

그러면 다음과 같은 내용이 표시됩니다.

이 명령으로 표시되는 전체 경로는 다음과 같습니다.

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

JAVA_HOME의 값은 위의 경로에서 /jre/bin/java 앞의 모든 것입니다. 이 경우 /usr/lib/jvm/java-7- openjdk-amd64. 이 단계와 다른 단계에서 이 값을 사용할 것이므로 이를 기록해 둡니다.

이제 nano(또는 선호하는 편집기)를 사용하여 다음 명령을 사용하여 ~/.bashrc를 편집합니다.

nano ~/.bashrc

이렇게 하면 텍스트 편집기에서 .bashrc 파일이 열립니다. 파일 끝으로 이동하여 다음 콘텐츠를 붙여넣거나 입력합니다.

#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END

참고 1: VPS에서 JAVA_HOME의 값이 다른 경우 위 콘텐츠의 첫 번째 export 문을 적절하게 변경해야 합니다.

참고 2: nano를 사용하여 열고 편집한 파일은 Ctrl + X를 사용하여 저장할 수 있습니다. 변경 사항을 저장하라는 메시지가 표시되면 Y를 입력합니다. 파일 이름을 묻는 메시지가 나타나면 Enter 키를 누르십시오.

.bashrc 파일의 끝은 다음과 같아야 합니다.

.bashrc 파일을 저장하고 닫은 후 시스템이 새로 생성된 환경 변수를 인식하도록 다음 명령을 실행합니다.

source ~/.bashrc

위의 내용을 .bashrc 파일에 넣으면 VPS가 시작될 때 이러한 변수를 항상 사용할 수 있습니다.

ii. /usr/local/hadoop/etc/hadoop/hadoop-env.sh 편집

다음 명령을 사용하여 nano로 /usr/local/hadoop/etc/hadoop/hadoop-env.sh 파일을 엽니다.

nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

이 파일에서 JAVA_HOME 변수를 내보내는 줄을 찾습니다. 이 줄을 다음과 같이 변경합니다.

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

참고: VPS에서 JAVA_HOME의 값이 다른 경우 이 줄을 적절하게 변경해야 합니다.

hadoop-env.sh 파일은 다음과 같아야 합니다.

이 파일을 저장하고 닫습니다. hadoop-env.sh 파일에 위의 명령문을 추가하면 Hadoop이 시작될 때마다 JAVA_HOME 변수의 값을 Hadoop에서 사용할 수 있습니다.

iii. /usr/local/hadoop/etc/hadoop/core-site.xml 편집

/usr/local/hadoop/etc/hadoop/core-site.xml 파일에는 Hadoop이 시작할 때 사용하는 구성 속성이 포함되어 있습니다. 이 파일은 Hadoop이 시작하는 기본 설정을 재정의하는 데 사용할 수 있습니다.

다음 명령을 사용하여 nano로 이 파일을 엽니다.

nano /usr/local/hadoop/etc/hadoop/core-site.xml

이 파일에서 태그 사이에 다음 콘텐츠를 입력합니다.

<property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
</property>

core-site.xml 파일은 다음과 같아야 합니다.

이 파일을 저장하고 닫습니다.

iv. /usr/local/hadoop/etc/hadoop/yarn-site.xml 편집

/usr/local/hadoop/etc/hadoop/yarn-site.xml 파일에는 MapReduce가 시작할 때 사용하는 구성 속성이 포함되어 있습니다. 이 파일은 MapReduce가 시작하는 기본 설정을 재정의하는 데 사용할 수 있습니다.

다음 명령을 사용하여 nano로 이 파일을 엽니다.

nano /usr/local/hadoop/etc/hadoop/yarn-site.xml

이 파일에서 태그 사이에 다음 콘텐츠를 입력합니다.

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

yarn-site.xml 파일은 다음과 같아야 합니다.

이 파일을 저장하고 닫습니다.

v. /usr/local/hadoop/etc/hadoop/mapred-site.xml 생성 및 편집

기본적으로 /usr/local/hadoop/etc/hadoop/ 폴더에는 /usr/local/hadoop/etc/hadoop/mapred-site.xml.template이 포함되어 있습니다. mapred-site.xml이라는 이름으로 이름을 바꾸거나 복사해야 하는 파일입니다. 이 파일은 MapReduce에 사용되는 프레임워크를 지정하는 데 사용됩니다.

이는 다음 명령을 사용하여 수행할 수 있습니다.

cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

이 작업이 완료되면 다음 명령을 사용하여 nano로 새로 생성된 파일을 엽니다.

nano /usr/local/hadoop/etc/hadoop/mapred-site.xml

이 파일에서 태그 사이에 다음 콘텐츠를 입력합니다.

<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

mapred-site.xml 파일은 다음과 같아야 합니다.

이 파일을 저장하고 닫습니다.

vi. /usr/local/hadoop/etc/hadoop/hdfs-site.xml 편집

/usr/local/hadoop/etc/hadoop/hdfs-site.xml은 사용 중인 클러스터의 각 호스트에 대해 구성되어야 합니다. 해당 호스트에서 네임노드와 데이터노드로 사용될 디렉토리를 지정하는 데 사용됩니다.

이 파일을 편집하기 전에 이 Hadoop 설치를 위한 namenode와 datanode를 포함할 두 개의 디렉토리를 만들어야 합니다. 이는 다음 명령을 사용하여 수행할 수 있습니다.

mkdir -p /usr/local/hadoop_store/hdfs/namenode
mkdir -p /usr/local/hadoop_store/hdfs/datanode

참고: 이러한 디렉토리를 다른 위치에 생성할 수 있지만 hdfs-site.xml의 내용을 적절하게 수정해야 합니다.

이 작업이 완료되면 다음 명령을 사용하여 nano로 /usr/local/hadoop/etc/hadoop/hdfs-site.xml 파일을 엽니다.

nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml

이 파일에서 태그 사이에 다음 콘텐츠를 입력합니다.

<property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/datanode</value>
 </property>

hdfs-site.xml 파일은 다음과 같아야 합니다.

이 파일을 저장하고 닫습니다.

새 Hadoop 파일 시스템 포맷

위의 단계에서 설명한 모든 구성을 완료한 후 Hadoop 파일 시스템을 사용할 수 있도록 포맷해야 합니다. 이는 다음 명령을 실행하여 수행됩니다.

hdfs namenode -format

참고: 이 작업은 Hadoop 사용을 시작하기 전에 한 번만 수행하면 됩니다. Hadoop을 사용한 후 이 명령을 다시 실행하면 Hadoop 파일 시스템의 모든 데이터가 파괴됩니다.

하둡 시작

남은 작업은 새로 설치된 단일 노드 클러스터를 시작하는 것입니다.

start-dfs.sh

이 명령을 실행하는 동안 다음과 유사한 메시지가 두 번 표시됩니다.

계속 연결하시겠습니까(예/아니오)?

두 프롬프트 모두에 yes를 입력하고 Enter 키를 누릅니다. 이 작업이 완료되면 다음 명령을 실행합니다.

start-yarn.sh

위의 두 명령을 실행하면 Hadoop이 실행됩니다. 다음 명령을 입력하여 이를 확인할 수 있습니다.

jps

이 명령을 실행하면 다음과 유사한 내용이 표시됩니다.

위의 스크린샷에 묘사된 것과 유사한 결과를 볼 수 있다면 이제 VPS에서 실행 중인 Hadoop의 기능적 인스턴스가 있음을 의미합니다.

다음 단계

Hadoop을 사용하도록 설정된 응용 프로그램이 있는 경우 해당 응용 프로그램을 시작하고 새 설치에서 사용할 수 있습니다. 반면에 Hadoop을 둘러보고 탐색하는 중이라면 새 파일 시스템에서 데이터나 파일을 추가/조작하여 느낌을 얻을 수 있습니다.

제출자: Jay