diff --git a/core/pom.xml b/core/pom.xml
index 1cd1ad9725d7c..223ff5cbd8dbf 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -391,9 +391,15 @@
placed in the "provided" scope, rather than the "compile" scope, and NoClassDefFoundError exceptions are handled
when the user has not explicitly compiled with the Hive module.
-->
+
+ ${hive.group}
+ hive-common
+ provided
+
${hive.group}
hive-exec
+ core
provided
@@ -401,6 +407,26 @@
hive-metastore
provided
+
+ ${hive.group}
+ hive-serde
+ provided
+
+
+ org.apache.hive
+ hive-storage-api
+ provided
+
+
+ org.apache.hive.shims
+ hive-shims-common
+ provided
+
+
+ org.apache.hive.shims
+ hive-shims-0.23
+ provided
+
org.apache.thrift
libthrift
diff --git a/dev/deps/spark-deps-hadoop-2.7 b/dev/deps/spark-deps-hadoop-2.7
index 1af29fcaff2aa..927bfa20185e2 100644
--- a/dev/deps/spark-deps-hadoop-2.7
+++ b/dev/deps/spark-deps-hadoop-2.7
@@ -1,14 +1,11 @@
-JavaEWAH-0.3.2.jar
RoaringBitmap-0.5.11.jar
ST4-4.0.4.jar
activation-1.1.1.jar
aircompressor-0.10.jar
-antlr-2.7.7.jar
-antlr-runtime-3.4.jar
+antlr-runtime-3.5.2.jar
antlr4-runtime-4.7.1.jar
aopalliance-1.0.jar
aopalliance-repackaged-2.4.0-b34.jar
-apache-log4j-extras-1.2.17.jar
apacheds-i18n-2.0.0-M15.jar
apacheds-kerberos-codec-2.0.0-M15.jar
api-asn1-api-1.0.0-M20.jar
@@ -18,15 +15,16 @@ arrow-format-0.10.0.jar
arrow-memory-0.10.0.jar
arrow-vector-0.10.0.jar
automaton-1.11-8.jar
+avatica-core-1.13.0.jar
avro-1.8.2.jar
avro-ipc-1.8.2.jar
avro-mapred-1.8.2-hadoop2.jar
bonecp-0.8.0.RELEASE.jar
breeze-macros_2.12-0.13.2.jar
breeze_2.12-0.13.2.jar
-calcite-avatica-1.2.0-incubating.jar
-calcite-core-1.2.0-incubating.jar
-calcite-linq4j-1.2.0-incubating.jar
+calcite-core-1.10.0.jar
+calcite-druid-1.10.0.jar
+calcite-linq4j-1.10.0.jar
chill-java-0.9.3.jar
chill_2.12-0.9.3.jar
commons-beanutils-1.7.0.jar
@@ -44,7 +42,7 @@ commons-httpclient-3.1.jar
commons-io-2.4.jar
commons-lang-2.6.jar
commons-lang3-3.8.1.jar
-commons-logging-1.1.3.jar
+commons-logging-1.2.jar
commons-math3-3.4.1.jar
commons-net-3.1.jar
commons-pool-1.5.4.jar
@@ -53,9 +51,9 @@ core-1.1.2.jar
curator-client-2.7.1.jar
curator-framework-2.7.1.jar
curator-recipes-2.7.1.jar
-datanucleus-api-jdo-3.2.6.jar
-datanucleus-core-3.2.10.jar
-datanucleus-rdbms-3.2.9.jar
+datanucleus-api-jdo-4.2.4.jar
+datanucleus-core-4.1.17.jar
+datanucleus-rdbms-4.1.19.jar
derby-10.12.1.1.jar
eigenbase-properties-1.1.5.jar
flatbuffers-1.2.0-3f79e055.jar
@@ -79,6 +77,19 @@ hadoop-yarn-client-2.7.4.jar
hadoop-yarn-common-2.7.4.jar
hadoop-yarn-server-common-2.7.4.jar
hadoop-yarn-server-web-proxy-2.7.4.jar
+hive-beeline-2.3.4.jar
+hive-cli-2.3.4.jar
+hive-common-2.3.4.jar
+hive-exec-2.3.4-core.jar
+hive-jdbc-2.3.4.jar
+hive-llap-client-2.3.4.jar
+hive-llap-common-2.3.4.jar
+hive-metastore-2.3.4.jar
+hive-serde-2.3.4.jar
+hive-service-rpc-2.3.4.jar
+hive-shims-0.23-2.3.4.jar
+hive-shims-common-2.3.4.jar
+hive-storage-api-2.7.0.jar
hk2-api-2.4.0-b34.jar
hk2-locator-2.4.0-b34.jar
hk2-utils-2.4.0-b34.jar
@@ -103,6 +114,7 @@ javassist-3.18.1-GA.jar
javax.annotation-api-1.2.jar
javax.inject-1.jar
javax.inject-2.4.0-b34.jar
+javax.jdo-3.2.0-m3.jar
javax.servlet-api-3.1.0.jar
javax.ws.rs-api-2.0.1.jar
javolution-5.5.1.jar
@@ -123,6 +135,7 @@ jline-2.14.6.jar
joda-time-2.9.3.jar
jodd-core-3.5.2.jar
jpam-1.1.jar
+json-1.8.jar
json4s-ast_2.12-3.5.3.jar
json4s-core_2.12-3.5.3.jar
json4s-jackson_2.12-3.5.3.jar
@@ -155,8 +168,8 @@ objenesis-2.5.1.jar
okhttp-3.8.1.jar
okio-1.13.0.jar
opencsv-2.3.jar
-orc-core-1.5.4-nohive.jar
-orc-mapreduce-1.5.4-nohive.jar
+orc-core-1.5.4.jar
+orc-mapreduce-1.5.4.jar
orc-shims-1.5.4.jar
oro-2.0.8.jar
osgi-resource-locator-1.0.1.jar
@@ -166,7 +179,7 @@ parquet-common-1.10.0.jar
parquet-encoding-1.10.0.jar
parquet-format-2.4.0.jar
parquet-hadoop-1.10.0.jar
-parquet-hadoop-bundle-1.6.0.jar
+parquet-hadoop-bundle-1.10.0.jar
parquet-jackson-1.10.0.jar
protobuf-java-2.5.0.jar
py4j-0.10.8.1.jar
@@ -180,15 +193,14 @@ shapeless_2.12-2.3.2.jar
slf4j-api-1.7.16.jar
slf4j-log4j12-1.7.16.jar
snakeyaml-1.18.jar
-snappy-0.2.jar
snappy-java-1.1.7.1.jar
spire-macros_2.12-0.13.0.jar
spire_2.12-0.13.0.jar
stax-api-1.0-2.jar
stax-api-1.0.1.jar
stream-2.7.0.jar
-stringtemplate-3.2.1.jar
super-csv-2.2.0.jar
+transaction-api-1.1.jar
univocity-parsers-2.7.3.jar
validation-api-1.1.0.Final.jar
xbean-asm7-shaded-4.12.jar
diff --git a/dev/deps/spark-deps-hadoop-3.1 b/dev/deps/spark-deps-hadoop-3.1
index 05f180b17a588..66bbb5a8e0142 100644
--- a/dev/deps/spark-deps-hadoop-3.1
+++ b/dev/deps/spark-deps-hadoop-3.1
@@ -1,30 +1,28 @@
HikariCP-java7-2.4.12.jar
-JavaEWAH-0.3.2.jar
RoaringBitmap-0.5.11.jar
ST4-4.0.4.jar
accessors-smart-1.2.jar
activation-1.1.1.jar
aircompressor-0.10.jar
-antlr-2.7.7.jar
-antlr-runtime-3.4.jar
+antlr-runtime-3.5.2.jar
antlr4-runtime-4.7.1.jar
aopalliance-1.0.jar
aopalliance-repackaged-2.4.0-b34.jar
-apache-log4j-extras-1.2.17.jar
arpack_combined_all-0.1.jar
arrow-format-0.10.0.jar
arrow-memory-0.10.0.jar
arrow-vector-0.10.0.jar
automaton-1.11-8.jar
+avatica-core-1.13.0.jar
avro-1.8.2.jar
avro-ipc-1.8.2.jar
avro-mapred-1.8.2-hadoop2.jar
bonecp-0.8.0.RELEASE.jar
breeze-macros_2.12-0.13.2.jar
breeze_2.12-0.13.2.jar
-calcite-avatica-1.2.0-incubating.jar
-calcite-core-1.2.0-incubating.jar
-calcite-linq4j-1.2.0-incubating.jar
+calcite-core-1.10.0.jar
+calcite-druid-1.10.0.jar
+calcite-linq4j-1.10.0.jar
chill-java-0.9.3.jar
chill_2.12-0.9.3.jar
commons-beanutils-1.9.3.jar
@@ -41,7 +39,7 @@ commons-httpclient-3.1.jar
commons-io-2.4.jar
commons-lang-2.6.jar
commons-lang3-3.8.1.jar
-commons-logging-1.1.3.jar
+commons-logging-1.2.jar
commons-math3-3.4.1.jar
commons-net-3.1.jar
commons-pool-1.5.4.jar
@@ -50,9 +48,9 @@ core-1.1.2.jar
curator-client-2.12.0.jar
curator-framework-2.12.0.jar
curator-recipes-2.12.0.jar
-datanucleus-api-jdo-3.2.6.jar
-datanucleus-core-3.2.10.jar
-datanucleus-rdbms-3.2.9.jar
+datanucleus-api-jdo-4.2.4.jar
+datanucleus-core-4.1.17.jar
+datanucleus-rdbms-4.1.19.jar
derby-10.12.1.1.jar
dnsjava-2.1.7.jar
ehcache-3.3.1.jar
@@ -78,6 +76,19 @@ hadoop-yarn-common-3.1.0.jar
hadoop-yarn-registry-3.1.0.jar
hadoop-yarn-server-common-3.1.0.jar
hadoop-yarn-server-web-proxy-3.1.0.jar
+hive-beeline-2.3.4.jar
+hive-cli-2.3.4.jar
+hive-common-2.3.4.jar
+hive-exec-2.3.4-core.jar
+hive-jdbc-2.3.4.jar
+hive-llap-client-2.3.4.jar
+hive-llap-common-2.3.4.jar
+hive-metastore-2.3.4.jar
+hive-serde-2.3.4.jar
+hive-service-rpc-2.3.4.jar
+hive-shims-0.23-2.3.4.jar
+hive-shims-common-2.3.4.jar
+hive-storage-api-2.7.0.jar
hk2-api-2.4.0-b34.jar
hk2-locator-2.4.0-b34.jar
hk2-utils-2.4.0-b34.jar
@@ -102,6 +113,7 @@ javassist-3.18.1-GA.jar
javax.annotation-api-1.2.jar
javax.inject-1.jar
javax.inject-2.4.0-b34.jar
+javax.jdo-3.2.0-m3.jar
javax.servlet-api-3.1.0.jar
javax.ws.rs-api-2.0.1.jar
javolution-5.5.1.jar
@@ -122,6 +134,7 @@ jline-2.14.6.jar
joda-time-2.9.3.jar
jodd-core-3.5.2.jar
jpam-1.1.jar
+json-1.8.jar
json-smart-2.3.jar
json4s-ast_2.12-3.5.3.jar
json4s-core_2.12-3.5.3.jar
@@ -172,8 +185,8 @@ okhttp-2.7.5.jar
okhttp-3.8.1.jar
okio-1.13.0.jar
opencsv-2.3.jar
-orc-core-1.5.4-nohive.jar
-orc-mapreduce-1.5.4-nohive.jar
+orc-core-1.5.4.jar
+orc-mapreduce-1.5.4.jar
orc-shims-1.5.4.jar
oro-2.0.8.jar
osgi-resource-locator-1.0.1.jar
@@ -183,7 +196,7 @@ parquet-common-1.10.0.jar
parquet-encoding-1.10.0.jar
parquet-format-2.4.0.jar
parquet-hadoop-1.10.0.jar
-parquet-hadoop-bundle-1.6.0.jar
+parquet-hadoop-bundle-1.10.0.jar
parquet-jackson-1.10.0.jar
protobuf-java-2.5.0.jar
py4j-0.10.8.1.jar
@@ -198,16 +211,15 @@ shapeless_2.12-2.3.2.jar
slf4j-api-1.7.16.jar
slf4j-log4j12-1.7.16.jar
snakeyaml-1.18.jar
-snappy-0.2.jar
snappy-java-1.1.7.1.jar
spire-macros_2.12-0.13.0.jar
spire_2.12-0.13.0.jar
stax-api-1.0.1.jar
stax2-api-3.1.4.jar
stream-2.7.0.jar
-stringtemplate-3.2.1.jar
super-csv-2.2.0.jar
token-provider-1.0.1.jar
+transaction-api-1.1.jar
univocity-parsers-2.7.3.jar
validation-api-1.1.0.Final.jar
woodstox-core-5.0.3.jar
diff --git a/examples/pom.xml b/examples/pom.xml
index 0636406595f6e..2cc85ab35e20c 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -110,7 +110,7 @@
3.7.0
- com.twitter
+ org.apache.parquet
parquet-hadoop-bundle
provided
diff --git a/pom.xml b/pom.xml
index de14d6add84ea..dc98b81f5cd66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -123,18 +123,18 @@
${hadoop.version}
3.4.6
2.7.1
- org.spark-project.hive
+ org.apache.hive
- 1.2.1.spark2
+ 2.3.4
- 1.2.1
+ ${hive.version}
2.1.0
10.12.1.1
1.10.0
1.5.4
- nohive
- 1.6.0
+ 2.7.0
+ 1.10.0
9.4.12.v20180830
3.1.0
0.9.3
@@ -165,14 +165,15 @@
2.9.6
1.1.7.1
1.1.2
- 1.2.0-incubating
+ 1.10.0
+ 1.13.0
1.10
2.4
2.6
3.8.1
- 3.2.10
+ 4.1.17
3.0.11
2.22.2
2.9.3
@@ -456,6 +457,12 @@
commons-httpclient
commons-httpclient
${httpclient.classic.version}
+
+
+ commons-logging
+ commons-logging
+
+
org.apache.httpcomponents
@@ -1361,6 +1368,22 @@
${hive.group}
hive-shims
+
+ org.apache.hive
+ hive-storage-api
+
+
+ org.eclipse.jetty.aggregate
+ jetty-all
+
+
+ org.eclipse.jetty.orbit
+ javax.servlet
+
+
+ com.github.joshelser
+ dropwizard-metrics-hadoop-metrics2-reporter
+
org.apache.ant
ant
@@ -1374,12 +1397,16 @@
slf4j-api
- org.slf4j
- slf4j-log4j12
+ org.apache.logging.log4j
+ log4j-web
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-1.2-api
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
commons-logging
@@ -1391,9 +1418,7 @@
${hive.group}
hive-exec
-
${hive.version}
${hive.deps.scope}
@@ -1403,6 +1428,14 @@
${hive.group}
hive-metastore
+
+ ${hive.group}
+ hive-vector-code-gen
+
+
+ ${hive.group}
+ hive-llap-tez
+
${hive.group}
hive-shims
@@ -1411,11 +1444,23 @@
${hive.group}
hive-ant
+
+ org.apache.parquet
+ parquet-hadoop-bundle
+
+
+ org.apache.orc
+ orc-tools
+
${hive.group}
spark-client
+
+ calcite-druid
+ org.apache.calcite
+
@@ -1443,6 +1488,10 @@
org.apache.avro
avro-mapred
+
+ org.apache.calcite.avatica
+ avatica
+
org.apache.calcite
@@ -1473,16 +1522,24 @@
zookeeper
- org.slf4j
- slf4j-api
+ org.apache.logging.log4j
+ log4j-api
- org.slf4j
- slf4j-log4j12
+ org.apache.logging.log4j
+ log4j-core
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-1.2-api
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+
+
+ org.slf4j
+ slf4j-api
commons-logging
@@ -1585,6 +1642,14 @@
${hive.group}
hive-shims
+
+ org.apache.hbase
+ hbase-client
+
+
+ HikariCP
+ com.zaxxer
+
org.apache.thrift
libfb303
@@ -1601,6 +1666,18 @@
com.google.guava
guava
+
+ co.cask.tephra
+ tephra-api
+
+
+ co.cask.tephra
+ tephra-core
+
+
+ co.cask.tephra
+ tephra-hbase-compat-1.0
+
org.slf4j
slf4j-api
@@ -1626,6 +1703,18 @@
${hive.group}
hive-shims
+
+ org.apache.parquet
+ parquet-hadoop-bundle
+
+
+ tomcat
+ jasper-compiler
+
+
+ tomcat
+ jasper-runtime
+
commons-codec
commons-codec
@@ -1669,6 +1758,50 @@
+
+ ${hive.group}
+ hive-llap-common
+ ${hive.version}
+ ${hive.deps.scope}
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+
+ ${hive.group}
+ hive-llap-client
+ ${hive.version}
+ ${hive.deps.scope}
+
+
+ org.apache.zookeeper
+ zookeeper
+
+
+ org.apache.curator
+ curator-framework
+
+
+ org.apache.curator
+ apache-curator
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+
+ org.apache.hive
+ hive-storage-api
+ ${hive.storage.api.version}
+
+
net.sf.jpam
jpam
@@ -1685,6 +1818,56 @@
+
+ org.apache.hive.shims
+ hive-shims-common
+ ${hive.version}
+ ${hive.deps.scope}
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+
+
+ org.apache.thrift
+ libthrift
+
+
+ org.apache.curator
+ curator-framework
+
+
+ org.apache.zookeeper
+ zookeeper
+
+
+
+
+
+ org.apache.hive.shims
+ hive-shims-0.23
+ ${hive.version}
+ ${hive.deps.scope}
+
+
+ org.apache.hive.shims
+ hive-shims-common
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.apache.hadoop
+ hadoop-yarn-server-resourcemanager
+
+
+
+
${hive.group}
hive-shims
@@ -1737,7 +1920,6 @@
org.apache.orc
orc-core
${orc.version}
- ${orc.classifier}
${orc.deps.scope}
@@ -1762,7 +1944,6 @@
org.apache.orc
orc-mapreduce
${orc.version}
- ${orc.classifier}
${orc.deps.scope}
@@ -1812,7 +1993,7 @@
${parquet.test.deps.scope}
- com.twitter
+ org.apache.parquet
parquet-hadoop-bundle
${hive.parquet.version}
compile
@@ -1834,6 +2015,10 @@
com.fasterxml.jackson.core
jackson-databind
+
+ org.apache.calcite.avatica
+ avatica
+
com.google.guava
guava
@@ -1865,20 +2050,36 @@
org.apache.calcite
- calcite-avatica
+ calcite-druid
${calcite.version}
- com.fasterxml.jackson.core
- jackson-annotations
+ org.apache.calcite
+ calcite-core
- com.fasterxml.jackson.core
- jackson-core
+ org.apache.calcite
+ calcite-linq4j
- com.fasterxml.jackson.core
- jackson-databind
+ org.apache.calcite.avatica
+ avatica
+
+
+ com.google.guava
+ guava
+
+
+
+
+
+ org.apache.calcite.avatica
+ avatica-core
+ ${avatica.version}
+
+
+ org.apache.calcite.avatica
+ avatica-metrics
diff --git a/resource-managers/mesos/pom.xml b/resource-managers/mesos/pom.xml
index 7b3aad4d6ce35..213ca64522724 100644
--- a/resource-managers/mesos/pom.xml
+++ b/resource-managers/mesos/pom.xml
@@ -77,6 +77,7 @@
${hive.group}
hive-exec
+ core
provided
diff --git a/resource-managers/yarn/pom.xml b/resource-managers/yarn/pom.xml
index d18df9955bb1f..91cc46e02af24 100644
--- a/resource-managers/yarn/pom.xml
+++ b/resource-managers/yarn/pom.xml
@@ -172,6 +172,7 @@
${hive.group}
hive-exec
+ core
provided
diff --git a/sql/core/pom.xml b/sql/core/pom.xml
index ac5f1fc923e7d..dfec03832fafa 100644
--- a/sql/core/pom.xml
+++ b/sql/core/pom.xml
@@ -86,15 +86,17 @@
test
+
+ org.apache.hive
+ hive-storage-api
+
org.apache.orc
orc-core
- ${orc.classifier}
org.apache.orc
orc-mapreduce
- ${orc.classifier}
org.apache.parquet
diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnVector.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnVector.java
index 9bfad1e83ee7b..2f1925e69a337 100644
--- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnVector.java
+++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnVector.java
@@ -19,7 +19,7 @@
import java.math.BigDecimal;
-import org.apache.orc.storage.ql.exec.vector.*;
+import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.spark.sql.types.DataType;
import org.apache.spark.sql.types.Decimal;
diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnarBatchReader.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnarBatchReader.java
index efca96e9ce580..e0a0da1664723 100644
--- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnarBatchReader.java
+++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/orc/OrcColumnarBatchReader.java
@@ -21,6 +21,7 @@
import com.google.common.annotations.VisibleForTesting;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
@@ -30,7 +31,6 @@
import org.apache.orc.Reader;
import org.apache.orc.TypeDescription;
import org.apache.orc.mapred.OrcInputFormat;
-import org.apache.orc.storage.ql.exec.vector.*;
import org.apache.spark.sql.catalyst.InternalRow;
import org.apache.spark.sql.execution.vectorized.ColumnVectorUtils;
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcDeserializer.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcDeserializer.scala
index ee16b3ab07f5a..8e3a330ba44b9 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcDeserializer.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcDeserializer.scala
@@ -17,9 +17,9 @@
package org.apache.spark.sql.execution.datasources.orc
+import org.apache.hadoop.hive.serde2.io.{DateWritable, HiveDecimalWritable}
import org.apache.hadoop.io._
import org.apache.orc.mapred.{OrcList, OrcMap, OrcStruct, OrcTimestamp}
-import org.apache.orc.storage.serde2.io.{DateWritable, HiveDecimalWritable}
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.catalyst.expressions.{SpecificInternalRow, UnsafeArrayData}
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilters.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilters.scala
index 0a64981b421c6..45c0d08fc8138 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilters.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilters.scala
@@ -17,10 +17,10 @@
package org.apache.spark.sql.execution.datasources.orc
-import org.apache.orc.storage.ql.io.sarg.{PredicateLeaf, SearchArgument}
-import org.apache.orc.storage.ql.io.sarg.SearchArgument.Builder
-import org.apache.orc.storage.ql.io.sarg.SearchArgumentFactory.newBuilder
-import org.apache.orc.storage.serde2.io.HiveDecimalWritable
+import org.apache.hadoop.hive.ql.io.sarg.{PredicateLeaf, SearchArgument}
+import org.apache.hadoop.hive.ql.io.sarg.SearchArgument.Builder
+import org.apache.hadoop.hive.ql.io.sarg.SearchArgumentFactory.newBuilder
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable
import org.apache.spark.sql.sources.{And, Filter}
import org.apache.spark.sql.types._
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcSerializer.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcSerializer.scala
index 90d1268028096..ff578202a5029 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcSerializer.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcSerializer.scala
@@ -17,11 +17,11 @@
package org.apache.spark.sql.execution.datasources.orc
+import org.apache.hadoop.hive.common.`type`.HiveDecimal
+import org.apache.hadoop.hive.serde2.io.{DateWritable, HiveDecimalWritable}
import org.apache.hadoop.io._
import org.apache.orc.TypeDescription
import org.apache.orc.mapred.{OrcList, OrcMap, OrcStruct, OrcTimestamp}
-import org.apache.orc.storage.common.`type`.HiveDecimal
-import org.apache.orc.storage.serde2.io.{DateWritable, HiveDecimalWritable}
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.catalyst.expressions.SpecializedGetters
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala
index 052a5e757c445..42d538c756fd1 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala
@@ -1371,7 +1371,7 @@ abstract class DDLSuite extends QueryTest with SQLTestUtils {
// if (isUsingHiveMetastore) {
// assert(storageFormat.properties.get("path") === expected)
// }
- assert(storageFormat.locationUri === Some(expected))
+ assert(Some(storageFormat.locationUri.get.getPath) === Some(expected.getPath))
}
// set table location
sql("ALTER TABLE dbx.tab1 SET LOCATION '/path/to/your/lovely/heart'")
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilterSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilterSuite.scala
index ee12f30892436..662648f4193ea 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilterSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcFilterSuite.scala
@@ -22,7 +22,7 @@ import java.sql.{Date, Timestamp}
import scala.collection.JavaConverters._
-import org.apache.orc.storage.ql.io.sarg.{PredicateLeaf, SearchArgument}
+import org.apache.hadoop.hive.ql.io.sarg.{PredicateLeaf, SearchArgument}
import org.apache.spark.sql.{Column, DataFrame}
import org.apache.spark.sql.catalyst.dsl.expressions._
@@ -36,7 +36,7 @@ import org.apache.spark.sql.types._
* A test suite that tests Apache ORC filter API based filter pushdown optimization.
* OrcFilterSuite and HiveOrcFilterSuite is logically duplicated to provide the same test coverage.
* The difference are the packages containing 'Predicate' and 'SearchArgument' classes.
- * - OrcFilterSuite uses 'org.apache.orc.storage.ql.io.sarg' package.
+ * - OrcFilterSuite uses 'org.apache.hadoop.hive.ql.io.sarg' package.
* - HiveOrcFilterSuite uses 'org.apache.hadoop.hive.ql.io.sarg' package.
*/
class OrcFilterSuite extends OrcTest with SharedSQLContext {
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcSourceSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcSourceSuite.scala
index 48910103e702a..36ba2c13ccdb8 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcSourceSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcSourceSuite.scala
@@ -171,11 +171,7 @@ abstract class OrcSuite extends OrcTest with BeforeAndAfterAll {
// Hive 0.11 and RLE v2 is introduced in Hive 0.12 ORC with more improvements.
// For more details, see https://orc.apache.org/specification/
assert(stripe.getColumns(1).getKind === DICTIONARY_V2)
- if (isSelective) {
- assert(stripe.getColumns(2).getKind === DIRECT_V2)
- } else {
- assert(stripe.getColumns(2).getKind === DICTIONARY_V2)
- }
+ assert(stripe.getColumns(2).getKind === DIRECT_V2)
// Floating point types are stored with DIRECT encoding in IEEE 754 floating
// point bit layout.
assert(stripe.getColumns(3).getKind === DIRECT)
diff --git a/sql/hive-thriftserver/pom.xml b/sql/hive-thriftserver/pom.xml
index 4a4629fae2706..f7deeff3a0bfd 100644
--- a/sql/hive-thriftserver/pom.xml
+++ b/sql/hive-thriftserver/pom.xml
@@ -55,6 +55,11 @@
${hive.group}
hive-cli
+
+ ${hive.group}
+ hive-exec
+ core
+
${hive.group}
hive-jdbc
@@ -63,6 +68,10 @@
${hive.group}
hive-beeline
+
+ org.apache.hive.shims
+ hive-shims-common
+
org.eclipse.jetty
jetty-server
diff --git a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/auth/HiveAuthFactory.java b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/auth/HiveAuthFactory.java
index 10000f12ab329..de57048496436 100644
--- a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/auth/HiveAuthFactory.java
+++ b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/auth/HiveAuthFactory.java
@@ -42,6 +42,7 @@
import org.apache.hadoop.hive.shims.HadoopShims.KerberosNameShim;
import org.apache.hadoop.hive.shims.ShimLoader;
import org.apache.hadoop.hive.thrift.DBTokenStore;
+import org.apache.hadoop.hive.thrift.HiveDelegationTokenManager;
import org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge;
import org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge.Server.ServerMode;
import org.apache.hadoop.security.SecurityUtil;
@@ -91,6 +92,7 @@ public String getAuthName() {
private String authTypeStr;
private final String transportMode;
private final HiveConf conf;
+ private HiveDelegationTokenManager delegationTokenManager = null;
public static final String HS2_PROXY_USER = "hive.server2.proxy.user";
public static final String HS2_CLIENT_TOKEN = "hiveserver2ClientToken";
@@ -143,6 +145,9 @@ public HiveAuthFactory(HiveConf conf) throws TTransportException, IOException {
saslServer = new HadoopThriftAuthBridge.Server();
}
+ // Start delegation token manager
+ delegationTokenManager = new HiveDelegationTokenManager();
+
// start delegation token manager
try {
// rawStore is only necessary for DBTokenStore
@@ -155,7 +160,8 @@ public HiveAuthFactory(HiveConf conf) throws TTransportException, IOException {
rawStore = baseHandler.getMS();
}
- saslServer.startDelegationTokenSecretManager(conf, rawStore, ServerMode.HIVESERVER2);
+ delegationTokenManager.startDelegationTokenSecretManager(conf, rawStore, ServerMode.HIVESERVER2);
+ saslServer.setSecretManager(delegationTokenManager.getSecretManager());
}
catch (MetaException|IOException e) {
throw new TTransportException("Failed to start token manager", e);
@@ -312,14 +318,16 @@ public static TServerSocket getServerSSLSocket(String hiveHost, int portNum, Str
}
// retrieve delegation token for the given user
- public String getDelegationToken(String owner, String renewer) throws HiveSQLException {
- if (saslServer == null) {
+ public String getDelegationToken(String owner, String renewer, String remoteAddr)
+ throws HiveSQLException {
+ if (delegationTokenManager == null) {
throw new HiveSQLException(
"Delegation token only supported over kerberos authentication", "08S01");
}
try {
- String tokenStr = saslServer.getDelegationTokenWithService(owner, renewer, HS2_CLIENT_TOKEN);
+ String tokenStr = delegationTokenManager.getDelegationTokenWithService(owner, renewer,
+ HS2_CLIENT_TOKEN, remoteAddr);
if (tokenStr == null || tokenStr.isEmpty()) {
throw new HiveSQLException(
"Received empty retrieving delegation token for user " + owner, "08S01");
@@ -335,12 +343,12 @@ public String getDelegationToken(String owner, String renewer) throws HiveSQLExc
// cancel given delegation token
public void cancelDelegationToken(String delegationToken) throws HiveSQLException {
- if (saslServer == null) {
+ if (delegationTokenManager == null) {
throw new HiveSQLException(
"Delegation token only supported over kerberos authentication", "08S01");
}
try {
- saslServer.cancelDelegationToken(delegationToken);
+ delegationTokenManager.cancelDelegationToken(delegationToken);
} catch (IOException e) {
throw new HiveSQLException(
"Error canceling delegation token " + delegationToken, "08S01", e);
@@ -348,12 +356,12 @@ public void cancelDelegationToken(String delegationToken) throws HiveSQLExceptio
}
public void renewDelegationToken(String delegationToken) throws HiveSQLException {
- if (saslServer == null) {
+ if (delegationTokenManager == null) {
throw new HiveSQLException(
"Delegation token only supported over kerberos authentication", "08S01");
}
try {
- saslServer.renewDelegationToken(delegationToken);
+ delegationTokenManager.renewDelegationToken(delegationToken);
} catch (IOException e) {
throw new HiveSQLException(
"Error renewing delegation token " + delegationToken, "08S01", e);
@@ -361,12 +369,12 @@ public void renewDelegationToken(String delegationToken) throws HiveSQLException
}
public String getUserFromToken(String delegationToken) throws HiveSQLException {
- if (saslServer == null) {
+ if (delegationTokenManager == null) {
throw new HiveSQLException(
"Delegation token only supported over kerberos authentication", "08S01");
}
try {
- return saslServer.getUserFromToken(delegationToken);
+ return delegationTokenManager.getUserFromToken(delegationToken);
} catch (IOException e) {
throw new HiveSQLException(
"Error extracting user from delegation token " + delegationToken, "08S01", e);
diff --git a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/SQLOperation.java b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/SQLOperation.java
index 70c27948de61b..cccffa0045bd6 100644
--- a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/SQLOperation.java
+++ b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/operation/SQLOperation.java
@@ -32,6 +32,7 @@
import org.apache.commons.codec.binary.Base64;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Schema;
import org.apache.hadoop.hive.ql.CommandNeedRetryException;
@@ -40,11 +41,10 @@
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.serde.serdeConstants;
-import org.apache.hadoop.hive.serde2.SerDe;
+import org.apache.hadoop.hive.serde2.AbstractSerDe;
import org.apache.hadoop.hive.serde2.SerDeException;
import org.apache.hadoop.hive.serde2.SerDeUtils;
import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
@@ -73,7 +73,7 @@ public class SQLOperation extends ExecuteStatementOperation {
private CommandProcessorResponse response;
private TableSchema resultSchema = null;
private Schema mResultSchema = null;
- private SerDe serde = null;
+ private AbstractSerDe serde = null;
private boolean fetchStarted = false;
public SQLOperation(HiveSession parentSession, String statement, Map
+ SessionState.get().getHiveVariables()).substitute(sqlOperationConf, statement);
response = driver.compileAndRespond(subStatement);
if (0 != response.getResponseCode()) {
throw toSQLException("Error while compiling statement", response);
@@ -389,7 +390,7 @@ private RowSet decodeFromString(List