2011-02-11 6 views
1

이 질문은 자극적 일 수 있으며 실제로 프로그래밍과 관련이 없을 수도 있습니다. 그것은 제 동료와 가진 작은 토론의 분사입니다. HIVE와 PIG는 MapReduce 작업을 작성할 때 MapReduce에서 생각할 필요가 없기 때문에 HIVE와 PIG를 별도의 "프로그래밍 모델"이라고 부를 수 있습니다. 특히 HIVE에서 프로그래밍하는 경우 특히 그렇습니다. 프로그래머의 관점에서 MapReduce 부분은 완전히 추상화되어 있습니다. 그것은 완전히 SQL과 같습니다.PIG와 HIVE를 별도의 프로그래밍 모델이라고 부를 수 있습니까?

그러나이 언어로 작성된 스크립트는 궁극적으로 결국 여러 개의 mapreduce 작업으로 변환되기 때문에 동의하지 않습니다. 따라서, 이들은 동일한 모델을 프로그램하기위한 고급 프로그래밍 언어로 불릴 수 있습니다. 프로그래밍 모델이라는 단어는 크런치를 기다리고있는 기본 데이터와 프로그래머가 아닌 관점에서 살펴야합니다.

귀하의 의견은 무엇입니까?

답변

2

다음과 같이 정의 할 수 있습니다. HIVE 및 PIG는 다른 추상화 수준에 있습니다. 유추는 SQL과 쿼리 실행 계획입니다. 둘 다 데이터베이스 쿼리와 동일한 문제를 해결하지만 SQL은 선언적이며 결과가 무엇인지 명시하고 쿼리 실행 계획은이를 달성하기위한 작업을 지정합니다. 이 예에서 HIVE는 SQL 및 PIG - 쿼리 실행 계획입니다.
HIVE는 선언적이며 PIG 대신 추상화 수준이 높다고 말할 수 있습니다. 그래서 논리적으로 HIVE 요청은 PIG로 번역 될 수 있습니다.