使用Mavenir Cassandra-loader加载CSV遇HectorException故障求助
解决方案:Cassandra-loader上传CSV触发HectorException故障处理
1. 解决SLF4J多绑定冲突
SLF4J多绑定会引发类加载异常,干扰Cassandra客户端连接逻辑:
- 进入
/mavenir/cassandra/lib/目录,列出所有SLF4J相关jar包:ls -la | grep slf4j - 保留一套版本一致的SLF4J组件(Cassandra 4.1.3默认使用
slf4j-api-1.7.36.jar+slf4j-log4j12-1.7.36.jar),删除其他版本的重复jar包,消除绑定冲突。
2. 验证网络与Cassandra节点配置
网络连通性检查
- 在POC staging服务器执行:
telnet 10.173.225.159 9042,确认9042端口可访问。若不通:- 在Cassandra节点开放9042端口:
firewall-cmd --add-port=9042/tcp --permanent && firewall-cmd --reload - 检查跨服务器安全组规则,确保POC staging服务器IP被允许访问Cassandra节点的9042端口。
- 在Cassandra节点开放9042端口:
- 用cqlsh从POC服务器直接测试连接:
cqlsh 10.173.225.159 9042,确认基础连接正常。
Cassandra节点配置检查
编辑Cassandra节点的cassandra.yaml文件:
- 确认
listen_address和rpc_address设置为10.173.225.159(而非localhost/127.0.0.1),保证外部可访问。 - 确认
start_native_transport: true,开启CQL原生传输端口。 - 确认
native_transport_port: 9042,与命令指定端口一致。
修改后重启Cassandra服务:systemctl restart cassandra
3. 完善cassandra-loader命令参数
原命令未指定集群、目标IP、Keyspace等核心连接参数,需补充完整:
/mavenir/cassandra/bin/cassandra-loader \ -host 10.173.225.159 \ -port 9042 \ -cluster "你的集群名称" \ -keyspace "目标Keyspace名称" \ -l /mavenir/cassandra/cass.log \ --stats /mavenir/cassandra/cass.log.stats \ /mis_data/dat/MVNR/sms/load_cass/mo_bill_mhrcn-smsc-02_20231121073956Z_CSV_SM_mo_bill.csv
若Cassandra开启认证,追加-username "用户名" -password "密码"参数。
4. 确认工具版本兼容性
Cassandra 4.1.3属于较新版本,确保使用的cassandra-loader版本与Cassandra 4.x兼容。建议使用与Cassandra同版本的loader工具,避免因协议不匹配导致连接失败。
内容的提问来源于stack exchange,提问作者mahesh
相关产品推荐
相关产品推荐

