java.lang.ClassNotFoundException: org.apache.spark.sql.TiExtensions

刘超 12天前 ⋅ 112 阅读   编辑

一、描述

  spark访问tidb,报如下错误

sdev@n-adx-hadoop-client-3:~/liujichao$ spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
20/07/20 03:22:08 WARN sql.SparkSession$Builder: Cannot use org.apache.spark.sql.TiExtensions to configure session extensions.
java.lang.ClassNotFoundException: org.apache.spark.sql.TiExtensions
 at scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
 at java.lang.Class.forName0(Native Method)

二、分析

  1、在spark-defaults.conf中添加如下配置

spark.sql.extensions org.apache.spark.sql.TiExtensions
spark.tispark.pd.addresses tidb-1:2379,***

  你可以会遇到如下问题:
  a、java.util.NoSuchElementException: spark.tispark.pd.addresses

  2、tidb我们升级到了3.1.1,spark使用2.4.4,tispark需要改成tispark-core-2.1.9-spark_2.4-jar-with-dependencies.jar(下载地址:https://github.com/pingcap/tispark/releases)

三、解决方法

  1、在spark-defaults.conf添加配置
  2、spark2.4.4可以使用2.1.9的tispark

四、参考文章

  1、https://asktug.com/t/topic/35160/34

  2、https://github.com/pingcap/tispark/issues/454


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: