Trino(PrestoDB)는 분산 SQL 쿼리 엔진으로, 하나 이상의 혼성 데이터 소스에 분산된 대규모 데이터 세트를 쿼리하기 위해 설계된 오픈 소스 소프트웨어이다. Trino는 Hive 및 Iceberg 테이블 형식을 사용하여 HDFS, AWS S3, Google Cloud Storage 또는 Azure Blob Storage 같은 다양한 스토리지 시스템에 존재하는 ORC 또는 Parquet 와 같은 개방형 열 지향 데이터 파일 형식을 포함하는 데이터레이크를 쿼리할 수 있다. 또한 Trino는 MySQL, PostgreSQL, Cassandra, Kafka, MongoDB, 그리고 Elasticsearch 와 같은 다양한 데이터 소스의 테이블을 쿼리하는 페더레이션 쿼리를 실행할 수 있다. Trino는 Apache 라이선스 에 따라 배포된다.
AWS의 Athena가 Presto 기반, NHN cloud의 DataQuery의 경우 Trino 기반이다.
구동이 먼저 나온 이유는, 배포되는 minio 파일이 바로 실행파일이기 때문이다. 기본 옵션 플래그만 붙여서 실행하면 싱글노드 구동은 즉시 가능하다. 데이터가 저장될 디렉토리를 생성하고 서비스를 실행해보자. 딱히 설정파일 등을 만들 필요 없이 명령 한줄로 실행된다.
haedong@haedong:~:]$ mkdir data
haedong@haedong:~:]$ chmod 700 minio
#755 등을 줘도 무방하다.
haedong@haedong:~:]$ ./minio server --address :9000 --console-address :9090 /home/haedong/data
API: http://192.168.192.168:9000 http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin
Console: http://192.168.192.168:9090 http://127.0.0.1:9090
RootUser: minioadmin
RootPass: minioadmin
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://172.17.172.110:9000 minioadmin minioadmin
Documentation: https://docs.min.io
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
갤러리 추가
표준 출력으로 출력된 RootUser 는 username, RootPass는 password로 하여 서비스 콘솔에 접속할 수 있다. 로그인 이후 접속을 위한 endpoint access key를 생성하거나 Bucket을 생성하고 웹 UI를 통해 데이터를 업로드할 수 있다.
멀티 노드 구성 싱글노드와 달리 몇가지 정보를 추가해 주는 것이 관리에 용이하다. minio 디렉토리를 생성하고 관리를 위한 정보들을 추가한 구동 스크립트를 생성하자. vi ~/minio/start.sh
#!/bin/bash
MINIO_HOME=$HOME/minio
MINIO_BIN_DIR=$MINIO_HOME/bin
MINIO_DATA_DIR=$MINIO_HOME/data
MINIO_LOG_DIR=$MINIO_HOME/logs
export MINIO_ROOT_USER=haedonggang
export MINIO_ROOT_PASSWORD=haedonggang
LOG_FILE=$MINIO_LOG_DIR/minio.log
# 꼭 위와 같은 변수를 사용할 필요는 없지만 변수들을 이용해 설정을 해 두면 관리가 용이하다.
# host01 부터 host04까지 4개의 노드를 활용하는 경우
nohup $MINIO_BIN_DIR/minio server --address :9000 --console-address :9090 http://host01$MINIO_DATA_DIR http://host02$MINIO_DATA_DIR http://host03$MINIO_DATA_DIR http://host04$MINIO_DATA_DIR >> $LOG_FILE &
MINIO_PID=$!
if [ ! -z $MINIO_PID ] ; then
echo "$MINIO_PID" > minio.pid
fi
이후 각 노드에서 start.sh 스크립트를 이용해 서비스를 구동하면 된다. 딱히 마스터의 개념은 없으므로 각각 노드에서 스크립트를 한 번씩 실행하자.
이후 싱글노드 구성에서와 같이 9090포트를 이용해 접속하면 된다. 다만 노드가 4개이므로 어느 노드에 접속해도 동일한 화면을 확인할 수 있다.
댓글을 달려면 로그인해야 합니다.