tispark icon indicating copy to clipboard operation
tispark copied to clipboard

[BUG] Region Exception occurred when using Spark SQL in JDBC/Beeline

Open vvcd opened this issue 2 years ago • 3 comments

Describe the bug Region Exception occurred when using Spark SQL in JDBC/Beeline,region 129085 is missing

What did you do

  1. run beeline and connect thriftserver
  2. 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');
  3. 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.(Dataset.scala:229) at org.apache.spark.sql.Dataset$.$anonfun$ofRows$2(Dataset.scala:100) at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:764) at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:97) at org.apache.spark.sql.SparkSession.$anonfun$sql$1(SparkSession.scala:607) at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:764) at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:602) at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:650) at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$$execute(SparkExecuteStatementOperation.scala:280) ... 16 more

Spark and TiSpark version info Spark : spark 3.* Tidb : 5.* TiSpark: tispark-assembly-3.0-2.5.1

vvcd avatar Jul 23 '22 01:07 vvcd

@vvcd Insert SQL is not supported yet https://github.com/pingcap/tispark/pull/2464

xuanyu66 avatar Jul 26 '22 07:07 xuanyu66

@vvcd Insert SQL is not supported yet #2464 tispark先在spark注册表再插入数据是能正常执行的。not supported的插入方式是指直接插入的情况,这样会报none.get错误。我现在的问题是报region missing了。我一开始以为是tidb的问题,但是在重启spark后,任务又恢复正常了,问题也复现不出来,所以很疑惑。

vvcd avatar Jul 26 '22 09:07 vvcd

@vvcd What is

先在spark注册表再插入数据是能正常执行的

means? Can you give an example

xuanyu66 avatar Aug 01 '22 03:08 xuanyu66

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Sep 01 '22 02:09 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar Sep 15 '22 02:09 github-actions[bot]