tispark的写入速度很慢,如何提升?

版本

tispark 3.3_2.12-3.1.5
tidb7.1
spark3.3.1

tidb部署拓扑

问题描述

最近在使用tispark进行数据写入,发现速度很慢。社区有评估过正常的速度大概多少吗,有参考值吗。
已经抽了1个多小时了,还没有抽完。数据来源是一张tpcds100的sale_stores表,数据量287997024条。
是需要开启什么配置吗,这速度确实和预期差距很大。


spark提交命令

bin/spark-shell --master yarn --executor-cores 2 --executor-memory 6g --num-executors 10 

scala代码

     df.write.
      format("tidb").
      option("database", "test").
      option("table", "store_sales").
      options(tidbOptions).
      mode("append").
      save()

最后报错了,但是数据是成功写入了。写入速度大概是5w/s。


      24/02/02 15:16:28 WARN KVErrorHandler: Stale Epoch encountered for region [{Region[4502900364] ConfVer[34877] Version[65155] Store[402369509] KeyRange[t\200\000\000\000\000\0019E]:[t\200\000\377\377\377\377\377\374_r\200\000\000\000\000\000\351\305]}]
24/02/02 15:16:28 WARN KVErrorHandler: Failed to send notification back to driver since CacheInvalidateCallBack is null in executor node.


13.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot
14.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot
15.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot
24/02/02 15:16:27 WARN TiSession: failed to scatter region: 4502900364
com.pingcap.tikv.exception.GrpcException: retry is exhausted.

表结构也麻烦发一下,tidb 几个节点

架构是怎么样的?

CREATE TABLE store_sales (
ss_sold_date_sk INT,
ss_sold_time_sk INT,
ss_item_sk INT,
ss_customer_sk INT,
ss_cdemo_sk INT,
ss_hdemo_sk INT,
ss_addr_sk INT,
ss_store_sk INT,
ss_promo_sk INT,
ss_ticket_number BIGINT,
ss_quantity INT,
ss_wholesale_cost DECIMAL(10,2),
ss_list_price DECIMAL(10,2),
ss_sales_price DECIMAL(10,2),
ss_ext_discount_amt DECIMAL(10,2),
ss_ext_sales_price DECIMAL(10,2),
ss_ext_wholesale_cost DECIMAL(10,2),
ss_ext_list_price DECIMAL(10,2),
ss_ext_tax DECIMAL(10,2),
ss_coupon_amt DECIMAL(10,2),
ss_net_paid DECIMAL(10,2),
ss_net_paid_inc_tax DECIMAL(10,2),
ss_net_profit DECIMAL(10,2)
);

已补充

硬盘和tidb 配置参数方便发一下吗

看看监控,tikv的监控,看下哪里是瓶颈。几个tikv,什么配置。

还是要看架构和硬件情况,如在HDD上面,IO有限,肯定慢

感觉还可以呀,没那么慢

这么好的资源,干嘛要混布… :rofl:

好好规划下~

数据结构没有很好解决偏斜问题,导致有热点

13.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot
14.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot
15.shade.io.grpc.StatusRuntimeException: UNKNOWN: region 4502900364 is hot

这些要一个个的调,比较麻烦了