티스토리 뷰

혹시라도 윈도우 XP에서 Hadoop(이하 하둡)을 설치하려고 삽질 중이신 분들을 위해 포스팅합니다.

윈도우즈 환경에서 하둡을 설치하려면 cygwin이라는 리눅스 에뮬레이터를 설치한 후,
cygwin 에뮬레이터에서 하둡을 설치하면 됩니다.

cygwin 설치 방법은 검색해서 간단하게 설치할 수 있었지만, 하둡 버전이 문제였습니다.

XPPro에서 하둡 1.0을 설치한 후, start-all.sh로 하둡을 실행했습니다.
그리고 나서 이클립스에서 HDFS에 접속을 했더니 인증오류가 뜨더군요.--;;;
뭔가 이상하다 싶어서 데몬을 다 죽이고, 네임노드부터 tasktracker까지 하나 하나 실행 시켜봤습니다.

그랬더니 이런 tasktracker에서 이런 오류가 나더군요..
 $ ./hadoop tasktracker
12/01/12 19:21:18 INFO mapred.TaskTracker: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting TaskTracker
STARTUP_MSG:   host = blrunner/172.20.51.102
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 0.20.203.0
STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by 'oom' on Wed May  4 07:57:50 PDT 2011
************************************************************/
12/01/12 19:21:18 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
12/01/12 19:21:18 INFO impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
12/01/12 19:21:18 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
12/01/12 19:21:18 INFO impl.MetricsSystemImpl: TaskTracker metrics system started
12/01/12 19:21:19 INFO impl.MetricsSourceAdapter: MBean for source ugi registered.
12/01/12 19:21:19 WARN impl.MetricsSystemImpl: Source name ugi already exists!
12/01/12 19:21:19 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
12/01/12 19:21:19 INFO http.HttpServer: Added global filtersafety (class=org.apache.hadoop.http.HttpServer$QuotingInputFilter)
12/01/12 19:21:19 INFO mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1
12/01/12 19:21:19 INFO mapred.TaskTracker: Starting tasktracker with owner as blrunner
12/01/12 19:21:19 ERROR mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /hadoop/hdfs/mapreduce/local/ttprivate to 0700
        at org.apache.hadoop.fs.RawLocalFileSystem.checkReturnValue(RawLocalFileSystem.java:525)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:499)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:318)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183)
        at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:635)
        at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:1328)
        at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3430)

12/01/12 19:21:19 INFO mapred.TaskTracker: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down TaskTracker at blrunner/172.20.51.102
************************************************************/

열심히 구글링을 해보니, 하둡 0.20.203부터 1.0까지 발생하고 있는 버그였습니다.
https://issues.apache.org/jira/browse/HADOOP-7682
http://lucene.472066.n3.nabble.com/jira-Created-HADOOP-7682-taskTracker-could-not-start-because-quot-Failed-to-set-permissions-quot-to--td3368356.html

다시 또 분노의 검색질을 하는 중
http://knight76.tistory.com/1396 에서 0.21을 성공했다는 포스팅을 보고 다시 하둡을 설치해봤는데요.
역시나 다음과 같은 오류가 나면서 또 다시 좌절 모드...포스팅한분은 Win7 64비트라는 였다는..ㅠㅠ

$ ./hadoop
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
 or
  CLASSNAME            run the class named CLASSNAME

Most commands print help when invoked w/o parameters.

결국 하둡 0.20.202로 설치 하고 나서야, WordCount가 제대로 돌더군요.ㅠㅠ

정신 건강을 위해서 가능한 리눅스에서 작업을 하실 것을 추천드리고요..
정말 정말 부득이하게 윈도우 XP(32비트)를 쓰셔야 한다면, 꼭 하둡 0.20.202를 쓰시기 바랍니다.


댓글
댓글쓰기 폼