2012-12-10 3 views
1

내 프로젝트 용 ASCII 입력 파일이 있고 mapreducing을 위해 돼지 스크립트를 사용합니다. 이 스크립트에서는 하위 문자열을 사용하여 지정된 문자 간격을 사용합니다. 나는 자바를 사용하여 char 간격을 취한 다음 항아리 파일을 다른 돼지 스크립트에 삽입하여 내 데이터를 줄이는 지, 프로그램이 더 빨리 실행되는지 여부를 묻고 싶습니다..pig 스크립트 대 java embeded pig : 어느 것이 가장 빠릅니까?

답변

0

모두는 맵 메서드에서 문자 간격을 어떻게 구현하는지에 따라 다릅니다. 하위 문자열은 데이터를 알고있는 경우 최적화 될 수 있습니다. 이 스레드 확인 : 또한, 일반적으로, 하둡 클러스터 단지를 추가하면 파일 전송 및 (풀고 클래스 로더, 등) 내부의 물건을 설정하기위한 약간의 오버 헤드를 추가

charAt() or substring? Which is faster?

을하지만,이 경우 항아리에 크기는 무시할 수 있어야합니다. 즉, 매퍼를 수행하는 Java 코드를 추가하면 상당한 오버 헤드가 발생하지 않아야합니다. 그러나 돼지 생성 코드가 최적이 아니며 Java 코드가 문자열에 최적 인 경우 매퍼 단계를 향상시킬 수 있습니다.

+0

하위로 최적화 할 필요가 없으므로 자바에서 동일한 작업을 수행하면 속도가 거의 동일해질 것이라고 생각합니다. 내가 맞습니까? – erbileren

+0

돼지 생성 지침을 쉽게 확인할 수있는 방법이 있는지 확신 할 수 없지만 돼지 생성 지침이 최적이 아닌 경우 바이트 코드 최적화로 인해 Java가 성능이 향상되는 경우가있을 수 있습니다. 개체 생성 오버 헤드 및 가비지 수집 그 차이는 크지 않을 것이라고 생각 하겠지만 jvm 내부와 함께 돼지 내부에 익숙하지 않은만큼 내 말을 듣지는 않을 것입니다. 작은 맵 입력 파일에 대해 두 가지 방법 모두를 벤치마킹하여 차이가 있는지 확인합니다. –