단일 노드 클러스터 설치

단일 노드 클러스터 설치 (Setting up a Single Node Cluster)

하둡을 처음 접하면 가장 먼저 로컬에 띄워서 동작을 확인하고 싶어져요. 이 문서는 단일 머신에 하둡을 설치·설정해서 MapReduce와 HDFS를 빠르게 써보는 방법을 안내해요. 학습·디버깅 목적에 딱 맞는 출발점이에요.

출처: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

하둡은 실행 모드가 세 가지예요. 로컬(Standalone) 모드는 단일 자바 프로세스로 도는 비분산 모드이고, 의사 분산(Pseudo-Distributed) 모드는 하나의 노드에서 각 데몬을 별도 자바 프로세스로 띄우며, 완전 분산(Fully-Distributed) 모드는 여러 노드로 구성하는 실제 운영 형태예요. 프로덕션 클러스터는 Kerberos로 인증을 보호해야 하지만, 이 문서의 단일 노드 설정은 그 부분은 다루지 않아요.

GNU/Linux가 개발·프로덕션 플랫폼으로 지원되고, Java가 설치돼 있어야 해요. 원격 데몬 관리를 위한 스크립트를 쓰려면 sshsshd가 필요하고, pdsh가 있으면 더 좋아요. 우분투 기준 설치는 $ sudo apt-get install ssh$ sudo apt-get install pdsh로 끝나요. 배포판은 Apache Download Mirrors에서 받으면 돼요.

압축을 풀고 etc/hadoop/hadoop-env.sh에서 export JAVA_HOME=/usr/java/latest처럼 Java 루트를 지정하면 준비가 끝나요. $ bin/hadoop을 실행하면 사용법이 출력돼요.

로컬 모드에서는 $ mkdir input, $ cp etc/hadoop/*.xml input, $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+'처럼 실행해서 grep 예제의 결과를 $ cat output/*로 확인할 수 있어요.

의사 분산 모드로 가려면 설정부터 달라져요. core-site.xml에서 fs.defaultFShdfs://localhost:9000으로, hdfs-site.xml에서 dfs.replication1로 지정해요. 그리고 $ ssh localhost가 패스프레이즈 없이 되는지 확인하세요. 안 되면 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa, $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys, $ chmod 0600 ~/.ssh/authorized_keys로 셋업해요.

이제 $ bin/hdfs namenode -format으로 파일시스템을 포맷하고 $ sbin/start-dfs.sh로 NameNode·DataNode 데몬을 띄워요. 로그는 $HADOOP_LOG_DIR(기본 $HADOOP_HOME/logs)에 쌓이고, NameNode 웹 UI는 기본 http://localhost:9870/에서 볼 수 있어요. HDFS에 $ bin/hdfs dfs -mkdir /user, $ bin/hdfs dfs -mkdir /user/<username>으로 디렉터리를 만들고 $ bin/hdfs dfs -put etc/hadoop/*.xml input으로 파일을 올린 뒤, 예제 잡을 실행하고 $ bin/hdfs dfs -cat output/*로 결과를 확인하세요. 다 쓰면 $ sbin/stop-dfs.sh로 멈춰요.

YARN에서 돌리려면 mapred-site.xmlmapreduce.framework.nameyarn으로, yarn-site.xmlyarn.nodemanager.aux-servicesmapreduce_shuffle로 설정하고 $ sbin/start-yarn.sh로 ResourceManager·NodeManager를 띄워요. ResourceManager 웹 UI는 기본 http://localhost:8088/에서 확인할 수 있어요. 완전 분산 운영은 ClusterSetup 문서를 참고하세요.

더 알아보기

  • ClusterSetup 문서로 완전 분산 클러스터 구성 방법 익히기
  • SecureMode 문서로 Kerberos 보안 적용해 보기