린아저씨의 잡학사전

Presto 란?

Presto는 기가 바이트에서 페타 바이트까지의 모든 크기의 데이터 소스에 대해 대화 형 분석 쿼리를 실행하기위한 오픈 소스 분산 SQL 쿼리 엔진입니다. Presto는 대화식 분석을 위해 처음부터 설계되고 작성되었으며 상용 데이터웨어 하우스의 속도에 접근하면서 Facebook과 같은 조직 규모로 확장되었습니다.
Presto는 Hive, Cassandra, 관계형 데이터베이스 또는 독점적인 데이터 스토어에 있는 데이터를 쿼리 할 수 있게 합니다. 
Facebook은 Presto를 사용하여 300PB 데이터 웨어 하우스를 비롯한 여러 내부 데이터 저장소에 대한 대화형 쿼리를 제공합니다. 1,000명이 넘는 페이스북 직원들은 Presto를 매일 사용하여 매일 30,000개 이상의 쿼리를 실행합니다. 이 쿼리는 하루에 1PB 이상을 스캔 합니다.

Presto 설치 파일 Download

 

Teradata에서도 Presto admin을 다운로드할 수 있지만 Starburst가 비교적 최신버전이라

Startburst에서 다운로드 하였습니다.

*Enterprise 버전과의 차이는 Sentry 등 보안적용 가능 여부

 

Starburstdata Presto Download 

http://www.starburstdata.com/download-starburst-enterprise-distribution-presto/

 

Download Starburst Distribution of Presto – Starburst Data

The Starburst Enterprise Distribution of Presto includes everything you need to install and run Presto.

www.starburstdata.com

Startburst Presto Download 페이지

 

다음과 같은 페이지에서 각자의 OS에 맞는 버전을 다운로드하면 됩니다. 

저같은 경우는 Centos7에서 진행하였기 때문에 다음 버전을 다운로드 하였습니다.

 

필요파일

1) prestoadmin-2.6-offline-el7.tar.gz

2) presto-server-rpm-302-e.11.x86_64.rpm

3) presto-cli-302-e.11-executable.jar


Presto 설치 및 환경 구성

1. 위에서 다운 받은 파일을 Presto admin 설치할 서버에 FTP 등을 통해 옮겨줍니다.

2. 먼저 prestoadmin-2.6-offline-el7.tar.gz 파일의 압축을 풀고 Presto admin을 설치해줍니다.

   ./presto-admin --help를 입력하여 정상적으로 출력되면 설치가 완료된 것 입니다.

# tar /presto/prestoadmin-2.6-offline-el7.tar.gz
# cd prestoadmin
# ./install-prestoadmin.sh
# ./presto-admin --help

3. presto-server-rpm-302-e.11.x86_64.rpm 와 presto-cli-302-e.11-executable.jar 를 prestoadmin-2.6-offline-el7.tar.gz 압축을 풀면 생기는 prestoadmin 디렉터리로 옮겨줍니다.

 

4. Presto Server를 배포 및 설치하기 위하여 Presto admin config.json 파일을 생성해 줍니다.

# vi /root/.prestoadmin/config.json

{
"username": "root",
"port": "ssh_port",
"coordinator": "EMR_master_node_host_name",
"workers": ["host_name_1", "host_name_2", ... "host_name_[11-30]"],
"java8_home":"path/to/java8/on/presto/nodes"
}

* 단 workers 등에 호스트네임 명시할 때 "host_name_[01-30]" 과 같이 [ ] 안에 01, 02는 01, 02로 인식되지 않고 그냥 host_name_1, host_name_2로 인식되기 때문에 따로 명시를 해주는 등 조치가 필요합니다.

 

5. 다음과 같이 config.json 파일을 생성 후 /root/presto/prestoadmin 디렉터리로 돌아와 Presto Server를 배포 및 설치 해 줍니다.

# cd /root/presto/prestoadmin/
# ./presto-admin server install presto-server-rpm-302-e.11.x86_64.rpm

6. 설치가 완료되면 /root/.prestoadmin 디렉터리에 있는 coordinator와 workers 디렉터리에서 JVM설정 값 및 메모리 설정값을 바꿔줍니다.

 

- Coordinator 설정 변경 - 추후 업데이트 예정

- Workers 설정 변경 -  추후 업데이트 예정

 

6. 설정을 바꿔준 후 설정값을 재배포하고 서버를 재시작해줍니다.

# ./presto-admin configuration deploy
# ./presto-admin server restart

 

7, 정상적으로 서버가 다 올라오면 http://Coordinator_host_IP:8080 으로 접속하여 Presto Cluster 모니터링이 가능합니다.

 

8. Presto 쿼리 실행

# cd /root/presto/prestoadmin
# mv presto-cli-302-e.11-executable.jar presto-cli
# chmod +x presto-cli
# ./presto-cli --catalog tpch --schema tiny
presto:tiny> SELECT count(*) FROM lineitem;

9. presto-admin과 presto-cli 등의 명령어를 어떤 위치에서도 실행시키기 위해 /bin에 등록해줍니다.

# cd /bin
# ln -s /root/presto/prestoadmin/presto-admin presto-admin
# ln -s /root/presto/prestoadmin/presto-cli presto-cli

이상으로 Presto 사용을 위한 기본 설치 및 설치가 완료 되었습니다.

 

설치과정에 대한 추가적인 정보는 Startburstdata Presto Documetation에서 확인할 수 있습니다.

https://docs.starburstdata.com/latest/index.html

 

Presto Documentation — Starburst Distribution of Presto 302-e.11 Documentation

 

docs.starburstdata.com

☞ 이 글이 도움이 되셨다면 광고 클릭을 부탁드립니다 :) 

공유하기

facebook twitter kakaoTalk kakaostory naver band