This is an automated email from the ASF dual-hosted git repository.
michaelsmith pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new ba67660b3 IMPALA-10408: Support build using Apache components
ba67660b3 is described below
commit ba67660b3a918ae5ec83a15879f5aea32caf1489
Author: Yubi Lee <[email protected]>
AuthorDate: Sat Sep 10 11:28:32 2022 +0900
IMPALA-10408: Support build using Apache components
Apache Impala uses many CDP components to build it.
This patch provides a way to support building Apache Impala
using Apache components.
Change-Id: I8730dd182b367c9daa94303937ad249db72b1399
Reviewed-on: http://gerrit.cloudera.org:8080/18977
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>
---
README-build.md | 8 ++
bin/bootstrap_toolchain.py | 57 +++++++-
bin/impala-config.sh | 143 ++++++++++++++-------
buildall.sh | 5 +-
fe/pom.xml | 2 +-
.../apache/impala/util/IcebergMetadataScanner.java | 1 -
java/TableFlattener/pom.xml | 5 +
java/pom.xml | 1 +
8 files changed, 165 insertions(+), 57 deletions(-)
diff --git a/README-build.md b/README-build.md
index 89e30c7ad..7d469c06a 100644
--- a/README-build.md
+++ b/README-build.md
@@ -36,6 +36,14 @@ can do so through the environment variables and scripts
listed below.
| JAVA | "${JAVA_HOME}/bin/java" | Java binary location. |
| CLASSPATH | | See bin/set-classpath.sh for details. |
| PYTHONPATH | | See bin/set-pythonpath.sh for details. |
+| USE_APACHE_COMPONENTS | false | Use Apache components for Hadoop, HBase,
Hive, Tez, Ranger. It will set USE_APACHE_{HADOOP,HBASE,HIVE,TEZ,RANGER}
variable as true if not set. |
+| USE_APACHE_HADOOP | false | Use Apache Hadoop |
+| USE_APACHE_HBASE | false | Use Apache HBase |
+| USE_APACHE_HIVE | false | Use Apache Hive |
+| USE_APACHE_TEZ | false | Use Apache Tez |
+| USE_APACHE_RANGER | false | Use Apache Ranger |
+| DOWNLOAD_CDH_COMPONENTS | true | Download CDH components |
+| DOWNLOAD_APACHE_COMPONENTS | true | Download Apache components |
## Source Directories for Impala
diff --git a/bin/bootstrap_toolchain.py b/bin/bootstrap_toolchain.py
index fea6a2ed3..42e5049b6 100755
--- a/bin/bootstrap_toolchain.py
+++ b/bin/bootstrap_toolchain.py
@@ -503,9 +503,28 @@ def get_toolchain_downloads():
def get_hadoop_downloads():
cluster_components = []
- hadoop = CdpComponent("hadoop")
- hbase = CdpComponent("hbase", archive_basename_tmpl="hbase-${version}-bin",
- unpack_directory_tmpl="hbase-${version}")
+ use_apache_hadoop = os.environ["USE_APACHE_HADOOP"] == "true"
+ use_apache_hbase = os.environ["USE_APACHE_HBASE"] == "true"
+ use_apache_hive = os.environ["USE_APACHE_HIVE"] == "true"
+ use_apache_tez = os.environ["USE_APACHE_TEZ"] == "true"
+ use_apache_ranger = os.environ["USE_APACHE_RANGER"] == "true"
+ use_apache_ozone = os.environ["USE_APACHE_OZONE"] == "true"
+ if use_apache_hadoop:
+ hadoop = ApacheComponent("hadoop",
+
component_path_tmpl="${name}/common/${name}-${version}/",
+ archive_basename_tmpl="${name}-${version}")
+ else:
+ hadoop = CdpComponent("hadoop")
+
+ if use_apache_hbase:
+ hbase = ApacheComponent("hbase",
+ component_path_tmpl="${name}/${version}/",
+
archive_basename_tmpl="${name}-${version}-hadoop3-bin",
+ unpack_directory_tmpl="${name}-${version}")
+ else:
+ hbase = CdpComponent("hbase",
+ archive_basename_tmpl="hbase-${version}-bin",
+ unpack_directory_tmpl="hbase-${version}")
use_apache_ozone = os.environ["USE_APACHE_OZONE"] == "true"
if use_apache_ozone:
@@ -523,9 +542,32 @@ def get_hadoop_downloads():
explicit_version=os.environ.get("IMPALA_HIVE_VERSION"),
archive_basename_tmpl="hive-${version}-source",
unpack_directory_tmpl="hive-${version}")
-
- tez = CdpComponent("tez", archive_basename_tmpl="tez-${version}-minimal",
makedir=True)
- ranger = CdpComponent("ranger",
archive_basename_tmpl="ranger-${version}-admin")
+ if use_apache_tez:
+ tez = ApacheComponent("tez",
+ component_path_tmpl="${name}/${version}/",
+
archive_basename_tmpl="apache-${name}-${version}-bin")
+ else:
+ tez = CdpComponent("tez",
+ archive_basename_tmpl="tez-${version}-minimal",
+ makedir=True)
+ if use_apache_ranger:
+ url_prefix_tmpl =
"https://${toolchain_host}/build/apache_components/tarballs/"
+ archive_basename_tmpl = "${name}-${version}-admin"
+ template_subs = {
+ "toolchain_host": os.environ["IMPALA_TOOLCHAIN_HOST"],
+ }
+ destination_basedir = os.environ["APACHE_COMPONENTS_HOME"]
+ ranger = EnvVersionedPackage("ranger",
+ url_prefix_tmpl,
+ destination_basedir,
+ archive_basename_tmpl=archive_basename_tmpl,
+ template_subs_in=template_subs)
+ else:
+ ranger = CdpComponent("ranger",
archive_basename_tmpl="ranger-${version}-admin")
+ if use_apache_ozone:
+ ozone = ApacheComponent("ozone", component_path_tmpl="ozone/${version}")
+ else:
+ ozone = CdpComponent("ozone")
use_override_hive = \
"HIVE_VERSION_OVERRIDE" in os.environ and
os.environ["HIVE_VERSION_OVERRIDE"] != ""
use_override_ranger = \
@@ -581,7 +623,10 @@ def main():
downloads += get_toolchain_downloads()
if os.getenv("DOWNLOAD_CDH_COMPONENTS", "false") == "true":
create_directory_from_env_var("CDP_COMPONENTS_HOME")
+ if os.getenv("DOWNLOAD_APACHE_COMPONENTS", "false") == "true":
create_directory_from_env_var("APACHE_COMPONENTS_HOME")
+ if (os.getenv("DOWNLOAD_CDH_COMPONENTS", "false") == "true"
+ or os.getenv("DOWNLOAD_APACHE_COMPONENTS", "false") == "true"):
if os.getenv("SKIP_TOOLCHAIN_BOOTSTRAP", "false") != "true":
# Kudu is currently sourced from native-toolchain
downloads += get_kudu_downloads()
diff --git a/bin/impala-config.sh b/bin/impala-config.sh
index 84f9d58db..d56060ad0 100755
--- a/bin/impala-config.sh
+++ b/bin/impala-config.sh
@@ -72,10 +72,6 @@ fi
# mvn versions:set -DnewVersion=YOUR_NEW_VERSION
export IMPALA_VERSION=4.5.0-SNAPSHOT
-# Whether to build on Apache Hive (or CDP Hive). Versions of some toolchain
dependencies
-# (e.g. thrift) will also depend on this.
-export USE_APACHE_HIVE=${USE_APACHE_HIVE-false}
-
# Whether to build the backend on Avro C++ library or C.
# This is added temporarily to help transitioning from Avro C to C++ library.
export USE_AVRO_CPP=${USE_AVRO_CPP:=false}
@@ -213,29 +209,6 @@ unset IMPALA_MOLD_URL
# Impala JDBC driver for testing.
export IMPALA_SIMBA_JDBC_DRIVER_VERSION=42-2.6.32.1041
-# Thrift related environment variables.
-# IMPALA_THRIFT_POM_VERSION is used to populate IMPALA_THRIFT_JAVA_VERSION and
-# thrift.version in java/pom.xml.
-# IMPALA_THRIFT_PY_VERSION is used to find the thrift compiler to produce
-# the generated Python code. The code that uses the generated Python code gets
-# the corresponding Thrift runtime library by pip installing thrift (and does
not
-# respect this version). If upgrading IMPALA_THRIFT_PY_VERSION, also upgrade
the
-# thrift version in shell/ext-py, shell/packaging/requirements.txt, and
-# infra/python/deps/requirements.txt.
-export IMPALA_THRIFT_CPP_VERSION=0.16.0-p7
-unset IMPALA_THRIFT_CPP_URL
-if $USE_APACHE_HIVE; then
- # Apache Hive 3 clients can't run on thrift versions >= 0.14 (IMPALA-11801)
- export IMPALA_THRIFT_POM_VERSION=0.11.0
- export IMPALA_THRIFT_JAVA_VERSION=${IMPALA_THRIFT_POM_VERSION}-p5
-else
- export IMPALA_THRIFT_POM_VERSION=0.16.0
- export IMPALA_THRIFT_JAVA_VERSION=${IMPALA_THRIFT_POM_VERSION}-p7
-fi
-unset IMPALA_THRIFT_JAVA_URL
-export IMPALA_THRIFT_PY_VERSION=0.16.0-p7
-unset IMPALA_THRIFT_PY_URL
-
# Find system python versions for testing
export IMPALA_SYSTEM_PYTHON2="${IMPALA_SYSTEM_PYTHON2_OVERRIDE-$(command -v
python2)}"
export IMPALA_SYSTEM_PYTHON3="${IMPALA_SYSTEM_PYTHON3_OVERRIDE-$(command -v
python3)}"
@@ -272,13 +245,22 @@ export CDP_TEZ_VERSION=0.9.1.7.3.0.0-128
# Ref: https://infra.apache.org/release-download-pages.html#closer
: ${APACHE_MIRROR:="https://www.apache.org/dyn/closer.cgi"}
export APACHE_MIRROR
+export APACHE_AVRO_JAVA_VERSION=1.8.2
+export APACHE_HADOOP_VERSION=3.3.6
+export APACHE_HBASE_VERSION=2.6.0
+export APACHE_ICEBERG_VERSION=1.4.3
+export APACHE_KNOX_VERSION=1.6.1
+export APACHE_PARQUET_VERSION=1.12.3
+export APACHE_RANGER_VERSION=2.4.0
+export APACHE_TEZ_VERSION=0.10.3
export APACHE_HIVE_VERSION=3.1.3
export APACHE_HIVE_STORAGE_API_VERSION=2.7.0
-export APACHE_OZONE_VERSION=1.3.0
+export APACHE_OZONE_VERSION=1.4.0
# Java dependencies that are not also runtime components. Declaring versions
here allows
# other branches to override them in impala-config-branch.sh for cleaner
patches.
export IMPALA_BOUNCY_CASTLE_VERSION=1.78
+export IMPALA_COMMONS_IO_VERSION=2.6
export IMPALA_COS_VERSION=3.1.0-8.0.8
export IMPALA_DERBY_VERSION=10.14.2.0
export IMPALA_GUAVA_VERSION=32.0.1-jre
@@ -375,22 +357,53 @@ export APACHE_OZONE_URL=${APACHE_OZONE_URL-}
export CDP_COMPONENTS_HOME="$IMPALA_TOOLCHAIN/cdp_components-$CDP_BUILD_NUMBER"
export CDH_MAJOR_VERSION=7
-export IMPALA_AVRO_JAVA_VERSION=${CDP_AVRO_JAVA_VERSION}
-export IMPALA_HADOOP_VERSION=${CDP_HADOOP_VERSION}
-export IMPALA_HADOOP_URL=${CDP_HADOOP_URL-}
-export HADOOP_HOME="$CDP_COMPONENTS_HOME/hadoop-${IMPALA_HADOOP_VERSION}/"
-export IMPALA_HBASE_VERSION=${CDP_HBASE_VERSION}
-export IMPALA_HBASE_URL=${CDP_HBASE_URL-}
-export IMPALA_ICEBERG_VERSION=${CDP_ICEBERG_VERSION}
-export IMPALA_ICEBERG_URL=${CDP_ICEBERG_URL-}
-export IMPALA_KNOX_VERSION=${CDP_KNOX_VERSION}
-export IMPALA_PARQUET_VERSION=${CDP_PARQUET_VERSION}
-export IMPALA_RANGER_VERSION=${RANGER_VERSION_OVERRIDE:-"$CDP_RANGER_VERSION"}
-export IMPALA_RANGER_URL=${CDP_RANGER_URL-}
-export IMPALA_TEZ_VERSION=${CDP_TEZ_VERSION}
-export IMPALA_TEZ_URL=${CDP_TEZ_URL-}
+if ${USE_APACHE_COMPONENTS:=false}; then
+ export IMPALA_AVRO_JAVA_VERSION=${APACHE_AVRO_JAVA_VERSION}
+ export IMPALA_HADOOP_VERSION=${APACHE_HADOOP_VERSION}
+ export IMPALA_HBASE_VERSION=${APACHE_HBASE_VERSION}
+ export IMPALA_ICEBERG_VERSION=${APACHE_ICEBERG_VERSION}
+ export IMPALA_KNOX_VERSION=${APACHE_KNOX_VERSION}
+ export IMPALA_OZONE_VERSION=${APACHE_OZONE_VERSION}
+ export IMPALA_PARQUET_VERSION=${APACHE_PARQUET_VERSION}
+ export
IMPALA_RANGER_VERSION=${RANGER_VERSION_OVERRIDE:-"$APACHE_RANGER_VERSION"}
+ export IMPALA_TEZ_VERSION=${APACHE_TEZ_VERSION}
+ export USE_APACHE_HADOOP=${USE_APACHE_HADOOP:=true}
+ export USE_APACHE_HBASE=${USE_APACHE_HBASE:=true}
+ export USE_APACHE_HIVE=${USE_APACHE_HIVE:=true}
+ export USE_APACHE_TEZ=${USE_APACHE_TEZ:=true}
+ export USE_APACHE_RANGER=${USE_APACHE_RANGER:=true}
+ export USE_APACHE_OZONE=${USE_APACHE_OZONE:=true}
+else
+ export IMPALA_AVRO_JAVA_VERSION=${CDP_AVRO_JAVA_VERSION}
+ export IMPALA_HADOOP_VERSION=${CDP_HADOOP_VERSION}
+ export IMPALA_HADOOP_URL=${CDP_HADOOP_URL-}
+ export IMPALA_HBASE_VERSION=${CDP_HBASE_VERSION}
+ export IMPALA_HBASE_URL=${CDP_HBASE_URL-}
+ export IMPALA_ICEBERG_VERSION=${CDP_ICEBERG_VERSION}
+ export IMPALA_ICEBERG_URL=${CDP_ICEBERG_URL-}
+ export IMPALA_KNOX_VERSION=${CDP_KNOX_VERSION}
+ export IMPALA_OZONE_VERSION=${CDP_OZONE_VERSION}
+ export IMPALA_PARQUET_VERSION=${CDP_PARQUET_VERSION}
+ export
IMPALA_RANGER_VERSION=${RANGER_VERSION_OVERRIDE:-"$CDP_RANGER_VERSION"}
+ export IMPALA_RANGER_URL=${CDP_RANGER_URL-}
+ export IMPALA_TEZ_VERSION=${CDP_TEZ_VERSION}
+ export IMPALA_TEZ_URL=${CDP_TEZ_URL-}
+ export USE_APACHE_HADOOP=${USE_APACHE_HADOOP:=false}
+ export USE_APACHE_HBASE=${USE_APACHE_HBASE:=false}
+ export USE_APACHE_HIVE=${USE_APACHE_HIVE:=false}
+ export USE_APACHE_TEZ=${USE_APACHE_TEZ:=false}
+ export USE_APACHE_RANGER=${USE_APACHE_RANGER:=false}
+ export USE_APACHE_OZONE=${USE_APACHE_OZONE:=false}
+fi
export APACHE_COMPONENTS_HOME="$IMPALA_TOOLCHAIN/apache_components"
+
+if $USE_APACHE_HADOOP; then
+ export HADOOP_HOME="$APACHE_COMPONENTS_HOME/hadoop-${IMPALA_HADOOP_VERSION}"
+else
+ export HADOOP_HOME="$CDP_COMPONENTS_HOME/hadoop-${IMPALA_HADOOP_VERSION}"
+fi
+
if $USE_APACHE_HIVE; then
# When USE_APACHE_HIVE is set we use the apache hive version to build as
well as deploy
# in the minicluster
@@ -409,6 +422,28 @@ else
export IMPALA_HIVE_STORAGE_API_VERSION=${HIVE_STORAGE_API_VERSION_OVERRIDE:-\
"2.3.0.$IMPALA_HIVE_VERSION"}
fi
+# Thrift related environment variables.
+# IMPALA_THRIFT_POM_VERSION is used to populate IMPALA_THRIFT_JAVA_VERSION and
+# thrift.version in java/pom.xml.
+# IMPALA_THRIFT_PY_VERSION is used to find the thrift compiler to produce
+# the generated Python code. The code that uses the generated Python code gets
+# the corresponding Thrift runtime library by pip installing thrift (and does
not
+# respect this version). If upgrading IMPALA_THRIFT_PY_VERSION, also upgrade
the
+# thrift version in shell/ext-py, shell/packaging/requirements.txt, and
+# infra/python/deps/requirements.txt.
+export IMPALA_THRIFT_CPP_VERSION=0.16.0-p7
+unset IMPALA_THRIFT_CPP_URL
+if $USE_APACHE_HIVE; then
+ # Apache Hive 3 clients can't run on thrift versions >= 0.14 (IMPALA-11801)
+ export IMPALA_THRIFT_POM_VERSION=0.11.0
+ export IMPALA_THRIFT_JAVA_VERSION=${IMPALA_THRIFT_POM_VERSION}-p5
+else
+ export IMPALA_THRIFT_POM_VERSION=0.16.0
+ export IMPALA_THRIFT_JAVA_VERSION=${IMPALA_THRIFT_POM_VERSION}-p7
+fi
+unset IMPALA_THRIFT_JAVA_URL
+export IMPALA_THRIFT_PY_VERSION=0.16.0-p7
+unset IMPALA_THRIFT_PY_URL
# Extract the first component of the hive version.
# Allow overriding of Hive source location in case we want to build Impala
without
@@ -423,7 +458,6 @@ if [[ "${IMPALA_HIVE_MAJOR_VERSION}" == "1" ||
return 1
fi
-export USE_APACHE_OZONE=${USE_APACHE_OZONE-false}
if $USE_APACHE_OZONE; then
export IMPALA_OZONE_VERSION=${APACHE_OZONE_VERSION}
export IMPALA_OZONE_URL=${APACHE_OZONE_URL-}
@@ -582,6 +616,7 @@ export
IMPALA_COMPRESSED_DEBUG_INFO=${IMPALA_COMPRESSED_DEBUG_INFO-true}
# building against a custom local build using HIVE_SRC_DIR_OVERRIDE,
# HADOOP_INCLUDE_DIR_OVERRIDE, and HADOOP_LIB_DIR_OVERRIDE.
export DOWNLOAD_CDH_COMPONENTS=${DOWNLOAD_CDH_COMPONENTS-true}
+export DOWNLOAD_APACHE_COMPONENTS=${DOWNLOAD_APACHE_COMPONENTS-true}
export IS_OSX="$(if [[ "$OSTYPE" == "darwin"* ]]; then echo true; else echo
false; fi)"
@@ -653,8 +688,17 @@ fi
# Set the path to the hive_metastore.thrift which is used to build thrift code
export HIVE_METASTORE_THRIFT_DIR=${HIVE_METASTORE_THRIFT_DIR_OVERRIDE:-\
"$HIVE_SRC_DIR/standalone-metastore/src/main/thrift"}
-export TEZ_HOME="$CDP_COMPONENTS_HOME/tez-${IMPALA_TEZ_VERSION}-minimal"
-export HBASE_HOME="$CDP_COMPONENTS_HOME/hbase-${IMPALA_HBASE_VERSION}/"
+if $USE_APACHE_TEZ; then
+ export TEZ_HOME="$APACHE_COMPONENTS_HOME/tez-${IMPALA_TEZ_VERSION}"
+else
+ export TEZ_HOME="$CDP_COMPONENTS_HOME/tez-${IMPALA_TEZ_VERSION}-minimal"
+fi
+
+if $USE_APACHE_HBASE; then
+ export
HBASE_HOME="$APACHE_COMPONENTS_HOME/hbase-${IMPALA_HBASE_VERSION}-hadoop3/"
+else
+ export HBASE_HOME="$CDP_COMPONENTS_HOME/hbase-${IMPALA_HBASE_VERSION}/"
+fi
if $USE_APACHE_OZONE; then
export OZONE_HOME="$APACHE_COMPONENTS_HOME/ozone-${IMPALA_OZONE_VERSION}/"
else
@@ -949,8 +993,13 @@
HADOOP_CLASSPATH="${HADOOP_CLASSPATH}:${HADOOP_HOME}/share/hadoop/tools/lib/*"
export PATH="$HADOOP_HOME/bin:$PATH"
-export RANGER_HOME=\
+if $USE_APACHE_RANGER; then
+ export RANGER_HOME=${RANGER_HOME_OVERRIDE:-\
+"${APACHE_COMPONENTS_HOME}/ranger-${IMPALA_RANGER_VERSION}-admin"}
+else
+ export RANGER_HOME=\
${RANGER_HOME_OVERRIDE:-"${CDP_COMPONENTS_HOME}/ranger-${IMPALA_RANGER_VERSION}-admin"}
+fi
export RANGER_CONF_DIR="$IMPALA_HOME/fe/src/test/resources"
# To configure Hive logging, there's a hive-log4j2.properties[.template]
@@ -1096,7 +1145,7 @@ echo "IMPALA_MAVEN_OPTIONS = $IMPALA_MAVEN_OPTIONS"
echo "IMPALA_TOOLCHAIN_HOST = $IMPALA_TOOLCHAIN_HOST"
echo "CDP_BUILD_NUMBER = $CDP_BUILD_NUMBER"
echo "CDP_COMPONENTS_HOME = $CDP_COMPONENTS_HOME"
-if $USE_APACHE_HIVE; then
+if $USE_APACHE_COMPONENTS; then
echo "APACHE_MIRROR = $APACHE_MIRROR"
echo "APACHE_COMPONENTS_HOME = $APACHE_COMPONENTS_HOME"
fi
diff --git a/buildall.sh b/buildall.sh
index 41e05faf7..2a96741de 100755
--- a/buildall.sh
+++ b/buildall.sh
@@ -434,8 +434,9 @@ bootstrap_dependencies() {
else
echo "SKIP_TOOLCHAIN_BOOTSTRAP is true, skipping toolchain bootstrap."
fi
- if [[ "${DOWNLOAD_CDH_COMPONENTS}" = true ]]; then
- echo ">>> Downloading and extracting cdh components."
+ if [[ "${DOWNLOAD_CDH_COMPONENTS}" = true ]] || \
+ [[ "${DOWNLOAD_APACHE_COMPONENTS}" = true ]]; then
+ echo ">>> Downloading and extracting cdh or apache components."
"$IMPALA_HOME/bin/bootstrap_toolchain.py"
fi
else
diff --git a/fe/pom.xml b/fe/pom.xml
index 3a03b788b..1275a5a7a 100644
--- a/fe/pom.xml
+++ b/fe/pom.xml
@@ -289,7 +289,7 @@ under the License.
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.6</version>
+ <version>${commons-io.version}</version>
</dependency>
<dependency>
diff --git
a/fe/src/main/java/org/apache/impala/util/IcebergMetadataScanner.java
b/fe/src/main/java/org/apache/impala/util/IcebergMetadataScanner.java
index 9ff415104..2d3253281 100644
--- a/fe/src/main/java/org/apache/impala/util/IcebergMetadataScanner.java
+++ b/fe/src/main/java/org/apache/impala/util/IcebergMetadataScanner.java
@@ -17,7 +17,6 @@
package org.apache.impala.util;
-import com.cloudera.cloud.storage.relocated.protobuf.Struct;
import com.google.common.base.Preconditions;
import java.nio.ByteBuffer;
diff --git a/java/TableFlattener/pom.xml b/java/TableFlattener/pom.xml
index 7a36bb917..55027e896 100644
--- a/java/TableFlattener/pom.xml
+++ b/java/TableFlattener/pom.xml
@@ -64,5 +64,10 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>${commons-io.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/java/pom.xml b/java/pom.xml
index d923deafa..b1658e346 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -58,6 +58,7 @@ under the License.
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<kudu.version>${env.IMPALA_KUDU_VERSION}</kudu.version>
<slf4j.version>${env.IMPALA_SLF4J_VERSION}</slf4j.version>
+ <commons-io.version>${env.IMPALA_COMMONS_IO_VERSION}</commons-io.version>
<reload4j.version>${env.IMPALA_RELOAD4j_VERSION}</reload4j.version>
<junit.version>${env.IMPALA_JUNIT_VERSION}</junit.version>
<!-- Beware compatibility requirements with Thrift and