WebHCat 레퍼런스 - Pig
WebHCat 레퍼런스 - Pig
POST /templeton/v1/pig 요청으로 Pig 잡을 생성하고 큐에 넣는 WebHCat API예요. 인라인 Pig 프로그램(execute) 또는 HDFS 파일(file)을 지정해 실행하며, -useHCatalog 같은 인자와 HCatalog 사용 여부도 제어할 수 있답니다.
출처: 문서
본문
설명 (Description)
Pig 잡을 생성하고 큐에 넣어요.
URL
http://www.myserver.com/templeton/v1/pig
매개변수 (Parameters)
| 이름 | 설명 | 필수? | 기본값 |
|---|---|---|---|
| execute | 실행할 짧은 Pig 프로그램 전체를 담은 문자열 | "execute" 또는 "file" 중 하나가 필수 | 없음 |
| file | 실행할 Pig 프로그램의 HDFS 파일 이름 | "execute" 또는 "file" 중 하나가 필수 | 없음 |
| arg | 프로그램 인자 설정. -useHCatalog가 포함되면 usehcatalog가 "true"로 해석됨 (Hive 0.13.0 이상) |
선택 | 없음 |
| files | map reduce 클러스터로 복사할 콤마 구분 파일 목록 | 선택 | 없음 |
| statusdir | WebHCat이 Pig 잡 상태를 기록할 디렉토리. 제공된 경우 이 디렉토리를 제거할 책임은 호출자에게 있음 | 선택 | 없음 |
| enablelog | statusdir이 설정되고 enablelog가 "true"이면, 잡 종료 후 Hadoop 잡 설정과 로그를 $statusdir/logs 디렉토리에 수집. 완료·실패 시도 모두 기록. $statusdir/logs의 하위 디렉토리 구조: logs/$job_id (잡에 대한 디렉토리) logs/$job_id/job.xml.html logs/$job_id/$attempt_id (시도에 대한 디렉토리) logs/$job_id/$attempt_id/stderr logs/$job_id/$attempt_id/stdout logs/$job_id/$attempt_id/syslog 이 파라미터는 Hive 0.12.0에서 도입됨 (HIVE-4531) |
Hive 0.12.0+에서 선택 | 없음 |
| callback | 잡 완료 시 호출할 URL 정의. 이 URL에 특정 잡 ID를 $jobId로 내장할 수 있으며, 이 태그는 콜백 URL에서 이 잡의 잡 ID로 대체됨 |
선택 | 없음 |
| usehcatalog | 제출된 잡이 HCatalog를 사용하므로 metastore에 접근해야 함을 지정. 보안 클러스터에서 WebHCat이 수행해야 할 추가 단계가 필요함 (HIVE-5133). 이 파라미터는 Hive 0.13.0에서 도입됨. arg 파라미터에 -useHCatalog를 포함해 "true"로 설정할 수도 있음. 또한 webhcat-site.xml이 templeton.hive.archive, templeton.hive.home, templeton.hcat.home 파라미터를 정의하면 WebHCat은 잡이 실행되는 대상 노드에 Hive tar를 전송함 (HIVE-5547). 즉 Hadoop 클러스터의 모든 노드에 Hive를 설치할 필요가 없음. 클러스터의 대상 노드에 Pig가 설치되어 있다는 것은 보장하지 않음. 보안과는 독립적이지만 관리성을 향상시킴. webhcat-site.xml 파라미터는 webhcat-default.xml에 문서화되어 있음 |
Hive 0.13.0+에서 선택 | false |
표준 매개변수도 함께 지원됩니다.
결과 (Results)
| 이름 | 설명 |
|---|---|
| id | "job_201110132141_0001"과 유사한 잡 ID를 담은 문자열 |
| info | 잡이 큐에 들어갈 때 반환된 정보를 담은 JSON 객체. 자세한 내용은 Hadoop 문서(Class TaskController)를 참고 |
예제 (Example)
코드와 데이터 준비
% cat id.pig
A = load 'passwd' using PigStorage(':');
B = foreach A generate $0 as id;
dump B;
% cat fake-passwd
ctdean:Chris Dean:secret
pauls:Paul Stolorz:good
carmas:Carlos Armas:evil
dra:Deirdre McClure:marvelous
% hadoop fs -put id.pig .
% hadoop fs -put fake-passwd passwd
Curl 명령
% curl -s -d file=id.pig \
-d arg=-v \
'http://localhost:50111/templeton/v1/pig?user.name=ekoifman'
버전 정보 (Version information)
Hive 0.13.0 이전에는 user.name이 POST 요청에서 폼 파라미터로 지정됐어요: curl -d user.name=<user>.
Hive 0.13.0 이후부터는 user.name을 쿼리 문자열(위와 같이)에 지정해야 해요: 'http://.../templeton/v1/pig?user.name=<name>'. user.name을 폼 파라미터로 지정하는 방식은 deprecated예요.
JSON 출력
{
"id": "job_201111101627_0018",
"info": {
"stdout": "templeton-job-id:job_201111101627_0018
",
"stderr": "",
"exitcode": 0
}
}
Navigation Links 이전: POST mapreduce/jar 다음: POST hive
더 알아보기 (Learn more)
- WebHCat 레퍼런스에서 전체 WebHCat 리소스 목록을 확인할 수 있어요.
- Response Types에서 응답 타입을 볼 수 있어요.