70 lines
2.2 KiB
Docker
70 lines
2.2 KiB
Docker
## Presto docker setup is based on https://github.com/smizy/docker-presto
|
|
|
|
ARG HADOOP_VERSION=2.8.4
|
|
ARG HIVE_VERSION=2.3.3
|
|
FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-base:latest as hadoop-base
|
|
|
|
ARG PRESTO_VERSION=0.217
|
|
|
|
ENV PRESTO_VERSION ${PRESTO_VERSION}
|
|
ENV PRESTO_HOME /opt/presto-server-${PRESTO_VERSION}
|
|
ENV PRESTO_CONF_DIR ${PRESTO_HOME}/etc
|
|
ENV PRESTO_LOG_DIR /var/log/presto
|
|
ENV PRESTO_JVM_MAX_HEAP 2G
|
|
ENV PRESTO_QUERY_MAX_MEMORY 1GB
|
|
ENV PRESTO_QUERY_MAX_MEMORY_PER_NODE 512MB
|
|
ENV PRESTO_DISCOVERY_URI http://presto-coordinator-1:8090
|
|
ENV PATH $PATH:${PRESTO_HOME}/bin
|
|
|
|
RUN set -x \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get -yq update \
|
|
&& apt-get -yq install \
|
|
bash \
|
|
less \
|
|
python \
|
|
tar \
|
|
wget \
|
|
## - hadoop native dependency lib
|
|
bzip2 \
|
|
fts \
|
|
fuse \
|
|
libtirpc1 \
|
|
libsnappy1v5 \
|
|
zip \
|
|
cron \
|
|
gosu \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
## presto-server
|
|
&& wget -q -O - https://repo1.maven.org/maven2/com/facebook/presto/presto-server/${PRESTO_VERSION}/presto-server-${PRESTO_VERSION}.tar.gz \
|
|
| tar -xzf - -C /opt/ \
|
|
&& mkdir -p /var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/ \
|
|
## presto-client
|
|
&& wget -q -O /usr/local/bin/presto https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/${PRESTO_VERSION}/presto-cli-${PRESTO_VERSION}-executable.jar \
|
|
&& chmod +x /usr/local/bin/presto \
|
|
## user/dir/permmsion
|
|
&& adduser --shell /sbin/nologin --uid 1000 docker \
|
|
&& adduser --shell /sbin/nologin presto \
|
|
&& mkdir -p \
|
|
${PRESTO_CONF_DIR} \
|
|
${PRESTO_LOG_DIR} \
|
|
&& chmod -R 777 \
|
|
${PRESTO_HOME} \
|
|
${PRESTO_LOG_DIR} \
|
|
## cleanup
|
|
&& rm -rf /tmp/nativelib
|
|
|
|
COPY etc/ ${PRESTO_CONF_DIR}/
|
|
COPY bin/* /usr/local/bin/
|
|
COPY lib/* /usr/local/lib/
|
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
|
|
ADD target/ /var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/
|
|
ENV HUDI_PRESTO_BUNDLE /var/hoodie/ws/docker/hoodie/hadoop/prestobase/target/hudi-presto-bundle.jar
|
|
RUN cp ${HUDI_PRESTO_BUNDLE} ${PRESTO_HOME}/plugin/hive-hadoop2/
|
|
|
|
VOLUME ["${PRESTO_LOG_DIR}"]
|
|
|
|
WORKDIR ${PRESTO_HOME}
|
|
|
|
ENTRYPOINT ["entrypoint.sh"]
|