## 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"]