-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tispark的java client访问最新版本的tidb报错 #849
Comments
@men348 经测试 spark-2.4.3 查询正常,最好能先检查一下设置是否正确,并提供一下出错的 sql 信息,我看看是不是 plan 部分有问题。 |
I will update default |
@birdstorm sql很简单,select * from person; person这张表是我临时建的,只有三个字段,id,name,age。表里也只有一条数据。另外,我用相同的spark和tispark版本查询另一个tidb版本为2.0.5的集群也出现同样的问题,但是当我把spark的版本号换成2.1.1,tispark的版本号换成1.1时,查询2.0.5的集群是没问题的。另外,我确认了,我的spark集群jar包没有问题 |
@men348 可以检查一下 spark-defaults.conf 里的配置吗? |
配置如下: 这个spark之前没有配置tispark的东西,这是我首次使用spark连tidb。 |
|
@men348 在 TiSpark 2.0之后,需要设置 spark.sql.extensions 为 org.apache.spark.sql.TiExtensions。请参照文档检查哪些配置是需要的。 |
我先尝试一下吧, 这条配置,还挺难找的,确实发现了 |
再问一下, 这行配置必须在集群级别配置吗,我在应用中添加,为什么还报错,这次错误是 |
@men348 请最好附上完整的错误堆栈,以及你应用的使用方法。
需要在 SparkSession 初始化时设置。 请检查你的 Spark 版本是否支持 Hive,Spark jars 目录下是否有 spark-hive 的 dependency, hive-site.xml 是否正确设置,以及创建 SparkSession 时是否使用 enableHiveSupport()。 |
java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder': 检查了hive-site.xml,没有问题 如下是我的代码,错误显示,在初始化的时候就报错了,也就是SparkSession创建的时候
|
@men348 "spark.sql.extensions", "org.apache.spark.sql.TiExtensions" 这个参数加到集群配置中 |
@men348 另外能否检查你的应用内的spark版本配置? 不应在应用的pom中配置spark版本。 我目前无法重现,如果有重现步骤的话我可以深入看一下。 |
应用内我除了使用spark的core包,没有其他的版本配置,pom文件如下:
|
@men348 ICYMI, note that you are using spark 2.3 dependency here. Are you sure that your dependency should be 2.3.x or 2.4.x? |
@men348 hi~ any updates? |
@men348 可以参考这个例子,已经在我本地跑通了 https://github.com/marsishandsome/playground/tree/master/tispark-example 有两种办法使用tispark
|
不好意思,我这还是一直有问题,报一样的错,这两天忙于处理其他的问题,访问tidb这块,暂时使用了jdbc的方式。我想问,我这个报错很像是因为hive的问题,这块并没有使用到hive,为什么会有hive的问题 |
有两个思路可以试试:
|
用原生的spark没有问题,现在我们用的方案就是原生的spark + jdbc |
错误堆栈好像不完整,能否把内部的原因也发一下? |
把 |
去掉也不行,完整堆栈如下: |
问一句,我们的spark的版本是2.2,但是我本地jar包是2.3,这个有影响吗 |
@men348 非常影响,两者差距很大,不能混用。目前 TiSpark 2.0 只支持 Spark 2.3.x 和 2.4.x,如果需要使用旧版本的 TiSpark 只能使用 1.x 的版本 |
明白了,那应该就是这个问题了,spark的版本是2.2,但是我用的jar包是2.3的,spark的版本匹配不上,所以连不上tidb。但是呢,我切回tispark1.x的版本,tispark的版本又跟不上,连不上最新的tidb。这种情况怎么整。 |
经过spark版本降级到2.2.3,tispark降级到1.2(maven仓库没有,需要下载jar包),问题终于解决了。谢谢各位。各位注意了,一定要看清楚自己的spark版本。 |
@men348 有关 TiSpark 版本和 Spark 版本 及 TiDB 版本之间的兼容信息可见文档 https://github.com/pingcap/tispark#maximum-tidbtikvpd-version-supported-by-tispark |
tidb发布了最新版本的2.1.12,我用tispark的2.1-spark_2.4版本(最新发布版本)去尝试读取数据,但是报错了,错误如下:
Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.AssertionError: assertion failed: No plan for Relation[uuid#87,,updated_at#104] TiDBRelation(com.pingcap.tikv.TiSession@b3fe89c,TiTableReference(rc_comservice_data_pool_v2,comservice_i_unicom_call_info,46340976138),com.pingcap.tispark.MetaManager@648e5f3a,com.pingcap.tikv.meta.TiTimestamp@1971d1a4))
我用的spark版本是2.4.3
我猜应该是兼容性问题,tispark的最新版本没有兼容最新发布的tidb版本,问一下,什么时候能出来兼容版本
The text was updated successfully, but these errors were encountered: