이른바 fetch 캡 처 hive 의 일부 조 회 는 mapreduce 를 사용 하지 않 아 도 됩 니 다.예 를 들 어 select*from emp 이라는 문 구 는 mapreduce 를 사용 하지 않 습 니 다.이 경우 hive 는 emp 디 렉 터 리 에 대응 하 는 데이터 파일 을 간단하게 읽 을 수 있 습 니 다.
설정 방법:
설정 장소:hive-default.xml
<property><name>hive.fetch.task.conversionname><value>morevalue><description>
Expects one of [none, minimal, more].
Some select queries can be converted to single FETCH task minimizing latency.
Currently the query should be single sourced not having any subquery and should not have
any aggregations or distincts (which incurs RS), lateral views and joins.
0. none : disable hive.fetch.task.conversion
1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only
2. more : SELECT, FILTER, LIMIT only (support TABLESAMPLE and virtual columns)
description>property>
설정 속성:hive.fetch.task.conversion
설정 한 매개 변수 설명:
none:fetch 캡 처 를 사용 하지 않 습 니 다.fetch 캡 처 를 사용 하지 않 으 면 모든 작업 이 MR 로 실 행 됩 니 다.
minimal:select*분 구 표 의 분 구 열 여과 조건 및 limit 은 MR
을 실행 하지 않 습 니 다.
more:조회,제출 필터 제한 조회,샘플링 조회 가상 열 을 포함 하여 MR
을 실행 하지 않 습 니 다.
주의:fetch 캡 처 를 언제 사용 하고 데이터 양 에 따라 사용 하지 않 습 니까?
로 컬 모드
설명:
Hadoop 의 임 무 는 빅 데이터 세트 를 처리 할 수 있 는 확장 성 을 제공 할 수 있 는 장점 이지 만 가끔 은 hive 가 입력 한 데 이 터 량 이 매우 적다.이런 상황 에서 임무 의 자원 배분 과 스케줄 링 의 소모 시간 은 데이터 의 분석 시간 보다 많 을 수 있 기 때문에 이런 상황 에서 hive 는 현지 단일 노드 에서 임 무 를 처리 할 수 있다.작은 데이터 에 대해 서 는 실행 속 도 를 뚜렷하게 높 일 수 있다.
오픈 방식:
설정 필요 속성:로 컬 모드
오픈
set hive.exec.mode.local.auto=true;
이상 의 속성 은 로 컬 모드 가 자동 으로 인식 되 고 입력 한 데이터 가 128 M 이상 이면 로 컬 모드 가 닫 힌 상태 이 며 데 이 터 를 클 러 스 터 에 제출 하여 실행 한 다 는 뜻 이다.
설정 가능 한 속성:
로 컬 모드 입력 의 최대 데 이 터 량 설정:
set hive.exec.mode.local.auto.inputbytes.max=128M;
로 컬 모드 에서 최대 입력 만 가능 한 파일 개 수 를 설정 합 니 다
set hive.exec.mode.local.auto.input.files.max=4
병행 실행
설명:MapReduce 단계 에서 map 의 입력 단계,map 의 출력 단계,shuffle 단계,reduce 입력 단계,reduce 의 출력 단계.상기 단계 에 따라 hive 는 샘플링 단계,합병 단계,limit 단계 또는 다른 단계 에 대응 합 니 다.기본 적 인 상황 에서 hive 는 한 번 에 한 단계 만 수행 하지만 특정한 임무 에 여러 단계 가 포함 되 어 있 을 수 있 음 을 주의해 야 합 니 다.이런 임 무 는 서로 의존 하지 않 고 병행 할 수 있 습 니 다.병행 하 는 집행 은 임무 의 시간 을 단축 시 킬 수 있다.
오픈 방식:
설정 필요 속성:병렬 모드
오픈
set hive.exec.parallel=true;
설정 가능 한 속성:
같은 sql 을 설정 하여 동시에 실행 할 수 있 는 수량:
set hive.exec.parallel.thread.number=8;
주의:병행 실행 에 있어 서버 의 자원 에 대한 요구 가 비교적 한가 할 때 나 성능 이 좋 은 클 러 스 터 에서 우 위 를 발휘 할 수 있 습 니 다.
엄격 한 패턴
설명:
Hive 는 영향 이 좋 지 않 은 검색 어 를 실행 하 는 것 을 방지 하기 위해 엄격 한 모델 을 제공 했다.
오픈 방식:
설정 필요 속성:엄격 모드 오픈(기본 시비 엄격 모드 주의)
set hive.mapred.mode=nonstrict;
설정 가능 한 속성:
nonstrict:비 엄격 모델
strict:엄격 한 모델
엄격 한 모드 를 시작 하면 세 가지 유형의 조 회 를 금지 할 수 있 습 니 다.
파 티 션 시트:where 자구 에 파 티 션 필드 가 있어 야 한 다 는 제한 이 있 지 않 으 면 실행 할 수 없습니다.
orderby 를 사용 하여 정렬 하려 면 limit 자 구 를 사용 하여 제한 해 야 합 니 다.그렇지 않 으 면 실행 할 수 없습니다.
피리 칼 적 을 제한 하 는 조회
JVM 재 활용
설명:
JVM 의 변조 매개 변 수 는 Hadoop 부분 에 속 하 는 설정 입 니 다.Hadoop 의 기본 설정 은 JVM 을 사용 하여 map 와 reduce 작업 을 수행 하 는 것 이 고 JVM 이 시 작 될 때 상당 한 자원 의 비용 이 발생 합 니 다.특히 MR 작업 에서 실행 되 는 하위 작업,예 를 들 어 maptask 나 reducetask 의 수량 이 많 을 때 JVM 이 시 작 될 때 자원 의 씀 씀 이 가 더욱 커진다.
소위 JVM 은 JVM 프로 세 스에 서 다시 사용 되 며,하나의 작업(job)에 대해 N 회 다시 사용 할 수 있 습 니 다.N 은 다시 사용 하 는 횟수 입 니 다.mapred-site.xml 설정 파일 에서 설정 할 수 있 습 니 다.
오픈 방식:
설정 필요 속성:재 활용 수
set mapreduce.job.jvm.numtasks=n;
n 은 N 을 다시 사용 하 는 횟수 라 는 뜻 이다.
주의:JVM 의 재 활용 값 은 보통 10-20 사이 에 설정 되 어 있 으 며,구체 적 으로 얼마나 설정 해 야 하 는 지 는 업무 수요 와 서버 의 성능 에 따라 계속 테스트 하여 결 과 를 얻 는 것 이 좋 습 니 다.
추측 집행
설명:
분포 식 환경 에서 프로그램의 BUG 나 부하 가 불 균형 하거나 자원 분포 가 고 르 지 않 기 때문에 한 job 에서 여러 작업 이 운행 하 는 속도 가 일치 하지 않 고 있 으 며 임무 의 운행 속도 가 다른 임무 보다 현저히 느 릴 수 있 으 며 이런 임 무 는 job 의 전체적인 집행 속 도 를 늦 출 수 있다.이러한 일이 발생 하지 않도록 모든 Hadoop 은 실행 을 추측 하 는 체 제 를 사용 하여 일정한 법칙 에 따라 발목 을 잡 는 임 무 를 추측 하고 이러한 임 무 를 위해 백업 임 무 를 시작 합 니 다.이 임 무 는 원본 임무 와 같은 데 이 터 를 처리 하고 가장 먼저 성공 적 으로 실 행 된 임 무 를 최종 출력 결과 로 선택 합 니 다.
오픈 방식:
설정 필요 속성:오픈 추정 실행(기본 값 오픈)
set mapreduce.map.speculative=true;
set mapreduce.reduce.speculative=true;