[Hadoop,Cascading] classpath, distributed cache path 설정
Development / 2014. 6. 11. 14:34
hadoop 에서 hdfs에 distributed cache와 classpath 를 runtime에 동적으로 binding하여 사용하고 있다.
(cascading을 이용하고있뜸!!)
distributed cache는 "mapred.cache.files" (yarn: mapreduce.cache.files)에 path를 다음과 같이 넣었고,
"hdfs:///user/joo/x.sqlite"
classpath도 "mapred.job.classpath.files" (yarn: mapreduce.job.classpath.files) path를 다음와 같이 넣었었다.
"hdfs:///user/lib/simple-json.jar"
하지만 뚜둥!! class not found의 에러가 발생하여 job이 죽었다. ㅠㅠ
분명 jobtracker의 job file을 보아도 path가 잘 붙어 있는데 벙쪄 있었다. ㅠ
해결 방법은 아주 간단했다.
"hdfs://" 를 제거하고 "/user/lib/simple-json.jar" root부터만 path를 적어 줬더니 아주 잘 돌아간다;;;
classpath는 "hdfs//"가 prefix 로 되어있나보다.