You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GKE上用sstableloader向Scylla DB加载数据遇Netty通道创建错误

解决ScyllaDB sstableloader连接超时及空指针异常问题

问题现象

执行sstableloader加载数据时出现连接超时,后续触发空指针异常,GKE环境下也复现相同问题:

root@scylla-chronicle-s-1:~# sstableloader -d 10.110.68.9 /var/lib/scylla/data/connections/by_date-4ce6c340f5dd11e980df000000000002/snapshots/1658173631835

Using /etc/scylla/scylla.yaml as the config file
===== Using optimized driver!!! =====
WARN  19:51:22,937 Error creating netty channel to /10.110.117.172:9042
com.datastax.shaded.netty.channel.ConnectTimeoutException: connection timed out: /10.110.117.172:9042
        at com.datastax.shaded.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:218) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:464) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.shaded.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]
ERROR 19:51:22,942 Unexpected error while executing task
java.lang.NullPointerException: null
        at com.datastax.driver.core.HostConnectionPool.closeAsync(HostConnectionPool.java:838) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.SessionManager.removePool(SessionManager.java:437) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.SessionManager.onDown(SessionManager.java:525) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.Cluster$Manager.onDown(Cluster.java:2033) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.Cluster$Manager.access$1200(Cluster.java:1393) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.Cluster$Manager$5.runMayThrow(Cluster.java:1988) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at com.datastax.driver.core.ExceptionCatchingRunnable.run(ExceptionCatchingRunnable.java:32) ~[scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_292]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_292]
        at com.datastax.shaded.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [scylla-driver-core-3.7.1-scylla-2-shaded.jar:na]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]
WARN  19:51:22,948 Error creating pool to /10.110.117.172:9042

排查与解决步骤

1. 确认网络连通性

  • 从运行sstableloader的节点测试目标节点9042端口:
    nc -zv 10.110.117.172 9042
    # 或使用telnet
    telnet 10.110.117.172 9042
    
  • GKE环境额外检查:集群网络策略是否允许Pod间9042端口通信;ScyllaDB服务的ClusterIP/NodePort是否可正常访问;云厂商防火墙是否开放该端口。

2. 验证ScyllaDB节点状态

  • 登录目标节点确认服务运行状态:
    systemctl status scylla-server
    
  • 检查9042端口是否被监听:
    ss -tulpn | grep 9042
    
  • 查看ScyllaDB日志排查启动或端口绑定错误:
    journalctl -u scylla-server -f
    

3. 调整sstableloader参数

  • 增加连接超时时间,避免网络延迟导致超时:
    sstableloader --connect-timeout 30000 -d 10.110.68.9 /var/lib/scylla/data/connections/by_date-4ce6c340f5dd11e980df000000000002/snapshots/1658173631835
    
  • 指定多个集群节点IP,降低单点依赖:
    sstableloader -d 10.110.68.9,10.110.117.172 <sstable-path>
    
  • 检查/etc/scylla/scylla.yaml中的rpc_address配置,确保绑定的是可被外部访问的IP(不要设为localhost)。

4. GKE环境专属检查

  • 确认ScyllaDB Pod的livenessProbe和readinessProbe正常,Pod处于Running/Ready状态。
  • 检查StatefulSet的Headless Service配置,确保DNS解析正常。
  • 在集群内临时启动测试Pod执行sstableloader,排除外部网络问题。

5. 空指针异常处理

  • 空指针是连接超时后的次生错误,解决网络/节点连通问题后通常会自动消失。
  • 如果问题持续,升级sstableloader到对应ScyllaDB版本的最新版,该NPE可能是已知bug已被修复。

内容的提问来源于stack exchange,提问作者Aditya Bibave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:57:23