우분투 13.10에 하둡을 설치하는 방법
전제 조건
이 튜토리얼의 유일한 전제 조건은 Ubuntu 13.10 x64가 설치된 VPS입니다.
다음 두 가지 방법 중 하나로 수행할 수 있는 명령줄에서 명령을 실행해야 합니다.
- SSH를 사용하여 드롭릿에 액세스합니다.\n
- 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을 둘러보고 탐색하는 중이라면 새 파일 시스템에서 데이터나 파일을 추가/조작하여 느낌을 얻을 수 있습니다.