hadoop 76

YARN 메모리 설정

YARN 메모리 설정 · Version : Hadoop 3.0.0-cdh6.3.2 YARN 메모리 설정은 yarn-site.xml 파일에서 변경할 수 있으며, 노드 매니저의 메모리, CPU 개수와 컨테이너에 할 수 있는 최대, 최소 메모리 등을 설정할 수 있다. 기본값은 yarn-default.xml을 참고하면 된다. yarn.nodemanager.resource.memory-mb · 클러스터의 각 노드에서 컨테이너 운영에 설정할 수 있는 메모리의 총량 · 메모리 최대값 설정시 노드의 OS를 운영할 메모리(최소4G)를 제외하고 설정 yarn.nodemanager.resource.cpu-vcores · 클러스터의 각 노드에서 컨테이너 운영에 설정할 수 있는 CPU의 개수 yarn.scheduler.maxi..

MapReduce 메모리 설정

MapReduce 메모리 설정 · Version : Hadoop 3.0.0-cdh6.3.2 맵리듀스의 각 메모리 항목에 대한 정의를 알아본다. 맵리듀스의 메모리 설정은 mapred-site.xml, yarn-site.xml 값을 변경하여 사용할 수 있다. [yarn-site.xml] · yarn.nodemanager.resource.memory-mb : 노드 매니저가 컨테이너 할당에 사용할 수 있는 메모리 사이즈 · yarn.scheduler.minimum-allocation-vcores : 컨테이너에 할당 할 수 있는 최소 Vcore 개수 · yarn-scheduler.maximum-allocation-vcore : 컨테이너에 할당 할 수 있는 최대 Vcore 개수 · yarn.scheduler.min..

Hive에서 콤마(,)로 컬럼 구분 및 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기

Hive에서 콤마(,)로 컬럼 구분 및 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기 · Version : Hadoop 3.0.0-cdh6.3.2 Hive 테이블에서 데이터를 로드할때, 특정 구분자를 이용해서 파싱하는 경우 파싱의 규칙을 미리 테이블을 생성할때 정의해야 한다. 아래 스크립트는 콤마(,)로 컬럼을 구분하는 데이터에서 파싱을 하지 않아야 하는 콤마(,)의 데이터는 더블 쿼테이션(“”)으로 감싸서 해당 문장이 파싱되지 않도록 하는 규칙이다. 예를 들어 아래와 같은 콤마로 구분된 텍스트 데이터가 있다고 할 때, 컬럼 Col_1, Col_2, Col_3로 파싱한다. col_1,col_2,"col_3(a=3&b=40&c=NOTES&cid=1,10,33)" create table tbl_a ( c..

MapReduce JobTracker

MapReduce JobTracker · Version : Hadoop 3.0.0-cdh6.3.2 하둡 V1의 작업 단위는 잡(Job)이며, 하둡 V2의 작업 단위는 애플리케이션(Application)이다. 잡은 맵(Mapper) 태스크와 리듀스(Reduce) 태크스로 나누어지며, 태스크는 어템프트(Attempt) 단위로 실행된다. 맵리듀스 Job들은 JobTracker라는 소프트웨어 데몬의 의해 제어된다. JobTracker들은 마스터 노드에 존재하면서 아래와 같은 역할을 수행한다. · 클라이언트는 맵리듀스 잡을 JobTracker에게 보낸다. · JobTracker는 클러스터의 다른 노드들에게 맵과 리듀스 태스크를 할당한다. · 이 노드들은 TaskTracker라는 소프트웨어 데몬에 의해 각각 실행된..

MapReduce (맵리듀스)

MapReduce (맵리듀스) · Version : Hadoop 3.0.0-cdh6.3.2, 맵리듀스는 간단한 단위 작업을 반복하여 처리할때 사용하는 프로그래밍 모델이다. 간단한 작업을 처리하는 맵(Map) 작업과 맵 작업의 결과물을 모아서 집계하는 리듀스(Reduce) 단계로 구성된다. 하둡에서 분산처리를 담당하는 맵 리듀스 작업은 맵과 리듀스로 나누어져 처리된다. 맵리듀스 작업은 병렬로 처리가 가능하며 여러 컴퓨터에서 동시에 작업을 처리하여 속도를 높일 수 있다. 맵리듀스가 분산, 병렬처리하기 좋은 이유는 입력 데이터에 대한 맵 함수는 동시에 독립적으로 병영 처리할 수 있는 구조이기 때문이다. 아래는 맵리듀스 처리 순서이다. 1. 분할(Splitting) : 입력한 파일 값을 라인 단위로 분할한다. ..

Hive Buckets (버켓)

Hive Buckets (버켓) · Version : Hadoop 3.0.0-cdh6.3.2, Hive 하이브는 쿼리 성능을 높이기 위해 버켓(Buckets)이라는 데이터 모델을 제공하며, 버켓은 지정된 칼럼의 값을 해쉬 처리하고 지정한 수의 파일로 나누어 저장한다. 조인에 사용되는 키로 버켓 컬럼을 생성하면 필요한 버켓만 조회하면 되기 때문에 전제 디렉터리를 풀스캔하는 것보다 훨씬 빠르게 처리할 수 있다. 파티션은 데이터를 디렉터리로 나누어 저장하는 방식이며 버켓은 데이터를 파일별로 나누어 저장한다. 아래 그림은 파티션과 버켓의 차이점을 쉽게 정의하고 있다. 아래 스크립트는 버켓 테이블을 생성한다. -- col2를 버켓팅하여 20개의 파일에 저장 CREATE TABLE tbl1( col1 STRING,..

Hive Skewed (스큐)

Hive Skewed (스큐) · Version : Hadoop 3.0.0-cdh6.3.2, Hive 스큐(skewed)의 사전적 의미는 “비스듬하다”라는 뜻으로, 특정 데이터가 많이 입력되는 경우, 데이터 파일 한쪽에만 너무 많은 데이터가 쌓이는 것을 의미한다. 하이브에서 스큐 테이블로 생성하면 따로 파일을 만들어서 사용하므로 성능상 이점이 있다. 스큐는 파티션과 유사하지만 용도가 조금 다르다. 파티션은 크게 데이터를 분류하는 용도로 사용되며, 스큐는 컬럼의 데이터를 구분할 때 사용된다. 하이브 매뉴얼에는 아래와 같은 내용이 있다. 스큐 테이블은 스큐의 정보를 저장하고, 리스트 버켓팅까지 추가하면 스큐된 서브 디렉터리를 생성한다. Skewed Table vs. List Bucketing Table · ..

Hive Meta Database

Hive Meta Database · Version : Hadoop 3.0.0-cdh6.3.2, Hive 하이브(Hive)의 메타정보는 파일의 물리적인 위치 및 데이터에 대한 디렉터리 정보를 저장를 데이터베이스에 저장하며 기본적으로 사용되는 데이터베이스로는 더비(Derby), MySQL, Oracle, PostgreSQL이 있다. 하이브 클라이언트를 이용해서 확인하는 정보는 메타 데이터베이스 정보에 기반하고 있으며, 각 테이블 관련 정보는 메타 데이터베이스에서 직접 쿼리하여 확인이 가능하다. · Hive Architecture : http://sqlmvp.kr/221718439399 hive메타 데이터베이스가 설치된 DB에 접속하여 테이블 목록을 살펴보면 매우 많은 테이블이 있는 것을 확인할 수 있다. ..

Hive Meta Store 설정

Hive Meta Store 설정 · Version : Hadoop 3.0.0-cdh6.3.2, Hive 하이브(Hive)의 메타정보는 파일의 물리적인 위치 및 데이터에 대한 디렉터리 정보를 저장하고 있다. 메타스토어는 쓰리프트(Thrift) 프로토콜을 사용하여 다른 서비스에 정보를 제공한다. 메타 정보는 JDBC 드라이버를 이용하여 RDBMS에 저장한다. 메타스토어는 3가지 타입(Embedded, Local, Remote)이 있으며 타입에 대한 특징은 아래 링크를 참고 한다. · Hive Architecture : http://sqlmvp.kr/221718439399 [Embedded Meta Store] 하이브 기본설정은 더비DB를 사용하며, 이 DB는 한명의 사용자만 접근할수 있어 실제 서비스에는 ..

MapReduce 메모리 부족으로 인한 쿼리 실패

MapReduce 메모리 부족으로 인한 쿼리 실패 - FAILED Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask · Version : Hadoop 3.0.0-cdh6.3.2, Hive Hue에서 Hive 로 결과셋이 큰 쿼리를 실행하였을때 아래와 같은 오류가 발생하였다. Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 위의 에러로그는 실제 에러로그가 아니기 때문에 문제를 해결하기 위해서는 실제 에러로그를 살펴보아야 한다. 필자의 경우 Ha..