HiveQL
row_number
SELECT
ROW_NUMBER() OVER(ORDER BY name ASC) AS rno, // 1
*
FROM database.table
SELECT
ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS rno, // 1
*
FROM database.table
subquery 에러
SEELCT *
FROM (
SELECT ...
FROM
- )
+ ) AS tmp (1)
WHERE ...
GROUP BY ...
-
FROM
절 안에 있는 서브쿼리에AS
없으면 에러 발생
Zeppelin
제플린
-
notebook 안에 여러 paragraph
Configuration
SET hive.auto.convert.join;
SET hive.tez.container.size;
-
hive.auto.convert.join=true
: 맵-조인시 사용. (default:true
) -
hive.auto.convert.join.noconditionaltask.size=100000000
: 메모리 사이즈(기본 10MB)메모리에 올라가는 데이터 기준 사이즈이므로, 파일의 사이즈와는 다름.
desc formatted
로 테이블 정보를 확인하여 화깅ㄴ할 수 있는 테이블 파라미터의rawDataSize
기준으로 설정해야 함. Tez 컨테이너의 1/3 권장. -
hive.mapjoin.smalltable.filesize
: 조인할때 작은 테이블인지 판단하는 기준. 기본 25MB
Yarn
얀
-
Yarn이 Container를 Job(Tez)에 만들어주는데, Yarn monitor가 container들의 task의 메모리 사용를이 limit를 넘기면 kill?
-
Java로 만들어진 task라면 JVM 옵션도 확인 필요. Container 안에서 실행되므로 Heap 사이즈가 Container 보다 작아야 함
설정 | 설명 |
---|---|
|
주어진 노드에서 클러스터에 사용할 수 있는 총 메모리 사이즈 |
|
Yarn 컨테이너당 할당할 수 있는 최소 메모리(mb) |
|
Yarn 컨테이너당 할당할 수 있는 최대 메모리(mb) |
|
컨테이너에 추가로 할당할 수 있는 메모리. 현재 선호하지 않는 설정으로 |
Tez
테즈
-
Hive 실행 엔진
-
Apache Hadoop YARN 기반으로 만들어짐
-
Hive2의 기본 엔진
-
기존의 MR(MApReduce)에 비해 성능이 향상되는 효과 얻을 수 있음
-
하둡의 중심 모듈중 하나, 분산처리엔진
-
-
리듀스 작업간에 교화되는 데이터를 정렬할 필요가 없는 경우에 특화
-
Hive의 데이터 조인 쿼리를 더 효율적으로 실행 & 데이터 흐름을 효율적으로 구현에 목표
-
아파치 스파크는 반복연산에 더 적합한 개념과 기능을 제공하는 in-memory 데이터 처리 엔진
Configuration
설정 | 설명 |
---|---|
|
AM의 메모리 |
|
AM이 사용할 힙-메모리 사이즈( |
설정 | 설명 |
---|---|
|
tez 작업을 진행하는 컨테이너의 크기 일반적으로 YARN 컨테이너 크기와 같거나 1~2배수이며, |
|
Tez 컨테이너에서 시작된 작업이 사용하는 메모리 크기. 기존값은 1024MB. |
|
컨테이너에서 사용할 수 있는 힙메모리 크기( |
|
작업에서 사용할 메모리 크기(MB). 모든 vertex의 모든 작업에 적용됨. 모든 작업에 동일한 값으로 적용하면 컨테이너 재사용에 도움이 되므로 일반적으로 성능에 좋음. (default: 1024)
|
|
출력 결과를 정렬해야 할 때 사용할 메모리( |
|
맵조인에 사용하는 메모리( |