1
2
mirror of https://github.com/vimagick/dockerfiles synced 2024-06-24 07:48:38 +00:00

split presto to prestodb+prestosql

This commit is contained in:
kev 2019-10-21 11:36:26 +08:00
parent 46eb7659a1
commit b48eefc547
32 changed files with 121 additions and 63 deletions

@ -47,7 +47,8 @@ A collection of delicious docker recipes.
- [x] ambari
- [x] kafka-arm
- [x] kafka-manager
- [x] presto
- [x] prestodb (official)
- [x] prestosql (community)
- [x] superset-arm
- [x] zookeeper-arm

@ -1,47 +0,0 @@
presto
======
[Presto][1] is a distributed SQL query engine designed to query large data sets
distributed over one or more heterogeneous data sources.
## standalone mode
```yaml
presto:
image: vimagick/presto
ports:
- "8080:8080"
volumes:
- ./conf/standalone:/opt/presto/etc:ro
- /data:/data
restart: unless-stopped
```
## cluster mode
```bash
$ ansible all -a 'mkdir -p /data'
$ docker stack deploy -c docker-stack.yml presto
$ docker service update --replicas-max-per-node=1 presto_worker
$ docker service update --replicas 10 presto_worker
$ docker ps | grep presto_coordinator | awk '{print $1}'
4cc5c6c420d7
$ docker exec -it 4cc5c6c420d7 presto --server localhost:8080 --catalog tpch
>>> show schemas;
>>> show tables from tiny;
>>> select * from tiny.customer limit 10;
>>> quit
$ curl http://localhost:8080/ui/
$ curl http://localhost:8080/v1/service/presto/general
```
> :warning: If volume settings are changed, you need to remove them manually on all nodes.
[1]: https://prestodb.io/

@ -1,11 +1,11 @@
#
# Dockerfile for presto
# Dockerfile for prestodb
#
FROM openjdk:8-jre-alpine
MAINTAINER kev <noreply@easypi.pro>
ENV PRESTO_VERSION=0.226
ENV PRESTO_VERSION=0.227
ENV PRESTO_SERVER_URL=https://repo1.maven.org/maven2/com/facebook/presto/presto-server/${PRESTO_VERSION}/presto-server-${PRESTO_VERSION}.tar.gz
ENV PRESTO_CLI_URL=https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/${PRESTO_VERSION}/presto-cli-${PRESTO_VERSION}-executable.jar
ENV PRESTO_HOME=/opt/presto

@ -1,11 +1,11 @@
#
# Dockerfile for presto
# Dockerfile for prestodb
#
FROM openjdk:8-jre-slim-buster
MAINTAINER kev <noreply@easypi.pro>
ENV PRESTO_VERSION=0.226
ENV PRESTO_VERSION=0.227
ENV PRESTO_SERVER_URL=https://repo1.maven.org/maven2/com/facebook/presto/presto-server/${PRESTO_VERSION}/presto-server-${PRESTO_VERSION}.tar.gz
ENV PRESTO_CLI_URL=https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/${PRESTO_VERSION}/presto-cli-${PRESTO_VERSION}-executable.jar
ENV PRESTO_HOME=/opt/presto

48
prestodb/README.md Normal file

@ -0,0 +1,48 @@
prestodb
========
[Presto][1] is an open source distributed SQL query engine for running
interactive analytic queries against data sources of all sizes ranging from
gigabytes to petabytes.
## standalone mode
```yaml
prestodb:
image: vimagick/prestodb
ports:
- "8080:8080"
volumes:
- ./conf/standalone:/opt/presto/etc:ro
- /data:/data
restart: unless-stopped
```
## cluster mode
```bash
$ ansible all -a 'mkdir -p /data'
$ docker stack deploy -c docker-stack.yml prestodb
$ docker service update --replicas-max-per-node=1 prestodb_worker
$ docker service update --replicas 10 prestodb_worker
$ docker ps | grep prestodb_coordinator | awk '{print $1}'
4cc5c6c420d7
$ docker exec -it 4cc5c6c420d7 prestodb --server localhost:8080 --catalog tpch
>>> show schemas;
>>> show tables from tiny;
>>> select * from tiny.customer limit 10;
>>> quit
$ curl http://localhost:8080/ui/
$ curl http://localhost:8080/v1/service/presto/general
```
> :warning: If volume settings are changed, you need to remove them manually on all nodes.
[1]: https://prestodb.github.io/

@ -14,7 +14,7 @@ nfs:
- /lib/modules:/lib/modules:ro
environment:
- NFS_LOG_LEVEL=DEBUG
- NFS_EXPORT_0=/export/presto/coordinator *(ro,no_subtree_check)
- NFS_EXPORT_1=/export/presto/worker1 *(ro,no_subtree_check)
- NFS_EXPORT_0=/export/prestodb/coordinator *(ro,no_subtree_check)
- NFS_EXPORT_1=/export/prestodb/worker1 *(ro,no_subtree_check)
privileged: true
restart: unless-stopped

@ -3,12 +3,12 @@ version: "3.7"
services:
coordinator:
image: vimagick/presto
image: vimagick/prestodb
ports:
- "8080:8080"
volumes:
- /data:/data
- presto_coordinator_conf:/opt/presto/etc
- prestodb_coordinator_conf:/opt/presto/etc
deploy:
replicas: 1
placement:
@ -19,10 +19,10 @@ services:
condition: on-failure
worker:
image: vimagick/presto
image: vimagick/prestodb
volumes:
- /data:/data
- presto_worker_conf:/opt/presto/etc
- prestodb_worker_conf:/opt/presto/etc
deploy:
replicas: 0
placement:
@ -35,16 +35,16 @@ services:
volumes:
presto_coordinator_conf:
prestodb_coordinator_conf:
driver: local
driver_opts:
type: nfs
o: "addr=10.0.0.1,nolock,soft,ro"
device: ":/export/presto/coordinator"
device: ":/export/prestodb/coordinator"
presto_worker_conf:
prestodb_worker_conf:
driver: local
driver_opts:
type: nfs
o: "addr=10.0.0.1,nolock,soft,ro"
device: ":/export/presto/worker"
device: ":/export/prestodb/worker"

@ -1,5 +1,5 @@
#
# Dockerfile for presto-ce
# Dockerfile for prestosql
#
FROM openjdk:8-jre-alpine

6
prestosql/README.md Normal file

@ -0,0 +1,6 @@
prestosql
=========
[Presto][1] is a high performance, distributed SQL query engine for big data.
[1]: https://prestosql.io

@ -0,0 +1,50 @@
version: "3.7"
services:
coordinator:
image: vimagick/prestosql
ports:
- "8080:8080"
volumes:
- /data:/data
- prestosql_coordinator_conf:/opt/presto/etc
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
- node.hostname == presto-coordinator
restart_policy:
condition: on-failure
worker:
image: vimagick/prestosql
volumes:
- /data:/data
- prestosql_worker_conf:/opt/presto/etc
deploy:
replicas: 0
placement:
constraints:
- node.role == worker
restart_policy:
condition: on-failure
depends_on:
- coordinator
volumes:
prestosql_coordinator_conf:
driver: local
driver_opts:
type: nfs
o: "addr=10.0.0.1,nolock,soft,ro"
device: ":/export/prestosql/coordinator"
prestosql_worker_conf:
driver: local
driver_opts:
type: nfs
o: "addr=10.0.0.1,nolock,soft,ro"
device: ":/export/prestosql/worker"