본문 바로가기

네트워크 및 분산시스템

Hadoop Quick Start


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
참고 자료

http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html 
- 제일 간단한 튜토리얼

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids
- datanode가 동작하지 않을 때 참고해볼 주소

http://www.crobak.org/2011/12/getting-started-with-apache-hadoop-0-23-0/
- datanode 및 namenode를 시작하고 멈추는 커맨드를 참고했음
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


일단 아래를 따라 싱글 노드 설치를 해보면서 간단히 배우도록  한다.
아래 링크에서는 주로 두가지 모드를 다룬다.
  • Local (Standalone) Mode :하나의 프로세스
  • Pseudo-Distributed Mode :여러 개의 프로세스로 실행
http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html 


Pseudo-Distributed Mode 에서
ssh localhost처럼 하기보다
ssh userid@localhost 처럼 로그인 하는 것을 권장함


conf/hadoop-env.sh
 에 JAVA_HOME 을 지정하는 것을 잊지 않도록!


아래와 같이 접근하도록 하려면,
아래 파일을 설정해준다.
conf/core-site.xml
: namenode 관련

conf/hdfs-site.xml: datanode 관련

conf/mapred-site.xmlJobTracker 관련


nameNode  주소를 따라가면 log를 보는 링크가 있음
모든 쉘 스크립트(명령)는 hadoop을 받고 압축을 푼 디렉토리 아래에 있다.
즉 (HADOOP_HOME)/bin

쉘 스크립트을 정리해보면
jps - (java에서 별도로 제공되는 커맨드임.) : 어떤 노드가 실행되고 있는 지 보여준다.
start-all.sh: 모든 노드를 시작
stop-all.sh:모든 노드를 멈춤
hadoop : job을 실행할 때 주로 사용
hadoop namenode -format
: do not execute this without stopping running datanode

hadoop-daemon.sh start namenode : 말 그대로
hadoop-daemon.sh stop namenode : 말 그대로
hdfs: hadoop 에서 새롭게 미는 command인듯 다른 커맨드를 대체할 것으로 예상

hadoop : job을 실행할 때 주로 사용
hadoop fs: 파일 시스템 관련 커맨드
hadoop fs -ls . : 유저의 현재 디렉토리가 아닌 hdfs 기준으로 현재디렉토리 내용을 보여준다.
hadoop fs -put (local path) (hdfs path): local에서 hdfs로. hdfs path는 (hadoop fs -ls .)를 통해 감을 잡도록 한다.
  ex) hadoop fs -put ~/WordCountBin/input input
hadoop fs -get (hdfs-based  possibly relative path) (local path): hdfs 에서 local 시스템으로 복사
  
ex) hadoop fs -get ./output ~/WordCountBin/output



DATA 에서 
 java.io.IOException: Incompatible namespaceIDs 에러가 생겼을 때, 해결법
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids

1. stop the DataNode

2. 
Edit the value of namespaceID in ${hadoop.tmp.dir}/dfs/name/current/VERSION to  match  the value of in ${hadoop.tmp.dir}/dfs/data/current/VERSION [NOTE] hadoop.tmp.dir 경로는 conf/core-site.xml를 참조하거나 기본적으로 /tmp/hadoop-(유저이름)을 참조하면된다. (Hadoop 0.21 기준?)

3. start the DataNode
 
 

'네트워크 및 분산시스템' 카테고리의 다른 글

Baseband(lowpass), bandpass  (0) 2012.05.14
Scalability  (0) 2010.05.16
Distributed computing (분산 컴퓨팅)  (0) 2010.02.02
Node  (0) 2009.12.02
Smart Grid (From Wiki)  (0) 2009.10.30