Experiences/Hadoop

[!] Pseudo-distributed 모드에서 WordCount 에러

프로그래머 2012. 8. 31. 17:51

Error 1

localhost:9000에 관련된 오류에 대해서 한번 해결해보자.



혹시 위와 같은 화면이 나타났던가? 그렇다면 이것이 어떤 문제인지 한번 알아보고, 해결해보자.



Call to localhost/127.0.0.1:9000 failed on connection exception : 9000번 포트에 접속을 실패했다는 소리같다.


어떤 문제일까? 바로 정답은.. 하둡 서버를 Start하지 않아서 생긴 문제이다.


# bin/start-all.sh  를 통해서 다시 시작해주고 모든 데몬이 성공적으로 실행되었는지 확인하자.


서버를 시작해줬는데도 혹시 Retrying connect to server 에러가 나타난다면, 그것은 아마도 방화벽 문제일 가능성이 크다.

그렇다면 방화벽 설정에 대해서도 한번 공부해보자!

NameNode는 9000번 포트, Jobtracker는 9001번 포트를 사용했으니, 9000번 9001번 포트를 한번 열어줘보자.


먼저, root 계정으로 서버에 따로 접속한 후에, --port=22:tcp 아래 부분에 다음을 추가 시켜준다.


--port=9000:tcp

--port=9001:tcp


그리고 저장을 해준 후, 네트워크를 재실행(# /etc/init.d/network restart)나 시스템 재부팅을 해주면 적용된다.

이 문제가 해결되었는가? 그렇다면 이 창을 끄고 원래 글(2-2. 하듭의 실행)에서 신나게 실행해보자!



근데 아마도 이 창을 다시 켰거나, 끄지 못했을 것이다... 그 이유는 무엇일까?

Error 2

Input path does not exist : hdfs://localhost:9000/user/hadoop-user/input 해결하자.



input 이라는 파일도 이미 만들어서 존재하는데.. 왜 저런 에러가 나타나는 것일까?

그 이유는 간단하다! HDFS안에 input 파일을 넣어주지 않았기 때문이다.


우리는 이미 Start-all.sh 명령어를 통해서 HDFS(하둡파일시스템)을 생성해주었다.

그렇다면 서버안에 새로운 파일시스템이 존재한다는 이야기이다. 


기존 $HADOOP_HOME폴더는 리눅스 파일시스템안에 있는 파일이라고 볼 수 있다. 

이전에 세 개의 xml파일(core-site.xml, mapred-site.xml, hdfs-site.xml)을 소개한 적이 있었다.


거기 안에 내용이 아무것도 없다면, 하둡은 standalone모드로 작동하여 리눅스 파일 시스템이면서 실행되고 있는 $HADOOP_HOME이 NameNode 서버 폴더로 작동한다고 생각하면 된다.


하지만 가상분산모드는 단일서버로 돌아가기는 하지만, 마치 분산 환경에서 돌아가는 것처럼 만들어졌기 때문에, 새로운 hdfs://localhost:9000 포트로 지정해주었다. 


그래서 가상분산모드에서 wordcount를 실행하게 되면 리눅스 파일 시스템이 아닌, HDFS 파일 시스템 안에 있는 input 데이터를 찾게 된다. 쉽게말해, 경로가 바뀌었다고 보면 된다. 


그래서 HDFS안에 리눅스 파일 시스템에 있는 input 데이터를 넣어주어야 한다.

하둡의 명령어는 나중에 따로 또 다룰것이지만, 먼저 이것으로 해결하고 넘어가자.


# hadoop dfs -mkdir input


input 폴더를 생성해준다.


# hadoop dfs -put input input


put은 기존의 cp와 같은 개념으로 볼 수 있다. 

앞에 인수는 복사될 대상(리눅스 파일 시스템), 그리고 다음 인수는 복사되어질 장소나 파일명(HDFS)을 의미한다. 지금은 폴더이기 때문에 HDFS안에 input 폴더로 복사된다.


이렇게 만들어 준 후 다시 실행을 한다면 아마 올바른 결과를 볼 수 있게 될 것이다. ^^

'Experiences > Hadoop' 카테고리의 다른 글

2-4. 하둡의 실행-3  (0) 2012.09.07
2-3. 하둡의 실행-2  (0) 2012.09.05
2-2. 하둡의 실행  (1) 2012.08.31
2-1. 하둡의 구성요소  (6) 2012.08.29
1-6. Hadoop 첫 프로그램 실습(WordCount) - 2  (0) 2012.08.28