Hadoop MapReduce 작업 수행시 JDBC 드라이버와 같은 또 다른 라이브러리를 사용하기 위해서

DistributedCache를 이용합니다. DistributedCache를 이용하기 위해서는 사용할 라이브러리를 hdfs에 

저장한 다음 hdfs의 path를 DistributedCache 클래스를 이용하여 추가하면 Task 수행 시 

로컬로 해당 라이브러리를 다운로드 받고 클래스패스에 넣어서 Task를 실행합니다.

이때 Hadoop을 실행시킨 리눅스 계정과 Job을 실행시킨 리눅스 계정이 틀린 경우 제대로 인식 못하는 문제가 발생할 수 있습니다.

문제를 해결하기 위해서는 DistributedCache를 사용할 때 path는 상대경로가 아닌 절대 경로를 사용하도록 합니다.

예를 들어 사용자가 jaso 인 경우 /user/jaso/lib/test.jsr 파일의 상대경로는 "lib/test.jar" 입니다. 파일시스템 상에서는 문제가 없지만

Task 수행시에는 문제가 됩니다. 모든 Task는 Hadoop을 수행시킨 계정으로 실행되기 때문에 "lib/test.jar"는

"/user/{HADOOP_ADMIN}/lib/test.jar"로 인식되게 됩니다.
이 게시물을..