2013-04-23 2 views
0

Windows에서 Hadoop의 HDInsight 설치를 사용 중이며 매개 변수를 돼지 스크립트에 전달하려고합니다. 다른 컴퓨터에서 두 개의 스크립트를 사용 했으므로 Windows 일 수 있다고 생각합니다. testSub.pigHDInsight로 돼지 스크립트에 매개 변수 전달

-r 돼지 : 시험에 명령 줄에서 드라이 런으로 실행

%default myParam 'foo' 
load('$myParam'); 

: 나는 매개 변수가 스크립트

예 스크립트 내에서 작동 확인하기 위해 기본 값을 넣었습니다 에서

결과 :

load('foo'); 

하지만 명령 줄에서 값을 제공하려고 :

pig -p myParam=bar -r testSub.pig 

오류가 발생합니다 :

2013-04-23 13:37:27,531 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line. 
Details at logfile: C:\Hadoop\hadoop-1.1.0-SNAPSHOT\logs\pig_1366720647495.log 

및 로그 파일이 같은 말한다 : 단일 및 이중 따옴표로 물건을 넣어 이동, 내가 "-param"을 사용하여 시도했다

Error before Pig is launched 
---------------------------- 
ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line. 

java.lang.RuntimeException: Encountered unexpected arguments on command line - please check the command line. 
    at org.apache.pig.Main.run(Main.java:500) 
    at org.apache.pig.Main.main(Main.java:111) 
================================================================================ 

주위에 주문하지만 행운은 없습니다. 어떤 아이디어를 다음에 시도 할 것인가? Windows 명령 프롬프트에 추가해야 할 이상한 탈출이 있습니까?

답변

0

-p 인수가 좋습니다. 당신은 예를 들어, -x local -r -f <file>를 지정해야합니다

> pig -p myParam=bar -x local -r -f testSub.pig

-x local 플래그는 맵리 듀스 클러스터없이 로컬로 실행하는 돼지를 지시합니다.

+0

Ian에게 감사하지만 여전히 동일한 문제가 있습니다. 또한 클러스터에서 실행되는 실제 스크립트가 필요하지만 문제는 Windows 명령 창을 통해 돼지 파서 (Pig parser)에 있다고 생각합니다. 나중에 스크립트가 실행되는 위치가 아닙니다. – TobyEvans

+0

@TobyEvans는 이. Windows에서 같은 문제가 발생했습니다. – DWGuru

0

HDInsight 0.4 버전 (3 월 25 일) 이후 동일한 문제가 발생합니다. 필자는 스크립트에 매개 변수 값을 직접 입력하여 스크립트를 확인했습니다 (정상적으로 작동 함). 그러므로, 아마도 "창"일입니다. 한 가지 해결 방법은 매개 변수 파일 (myparamfile.txt)에 매개 변수를 배치하고 다음을 사용하여 참조하는 것입니다.

> pig -f testsub.pig -m myparamfile.txt 
관련 문제