2017-03-13 4 views
2

저는 하둡 (Hadoop)의 새로운 꿀벌이에요. 그래서이 기본적인 질문으로 도와주세요.MapReduce 작업이 하이브에서 실행되기 시작합니다.

하이브에서 "select * from table where <condition>;"을 수행하면 기본 HDFS 파일에 필터링을 적용해야하므로 mapreduce가 실행됩니다.

하지만 하이브에서 where 절을 사용하지 않고 select * from table을 수행 할 때 간혹 mapreduce가 시작되고 때로는 실행되지 않습니다. 나의 이해는 필터링 조건이 없기 때문에 mapreduce를 실행하지 않아야한다는 것이 이상적입니다.

왜 누군가가 mapive가 Hive에서 시작되는 경우가 거의 없는지 설명 할 수 있습니까?

미리 감사드립니다.

답변

1

이는 hive.fetch.task.conversionnone로 설정되지 않은 경우 맵리 듀스 작업을 대신 가져 오기 작업을 수행 할 두 하이브 속성

간단한 SELECT 쿼리 hive.fetch.task.conversion

  • hive.fetch.task.conversion.threshold
    • 에 의해 제어됩니다.

      그러나 table에있는 파일의 전체 크기가 hive.fetch.task.conversion.threshold에 설정된 임계 값을 초과하면 mapreduce 작업이 트리거됩니다.

      hive.fetch.task.conversion.threshold의 기본값은 하이브 0.14.0 이상에서 1073741824 바이트 (1GB)입니다.

  • 관련 문제