创建tiSession失败

【TiDB 版本】 2.1.6

【集群节点分布】 3台机器,每台机器部署1个tidb、1个pd、2个tikv、1个pump,第2台机器多部署1个drainer。

【spark版本】2.1.0

【问题描述】使用spark-shell创建tiSession失败,报错日志如下。请问如何解决?

请检查 PD & TiKV 服务是否正常

直接连接tidb(非tispark)可以正常增删改查。

pd-ctl检查health显示都正常,如下图所示:

tikv日志没有明显异常,监控界面tikv板块无明显异常。

可否请教下如何准确判断tikv有无问题呢?

可以使用 pd-ctl 查看 store 的相关信息。另外,这边是直接使用 spark 进行数据读取的吗 ? 可以试一下 TiSpark

我用的就是TiSpark啊(tispark 1.1)。同样的方法,之前是能读取到TiDB数据的。

我的读取方法:

  1. 编辑/opt/hadoopclient/Spark2x/spark/conf/spark-defaults.conf,添加

    spark.tispark.pd.addresses=192.168.100.60:2379,192.168.100.61:2379,192.168.100.62:2379

    spark.sql.extensions=org.apache.spark.sql.TiExtensions

    spark.tispark.plan.allow_index_read=true

  2. 将tispark-core-1.1-jar-with-dependencies.jar拷贝到/opt/hadoopclient/Spark2x/spark/jars/

  3. 启动spark-shell命令行:spark-shell --jars tispark-core-1.1-jar-with-dependencies.jar

  4. import org,apache.spark.sql.{SparkSession, Row}

    import org,apache.spark.sql.CarbonSession

    import org,apache.spark.sql.TiContext

  5. 创建carbonSession(carbonsession可以认为就是sparksession,用于支持读取carbon格式数据)

    val carbonSession = SparkSession.builder.getOrCreateCarbonSession(“hdfs路径”)

  6. 创建tiSession

    val tiSession = new TiContext(carbonSesssion)

在第4步创建tiSession失败。

您这边描述之前 是可以读到数据的,这中间做过什么操作或者升级过吗 ?

没有呀。。。搞不定,所以才来这寻求专业帮助啊~

你好,TiSpark-1.1已经不维护了,请使用TiSpark-1.2.1,可以在这里下载

https://github.com/pingcap/tispark/releases/download/v1.2.1/tispark-core-1.2.1-jar-with-dependencies.jar

建议先根据官方文档试试能否读取tidb的数据,https://github.com/pingcap/tispark/blob/master/docs/userguide_spark2.1.md

你们应该升级过TiDB机器,TiSpark-1.1在老集群上可以用,但是新版本不兼容,需要升级到TiSpark-1.2

参考这个PR: https://github.com/pingcap/tispark/pull/480