# 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 HADOOP_VERSION=2.8.4 FROM apachehudi/hudi-hadoop_${HADOOP_VERSION}-base:latest ENV HIVE_HOME /opt/hive ENV PATH $HIVE_HOME/bin:$PATH ENV HADOOP_HOME /opt/hadoop-$HADOOP_VERSION WORKDIR /opt ARG HIVE_VERSION=2.3.3 ARG HIVE_URL=https://archive.apache.org/dist/hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz ENV HIVE_VERSION ${HIVE_VERSION} ENV HIVE_URL ${HIVE_URL} #Install Hive MySQL, PostgreSQL JDBC RUN echo "Hive URL is :${HIVE_URL}" && wget ${HIVE_URL} -O hive.tar.gz && \ tar -xzvf hive.tar.gz && mv *hive*-bin hive && \ ln -s /usr/share/java/mysql-connector-java.jar $HIVE_HOME/lib/mysql-connector-java.jar && \ wget https://jdbc.postgresql.org/download/postgresql-9.4.1212.jar -O $HIVE_HOME/lib/postgresql-jdbc.jar && \ rm hive.tar.gz && mkdir -p /var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/ #Spark should be compiled with Hive to be able to use it #hive-site.xml should be copied to $SPARK_HOME/conf folder #Custom configuration goes here ADD conf/hive-site.xml $HADOOP_CONF_DIR ADD conf/beeline-log4j2.properties $HIVE_HOME/conf ADD conf/hive-env.sh $HIVE_HOME/conf ADD conf/hive-exec-log4j2.properties $HIVE_HOME/conf ADD conf/hive-log4j2.properties $HIVE_HOME/conf ADD conf/ivysettings.xml $HIVE_HOME/conf ADD conf/llap-daemon-log4j2.properties $HIVE_HOME/conf # Setup Hoodie Library jars ADD target/ /var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/ ENV HUDI_HADOOP_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-hadoop-mr-bundle.jar ENV HUDI_HIVE_SYNC_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-hive-sync-bundle.jar ENV HUDI_SPARK_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-spark-bundle.jar ENV HUDI_UTILITIES_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-utilities.jar ENV HUDI_INTEG_TEST_BUNDLE=/var/hoodie/ws/docker/hoodie/hadoop/hive_base/target/hoodie-integ-test-bundle.jar COPY startup.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/startup.sh COPY entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/entrypoint.sh ENV PATH $HIVE_HOME/bin/:$PATH # NOTE: This is the only battle-proven method to inject jars into Hive CLI ENV AUX_CLASSPATH=file://${HUDI_HADOOP_BUNDLE} ENTRYPOINT ["entrypoint.sh"] CMD startup.sh