tispark
tispark copied to clipboard
[BUG] Region Exception occurred when using Spark SQL in JDBC/Beeline
Describe the bug Region Exception occurred when using Spark SQL in JDBC/Beeline,region 129085 is missing
What did you do
- run beeline and connect thriftserver
- Create target table in tidb
create table if not exists tispark.dwd_wgb_qfqzzz using tidb options (tidb.addr 'xxxxx',tidb.port 'xxxxx',tidb.user 'xxxxx',tidb.password 'xxxx',database 'xxxx', table 'dwd_wgb_qfqzzz');
- insert data
insert into tispark.dwd_wgb_qfqzzz select * from xxxx.ods_wgb_qfqzzz
What do you expect Under normal conditions,this SQL task will run successfully.
What happens instead Region Exception occurred
Screenshots
22/07/22 17:21:13 ERROR SparkExecuteStatementOperation: Error running hive query:
org.apache.hive.service.cli.HiveSQLException: Error running query: com.pingcap.tikv.exception.RegionException: Region Exception occurred - region 129085 is missing
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$$execute(SparkExecuteStatementOperation.scala:321)
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1$$anon$2.$anonfun$run$1(SparkExecuteStatementOperation.scala:216)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at org.apache.spark.sql.hive.thriftserver.SparkOperation.withLocalProperties(SparkOperation.scala:78)
at org.apache.spark.sql.hive.thriftserver.SparkOperation.withLocalProperties$(SparkOperation.scala:62)
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.withLocalProperties(SparkExecuteStatementOperation.scala:46)
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1$$anon$2.run(SparkExecuteStatementOperation.scala:216)
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1$$anon$2.run(SparkExecuteStatementOperation.scala:211)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1.run(SparkExecuteStatementOperation.scala:227)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.pingcap.tikv.exception.RegionException: Region Exception occurred - region 129085 is missing
at com.pingcap.tikv.region.RegionStoreClient.isPrewriteSuccess(RegionStoreClient.java:499)
at com.pingcap.tikv.region.RegionStoreClient.prewrite(RegionStoreClient.java:475)
at com.pingcap.tikv.region.RegionStoreClient.prewrite(RegionStoreClient.java:419)
at com.pingcap.tikv.txn.TxnKVClient.prewrite(TxnKVClient.java:99)
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:162)
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:174)
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:174)
...
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:174)
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:174)
at com.pingcap.tikv.TwoPhaseCommitter.doPrewritePrimaryKeyWithRetry(TwoPhaseCommitter.java:174)
at com.pingcap.tikv.TwoPhaseCommitter.prewritePrimaryKey(TwoPhaseCommitter.java:142)
at com.pingcap.tispark.write.TiBatchWrite.doWrite(TiBatchWrite.scala:271)
at com.pingcap.tispark.write.TiBatchWrite.com$pingcap$tispark$write$TiBatchWrite$$write(TiBatchWrite.scala:88)
at com.pingcap.tispark.write.TiBatchWrite$.write(TiBatchWrite.scala:45)
at com.pingcap.tispark.write.TiDBWriter$.write(TiDBWriter.scala:40)
at com.pingcap.tispark.TiDBRelation.insert(TiDBRelation.scala:143)
at org.apache.spark.sql.execution.datasources.InsertIntoDataSourceCommand.run(InsertIntoDataSourceCommand.scala:42)
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$logicalPlan$1(Dataset.scala:229)
at org.apache.spark.sql.Dataset.$anonfun$withAction$1(Dataset.scala:3618)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$5(SQLExecution.scala:100)
at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:160)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:87)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:764)
at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)
at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3616)
at org.apache.spark.sql.Dataset.
Spark and TiSpark version info Spark : spark 3.* Tidb : 5.* TiSpark: tispark-assembly-3.0-2.5.1
@vvcd Insert SQL is not supported yet https://github.com/pingcap/tispark/pull/2464
@vvcd Insert SQL is not supported yet #2464 tispark先在spark注册表再插入数据是能正常执行的。not supported的插入方式是指直接插入的情况,这样会报none.get错误。我现在的问题是报region missing了。我一开始以为是tidb的问题,但是在重启spark后,任务又恢复正常了,问题也复现不出来,所以很疑惑。
@vvcd What is
先在spark注册表再插入数据是能正常执行的
means? Can you give an example
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.