mirror of
https://github.com/apache/impala.git
synced 2026-02-02 06:00:36 -05:00
What works:
* A single node cluster can be started up with docker-compose
* HMS data is stored in Derby database in a docker volume
* Filesystem data is stored in a shared docker volume, using the
localfs support in the Hadoop client.
* A Kudu cluster with a single master can be optionally added on
to the Impala cluster.
* TPC-DS data can be loaded automatically by a data loading container.
We need to set up a docker network called quickstart-network,
purely because docker-compose insists on generating network names
with underscores, which are part of the FQDN and end up causing
problems with Java's URL parsing, which rejects these technically
invalid domain names.
How to run:
Instructions for running the quickstart cluster are in
docker/README.md.
How to build containers:
./buildall.sh -release -noclean -notests -ninja
ninja quickstart_hms_image quickstart_client_image docker_images
How to upload containers to dockerhub:
IMPALA_QUICKSTART_IMAGE_PREFIX=timgarmstrong/
for i in impalad_coord_exec impalad_coordinator statestored \
impalad_executor catalogd impala_quickstart_client \
impala_quickstart_hms
do
docker tag $i ${IMPALA_QUICKSTART_IMAGE_PREFIX}$i
docker push ${IMPALA_QUICKSTART_IMAGE_PREFIX}$i
done
I pushed containers build from commit f260cce22, which
was branched from 6cb7cecacf on master.
Misc other stuff:
* Added more metadata to all images.
TODO:
* Test and instructions to run against Kudu quickstart
* Upload latest version of containers before merging.
Change-Id: Ifc0b862af40a368381ada7ec2a355fe4b0aa778c
Reviewed-on: http://gerrit.cloudera.org:8080/15966
Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
63 lines
2.6 KiB
Docker
63 lines
2.6 KiB
Docker
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
ARG BASE_IMAGE=ubuntu:16.04
|
|
FROM ${BASE_IMAGE}
|
|
|
|
# Install minimal dependencies required for Impala services to run.
|
|
RUN apt-get update && \
|
|
apt-get install -y openjdk-8-jre-headless \
|
|
libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit \
|
|
sudo netcat-openbsd less curl iproute2 vim iputils-ping \
|
|
tzdata krb5-user && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Use a non-privileged impala user to run the daemons in the container.
|
|
# That user should own everything in the /opt/impala subdirectory.
|
|
RUN groupadd -r impala -g 1000 && useradd --no-log-init -r -u 1000 -g 1000 impala && \
|
|
mkdir -p /opt/impala && chown impala /opt/impala && \
|
|
chmod ugo+w /etc/passwd
|
|
USER impala
|
|
|
|
# Copy build artifacts required for the daemon processes. The daemon images are
|
|
# responsible for copying in the required jar files, as each daemon has a different
|
|
# set of jar dependencies.
|
|
# Need to have multiple copy commands to preserve directory structure.
|
|
COPY --chown=impala www /opt/impala/www
|
|
COPY --chown=impala bin /opt/impala/bin
|
|
# Symlink here instead of in setup_build_context to avoid duplicate binaries.
|
|
RUN cd /opt/impala/bin && ln -s impalad statestored && ln -s impalad catalogd && \
|
|
ln -s impalad admissiond && \
|
|
# Create conf directory for later config injection.
|
|
mkdir /opt/impala/conf && \
|
|
# Create logs directory to collect container logs.
|
|
mkdir /opt/impala/logs && \
|
|
# Create ranger cache directory that is used when ranger is enabled.
|
|
mkdir /opt/impala/rangercache
|
|
|
|
WORKDIR /opt/impala/
|
|
|
|
LABEL name="Apache Impala Daemon Base Image" \
|
|
description="Common base image for Apache Impala daemons." \
|
|
# Common labels.
|
|
org.label-schema.maintainer=$MAINTAINER \
|
|
org.label-schema.url=$URL \
|
|
org.label-schema.vcs-ref=$VCS_REF \
|
|
org.label-schema.vcs-type=$VCS_TYPE \
|
|
org.label-schema.vcs-url=$VCS_URL \
|
|
org.label-schema.version=$VERSION
|