Rohit Saxena created HIVE-24017:
-----------------------------------

             Summary: "CREATE VIEW" command failing with AlreadyExistsException
                 Key: HIVE-24017
                 URL: https://issues.apache.org/jira/browse/HIVE-24017
             Project: Hive
          Issue Type: Bug
          Components: HiveServer2, Spark
    Affects Versions: 2.1.1
            Reporter: Rohit Saxena


We are using our custom code to fire 50 concurrent hive view creation queries. 
The view name is randomly generated for each query and is always unique. We get 
this stacktrace which we do not get for low concurrency like 20. This is very 
puzzling, we tried following scenarios to avoid the error:
 # using "DROP VIEW IF EXISTS" then "CREATE VIEW IF NOT EXISTS"
 # using "DROP VIEW IF EXISTS" then "CREATE VIEW"
 # using "CREATE OR REPLACE VIEW"

We still get the "AlreadyExistsException". Seems like a concurrency/threading 
issue from either Hive or Spark. We are running our queries in SparkSQL which 
is internally invoking the Hive libraries. These are one of the query sequence 
from our custom code :

// [4] -> [USE default]

// [5] -> [DROP VIEW IF EXISTS 
`default`.`w2314287698276073922_generatedsource_46_view_102__m_sparkengine_alltx_allsrc`]
// [6] -> [CREATE VIEW IF NOT EXISTS 
`default`.`w2314287698276073922_generatedsource_46_view_102__m_sparkengine_alltx_allsrc`
 (`a0`, `a1`, `a2`, `a3`) AS SELECT CAST(CAST(5 * CAST(alias.c_custkey AS 
DECIMAL(18, 0)) AS DECIMAL(28, 0)) AS DECIMAL(18, 0)) as a0, alias.c_name as 
a1, alias.c_address as a2, alias.c_nationkey as a3 FROM 
default.dst_sanity_test_customer_hive alias WHERE (CAST(CAST(5 * 
CAST(alias.c_custkey AS DECIMAL(18, 0)) AS DECIMAL(28, 0)) AS DECIMAL(18, 0)) % 
3) = 0]

 

This is the stacktrace we are getting:-

 

_[com.informatica.sdk.dtm.ExecutionException: [SPARK_1003] Spark task 
[InfaSpark0] failed with the following error: [User class threw exception: 
java.lang.reflect.InvocationTargetException_
 _at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)_
 _at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)_
 _at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)_
 _at java.lang.reflect.Method.invoke(Method.java:498)_
 _at com.informatica.compiler.InfaSparkMain$.main(InfaSparkMain.scala:124)_
 _at com.informatica.compiler.InfaSparkMain.main(InfaSparkMain.scala)_
 _at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)_
 _at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)_
 _at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)_
 _at java.lang.reflect.Method.invoke(Method.java:498)_
 _at 
org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:688)_
_Caused by: org.apache.spark.sql.AnalysisException: 
org.apache.hadoop.hive.ql.metadata.HiveException: 
AlreadyExistsException(message:Table 
w2314287698276073922_generatedsource_46_view_102__m_sparkengine_alltx_allsrc 
already exists);_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:108)_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog.createTable(HiveExternalCatalog.scala:238)_
 _at 
org.apache.spark.sql.catalyst.catalog.ExternalCatalogWithListener.createTable(ExternalCatalogWithListener.scala:102)_
 _at 
org.apache.spark.sql.catalyst.catalog.SessionCatalog.createTable(SessionCatalog.scala:319)_
 _at 
org.apache.spark.sql.execution.command.CreateViewCommand.run(views.scala:175)_
 _at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:70)_
 _at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:68)_
 _at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:79)_
 _at org.apache.spark.sql.Dataset$$anonfun$6.apply(Dataset.scala:196)_
 _at org.apache.spark.sql.Dataset$$anonfun$6.apply(Dataset.scala:196)_
 _at org.apache.spark.sql.Dataset$$anonfun$53.apply(Dataset.scala:3384)_
 _at 
org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:78)_
 _at 
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:125)_
 _at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:73)_
 _at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3383)_
 _at org.apache.spark.sql.Dataset.<init>(Dataset.scala:196)_
 _at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:80)_
 _at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:642)_
 _at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:694)_
 _at com.informatica.exec.InfaSpark0$.main(InfaSpark0.scala:55)_
 _at com.informatica.exec.InfaSpark0.main(InfaSpark0.scala)_
 _... 11 more_
_Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: 
AlreadyExistsException(message:Table 
w2314287698276073922_generatedsource_46_view_102__m_sparkengine_alltx_allsrc 
already exists)_
 _at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:864)_
 _at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:872)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$createTable$1.apply$mcV$sp(HiveClientImpl.scala:489)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$createTable$1.apply(HiveClientImpl.scala:487)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$createTable$1.apply(HiveClientImpl.scala:487)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$withHiveState$1.apply(HiveClientImpl.scala:283)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl.liftedTree1$1(HiveClientImpl.scala:221)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl.retryLocked(HiveClientImpl.scala:220)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl.withHiveState(HiveClientImpl.scala:266)_
 _at 
org.apache.spark.sql.hive.client.HiveClientImpl.createTable(HiveClientImpl.scala:487)_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createTable$1.apply$mcV$sp(HiveExternalCatalog.scala:309)_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createTable$1.apply(HiveExternalCatalog.scala:238)_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createTable$1.apply(HiveExternalCatalog.scala:238)_
 _at 
org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:99)_
 _... 31 more_
_Caused by: AlreadyExistsException(message:Table 
w2314287698276073922_generatedsource_46_view_102__m_sparkengine_alltx_allsrc 
already exists)_
 _at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result$create_table_with_environment_context_resultStandardScheme.read(ThriftHiveMetastore.java:41631)_
 _at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result$create_table_with_environment_context_resultStandardScheme.read(ThriftHiveMetastore.java:41617)_
 _at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result.read(ThriftHiveMetastore.java:41543)_
 _at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:86)_
 _at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_create_table_with_environment_context(ThriftHiveMetastore.java:1187)_
 _at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.create_table_with_environment_context(ThriftHiveMetastore.java:1173)_
 _at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.create_table_with_environment_context(HiveMetaStoreClient.java:2549)_
 _at 
org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.create_table_with_environment_context(SessionHiveMetaStoreClient.java:93)_
 _at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:814)_
 _at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:800)_
 _at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)_
 _at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)_
 _at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)_
 _at java.lang.reflect.Method.invoke(Method.java:498)_
 _at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:154)_
 _at com.sun.proxy.$Proxy43.createTable(Unknown Source)_
 _at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)_
 _at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)_
 _at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)_
 _at java.lang.reflect.Method.invoke(Method.java:498)_
 _at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient$SynchronizedHandler.invoke(HiveMetaStoreClient.java:2477)_
 _at com.sun.proxy.$Proxy43.createTable(Unknown Source)_
 _at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:857)_
 _... 44 more_



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to