복붙노트

[HADOOP] Spark의 Hive 쿼리에 대한 HIVE_STATS_JDBC_TIMEOUT

HADOOP

Spark의 Hive 쿼리에 대한 HIVE_STATS_JDBC_TIMEOUT

방금 Hive 2.3.2 및 Spark 2.3으로 새로운 hadoop 3.0 클러스터를 설정했습니다. Hive 테이블에서 일부 쿼리를 실행하려고 할 때 다음 오류가 발생합니다.

Hive에 버그가 있다는 것을 알고 있지만 2.1.1에서 수정 된 것처럼 보이지만 2.3.2 버전의 상황은 확실하지 않습니다. 어떻게 든 처리 될 수 있는지 알고 있습니까?

감사

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_151)
Type in expressions to have them evaluated.
Type :help for more information.

scala> import spark.sql
import spark.sql

scala> sql("show databases")
java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT
  at org.apache.spark.sql.hive.HiveUtils$.formatTimeVarsForHiveClient(HiveUtils.scala:205)
  at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:286)
  at org.apache.spark.sql.hive.HiveExternalCatalog.client$lzycompute(HiveExternalCatalog.scala:66)
  at org.apache.spark.sql.hive.HiveExternalCatalog.client(HiveExternalCatalog.scala:65)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply$mcZ$sp(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:97)
  at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCatalog.scala:194)
  at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:114)
  at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:102)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessionStateBuilder.scala:39)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog$lzycompute(HiveSessionStateBuilder.scala:54)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateBuilder.scala:52)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1.<init>(HiveSessionStateBuilder.scala:69)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.analyzer(HiveSessionStateBuilder.scala:69)
  at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293)
  at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293)
  at org.apache.spark.sql.internal.SessionState.analyzer$lzycompute(SessionState.scala:79)
  at org.apache.spark.sql.internal.SessionState.analyzer(SessionState.scala:79)
  at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:57)
  at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:55)
  at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:47)
  at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:74)
  at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:638)
  ... 49 elided

해결법

  1. ==============================

    1.Hive 2.3.2와 함께 스파 2.3을 실행 중이며 비슷한 문제가 발생합니다.

    Hive 2.3.2와 함께 스파 2.3을 실행 중이며 비슷한 문제가 발생합니다.

    언급 한 수정은 Spark Jira에서 볼 수 있듯이 Hive 2.1에 대한 것입니다.

    https://issues.apache.org/jira/browse/SPARK-13446

    최신 의견에서 사람들이 당신과 정확히 같은 오류를 겪고 있음을 알 수 있습니다.

    또한이 질문에 대한 답변으로 Spark에서 지원하는 현재 Hive 버전은 2.1입니다.

  2. from https://stackoverflow.com/questions/49177319/hive-stats-jdbc-timeout-for-hive-queries-in-spark by cc-by-sa and MIT license