2013-07-24 2 views
0

Eclipse에서 사용하는 가상 배포 모드에서 hadoop을 실행하고 있습니다. 감속기에 몇 가지 옵션 [jvm 관련]을 전달해야합니다. 나는 시도했다 :Eclipse의 Hadoop Mapreduce에서 감속기에 명령 줄 옵션 전달

<property> 
    <name>mapred.reduce.child.java.opts</name> 
    <value>-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\mdapi</value> 
    </property> 

나는 성공적이지 않다. 이전에 로컬 독립 실행 형 모드를 사용했을 때 실행 대화 상자에서 이러한 jvm 옵션을 제안하기 만하면 완벽하게 정상적으로 작동했습니다. 그러나 의사 배포 모드에서는 실행 대화 상자에서 이러한 매개 변수를 제안해도 작동하지 않습니다.

내가 의사 분산 모드에서 얻을 오류입니다 : 프로그램이 대부분 API를 다루지 않았습니다 및 tcaenv 파일을하지 않았기 때문에

MDV_DATE not found.... 
java.lang.ClassCastException: com.itginc.tca.config.Config cannot be cast to com.itginc.tca.config.TcaConfig 

이 위의 오류가 있습니다.

+0

분산 캐시를 사용할 수 있습니까? 어떻게 도움이 될지 모르겠습니다. 당신이 어떤 생각을 가지고 있다면 알려주세요. – udag

답변

0

을 useing 구성 할 수 있습니다

hadoop jar JAR.jar mainClass -D mapreduce.task.tmp.dir="/path/to/temp/dir" 

-Dname=value 사이의 공간을 넣어하는 것을 잊지 마세요 다음 명령을 사용할 수있는 모든 작업을위한 임시 디렉토리를 구성 할 mapred.xml의 "mapred.reduce.child.java.opts"값을 "-Dtca.TCA_PROPERTIES = C : \ Users \ uagrawal \ workspace \ TCAenv -DMDAPI = C : \ Users \ uagrawal \ workspace \ mdapi"로 변경했습니다. "mapred.child.java.opts"의 값을 "-Dtca.TCA_PROPERTIES = C : \ Users \ uagrawal \ workspace \ TCAenv -DMDAPI = C : \ Users \ uagrawal \ workspace \ mdapi"로 변경하십시오.

의사 배포 모드에서는 작업 추적기의 각 하위 프로세스에 자체 jvm이 있고 자식 jvm의 속성을 설정하는 것이 더 좋습니다.

0

명령 줄 인수를 전달하려면 -D name=value을 사용해야합니다. 예를 를 들어 다음을 추가하는 대신 그런 다음 GenericOptionsParser

+0

감사합니다. 그러나 나는 내 문제를 해결했다고 생각한다. 내가 사용했다 'code' conf.set ("mapred.child.java.opts", "- Dtca.TCA_PROPERTIES = C : \\ Users \\ uagrawal \\ workspace \\ TCAenv -DMDAPI = C : \\ Users \\ uagrawal \\ workspace \\ mdapi "); 'code ' 문제를 해결하십시오. – udag

+0

문제 없음 ..... – twid