Hadoop 2.2.0 (4) – 개발환경 구축하기: Plugin 설치

By | Y2014Y2014-5M-D

하둡 설치가 끝났으면 이제 개발 해봐야죠~

썩은 무라도 잘라야 이때까지 고생한 보람이 있겠죠?(^^;;;)

일단 Eclipse Plugin 이 존재한다는 사실은 알고 있었기 때문에 바로 검색 들어갑니다.

구글냥에서 검색해보면 이미 많은 분들의 포스팅이 있지만 검색 첫단에 나온 github 사이트의 결과를 이용하기로 합니다.

https://github.com/winghc/hadoop2x-eclipse-plugin

(진짜.. 이런거 만들어 볼 능력이 되야 할텐데… 다음 생에?)

컴파일해도 되지만 시간을 많이 잡아먹은 관계로 편하게 release 에서 다운로드 합니다.

https://github.com/winghc/hadoop2x-eclipse-plugin/blob/master/release/hadoop-eclipse-kepler-plugin-2.2.0.jar

kepler 버전 용인데.. 테스트 해보니 윈도우 버전의 Juno 에서는 잘 인식하고, Linux 버전에서는 인식을 못하므로, eclipse kepler 버전을 깔아서 연결해보니 잘 됩니다.

eclipse 에서 Window>Open Perspective>Others.. 클릭하면

Map/Reduce 가 있습니다.(퍼런 코끼리~ 멍든 코끼리~)

Map/Reduce Perspective

Map/Reduce Perspective

요거 선택하고,

eclipse 하단 프레임에서 map/reduce Location 선택해서 빈칸 오른쪽 클릭하면 New Hadoop Location … 뜹니다. 선택해줍니다.

그림과 같이 설정합니다.

Hadoop Location Editor

Hadoop Location

잘 보면 왼쪽에 MRv2, 오른쪽에 Distribution File System Master 속성이 있습니다.

MRv2는 Yarn/MapReduce 프레임워크가 돌아가는 호스트, DFS Master 는 NameNode 가 돌아가는 호스트입니다.

1.x 대 버전에서는 DFS가 dfs.info 설정을 참고했지만 2.x 버전부터는 http(https) 설정에 따라 외부와 통신하기 때문에 다음 설정을 참고합니다.(어느 사이트에서 봤는데 기억이 안나네요..;; )

각 호스트들에 대한 포트는 다음을 참고합니다.

M/Rv2 Master: mapred-site.xml 의 mapred.jobtracker.http(s)

DFS Master: core-site.xml 의 fs.defaultFS

이 설정만 제대로 하고 나면 eclipse Project Explorer 에서 하둡의 dfs 에 연결 된 것을 볼 수 있습니다.

DFS Location Connected

DFS Location Connected

네. 보기 좋네요.

그런데 윈도우 환경에서는 권한 문제 때문인지 tmp 폴더에 sticky bit 처리를 했음에도 불구하고 폴더를 읽지 못했네요.

TroubleShoot:

포트까지 제대로 설정이 된 것 같은데 절대 연결이 안됩니다. 멘붕옵니다.

또 삽질 몇시간 했습니다…(ㅡㅡ;;;;)

포트가 잘못된 경우에는 보통 Connection time out, 구 버전의 plugin 을 쓰면 통신 프로토콜 버전이 안맞다고 DFS Location 의 Connection 부분에 에러 메시지가 뜹니다.

그런데 왠지 다 잘 맞추었다고 생각되는데 Connection Refuse 가 뜨면 환장할 노릇이죠.

구글 그룹스의 포럼하나를 참고하시기 바랍니다.

https://groups.google.com/a/cloudera.org/forum/#!topic/scm-users/HeQN8C7qoPA

결론은 hdfs-site.xml 에 dfs.namenode.hosts(.exclusive) 속성이 있는데 여기 이상한 값이 들어 있었단 말입니다. 그래서 값을 제거해주니 잘 됩니다.

설치문서에는 값이 없으면 all host 로 인식하고 테스트 결과 dfs.namenode.hosts(.exclusive) 두 속성에 모두 값을 주지 않으면 dfs.namenode.hosts 전체 호스트 신뢰로 (blacklist 기반) 동작합니다.

 

6,547 total views, 12 views today

댓글 남기기