Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[Hadoop] hadoop 1.0.0 이상 버전에서 ClassNotFoundException Computer & Program

hadoop의 하위 호환성 그지 같은건 예전 버전부터 알고 있었지만, 1.0.0 버전이 되니 이건 완전히.. 아오~ ㅆ.. -ㅅ-;;;

hadoop에서 외부 라이브러리 같은걸 사용하기 위해서는 $HADOOP_CLASSPATH에 classpath를 잡아주거나, 아래 경로에 jar 파일을 넣어주면 됐었다. (정말 1.0.0 이전 버전은 됐었다. TㅅT)

${HADOOP_HOME}/lib


이런 ㅆㅂㄹㅁ 하둡.. 이젠 저 경로에 넣어도 안 된다. $HADOOP_CLASSPATH로 잡아줘도 안 된다. 어떻게 해도 ClassNotFoundException이 발생한다.
이상한건 프로젝트의 maven dependency를 모두 한 경로에 넣고 $HADOOP_CLASSPATH로 잡아주면 일부는 로딩 되는데 일부는 안 된다. -ㅅ- 특히나 로딩되지 않는 jar 패키지들은 HBase와 ZooKeeper 같은 녀석들이었다. 독종 같은 녀석들.. 다른 놈들은 로딩되는데..

그래서 어쩔 수 없이 lib 경로를 찾고 찾았다. 정말 며칠을 찾다가 간신히 건졌다. ilb 경로는 아래 경로에도 존재한다. 독하게 로딩되지 않는 라이브러리들은 아래 경로로 넣어주자.

${HADOOP_HOME}/share/hadoop/lib


1.0.0 버전 이후에 share나 hadoop이라는 경로가 생긴걸로 봐서 HBase나 ZooKeeper와 같은 Hadoop 관련 프로젝트들이 다 저 안으로 들어올 것 같다. 이 경로뿐만 아니라 다른 경로도 대부분 hadoop이라는 경로 안으로 이동했다.

${HADOOP_HOME}/etc -> ${HADOOP_HOME}/hadoop/etc
${HADOOP_HOME}/include -> ${HADOOP_HOME}/hadoop/include
등등

덧글

댓글 입력 영역

Google AdSense (text/image)