@@ -50,16 +50,8 @@ ENV ZOOKEEPER_SHA512="0e5a64713abc6f36d961dd61a06f681868171a9d9228366e512a013248
5050ENV HBASE_SHA512="1032521025660daa70260cdc931f52a26c87596be444451fe1fa88b526ede55e9d6b4220e91ff6f7422bec11f30d64fa6745e95a9c36971fdb1a264a2c745693"
5151ENV TEZ_SHA512="a2d94bd9fa778d42a8bac9d9da8e263e469ddfef93968b06434716554995f490231de5607541ac236e770aa0158b64250c38bc1cd57dbfa629fea705f2ffa2f5"
5252
53- # faster mirror:
54- ENV APACHE_MIRROR="repo.huaweicloud.com/apache"
55- # ENV APACHE_MIRROR="archive.apache.org/dist/"
56- # ENV APACHE_MIRROR="mirror.yandex.ru/mirrors/apache/"
57-
58- ENV HADOOP_URL="https://$APACHE_MIRROR/hadoop/common/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz"
59- ENV HIVE_URL="https://$APACHE_MIRROR/hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz"
60- ENV ZOOKEEPER_URL="https://$APACHE_MIRROR/zookeeper/zookeeper-$ZOOKEEPER_VERSION/apache-zookeeper-$ZOOKEEPER_VERSION-bin.tar.gz"
61- ENV HBASE_URL="https://$APACHE_MIRROR/hbase/$HBASE_VERSION/hbase-$HBASE_VERSION-bin.tar.gz"
62- ENV TEZ_URL="https://$APACHE_MIRROR/tez/$TEZ_VERSION/apache-tez-$TEZ_VERSION-bin.tar.gz"
53+ # Mirror list: try fast mirrors first, fall back to official archive
54+ ENV APACHE_MIRRORS="repo.huaweicloud.com/apache archive.apache.org/dist"
6355
6456ENV GPHD_ROOT=/home/gpadmin/workspace/singlecluster
6557ENV HADOOP_ROOT=$GPHD_ROOT/hadoop
@@ -68,34 +60,54 @@ ENV HIVE_ROOT=$GPHD_ROOT/hive
6860ENV ZOOKEEPER_ROOT=$GPHD_ROOT/zookeeper
6961ENV TEZ_ROOT=$GPHD_ROOT/tez
7062
63+ # Helper: download from first working mirror with retry
64+ # Usage: apache_download <relative_path> <output_file>
65+ RUN cat > /usr/local/bin/apache_download.sh <<'DLEOF' && chmod +x /usr/local/bin/apache_download.sh
66+ # !/bin/bash
67+ set -e
68+ rel_path="$1" ; output="$2"
69+ for mirror in $APACHE_MIRRORS; do
70+ url="https://${mirror}/${rel_path}"
71+ echo "Trying: $url"
72+ if curl -fSL --retry 2 --retry-delay 3 --connect-timeout 15 "$url" -o "$output" 2>&1; then
73+ echo "Downloaded from $mirror"
74+ exit 0
75+ fi
76+ echo "Failed from $mirror, trying next..."
77+ rm -f "$output"
78+ done
79+ echo "ERROR: all mirrors failed for $rel_path"
80+ exit 1
81+ DLEOF
82+
7183RUN mkdir -p $HADOOP_ROOT && \
72- curl -fSL "$HADOOP_URL" -o /tmp/hadoop.tar.gz && \
84+ apache_download.sh "hadoop/common/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz" /tmp/hadoop.tar.gz && \
7385 echo "$HADOOP_SHA512 /tmp/hadoop.tar.gz" | sha512sum -c && \
7486 tar xvf /tmp/hadoop.tar.gz -C $HADOOP_ROOT --strip-components 1 --exclude="share/doc/*" --exclude="*-sources.jar" && \
7587 rm /tmp/hadoop.tar.gz && \
76- curl -fSL "https://repo1.maven.org/maven2/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" \
88+ curl -fSL --retry 2 "https://repo1.maven.org/maven2/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" \
7789 -o $HADOOP_ROOT/share/hadoop/common/lib/javax.activation-api-1.2.0.jar
7890
7991RUN mkdir -p $HIVE_ROOT && \
80- curl -fSL $HIVE_URL -o /tmp/hive.tar.gz && \
92+ apache_download.sh "hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz" /tmp/hive.tar.gz && \
8193 echo "$HIVE_SHA256 /tmp/hive.tar.gz" | sha256sum -c && \
8294 tar xvf /tmp/hive.tar.gz -C $HIVE_ROOT --strip-components 1 && \
8395 rm /tmp/hive.tar.gz
8496
8597RUN mkdir -p $ZOOKEEPER_ROOT && \
86- curl -fSL $ZOOKEEPER_URL -o /tmp/zookeeper.tar.gz && \
98+ apache_download.sh "zookeeper/zookeeper-$ZOOKEEPER_VERSION/apache-zookeeper-$ZOOKEEPER_VERSION-bin.tar.gz" /tmp/zookeeper.tar.gz && \
8799 echo "$ZOOKEEPER_SHA512 /tmp/zookeeper.tar.gz" | sha512sum -c && \
88100 tar xvf /tmp/zookeeper.tar.gz -C $ZOOKEEPER_ROOT --strip-components 1 --exclude="docs/*" && \
89101 rm /tmp/zookeeper.tar.gz
90102
91103RUN mkdir -p $HBASE_ROOT && \
92- curl -fSL "$HBASE_URL" -o /tmp/hbase.tar.gz && \
104+ apache_download.sh "hbase/$HBASE_VERSION/hbase-$HBASE_VERSION-bin.tar.gz" /tmp/hbase.tar.gz && \
93105 echo "$HBASE_SHA512 /tmp/hbase.tar.gz" | sha512sum -c && \
94106 tar xvf /tmp/hbase.tar.gz -C $HBASE_ROOT --strip-components 1 --exclude="docs/*" --exclude="lib/*-tests.jar" --exclude="lib/shaded-clients" && \
95107 rm /tmp/hbase.tar.gz
96108
97109RUN mkdir -p $TEZ_ROOT && \
98- curl -fSL "$TEZ_URL" -o /tmp/tez.tar.gz && \
110+ apache_download.sh "tez/$TEZ_VERSION/apache-tez-$TEZ_VERSION-bin.tar.gz" /tmp/tez.tar.gz && \
99111 echo "$TEZ_SHA512 /tmp/tez.tar.gz" | sha512sum -c && \
100112 tar xvf /tmp/tez.tar.gz -C $TEZ_ROOT --strip-components 1 && \
101113 rm /tmp/tez.tar.gz
0 commit comments