dsbulk DSE调试:命令行执行count查询命中本地源码的方法咨询
本地调试dsbulk源码实现步骤
1. 预构建本地源码
- 先在dsbulk项目根目录执行构建命令,跳过测试加快构建速度:
mvn clean package -DskipTests - 构建完成后找到本地生成的dsbulk可执行文件,路径一般为项目下的
distribution/target/dsbulk-<版本号>/bin/dsbulk,后续调试都使用这个本地构建的版本,不要使用全局安装的dsbulk。
2. 配置IntelliJ远程调试
- 打开IntelliJ右上角的运行/调试配置面板,新增一个「Remote JVM Debug」配置
- 自定义一个未被占用的调试端口,比如5005,保存配置即可,无需立刻启动调试
3. 命令行执行dsbulk时注入调试参数
- 先给dsbulk设置JVM调试参数,Mac/Linux执行:
Windows系统执行:export DSBULK_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005"set DSBULK_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 - 然后执行你需要调试的count命令,比如:
./dsbulk count -k 你的键空间名 -t 你的表名,执行后命令行会进入等待状态,等待调试器连接。
4. 触发断点调试
- 回到IntelliJ,在你需要调试的代码位置打上断点,比如count命令对应的核心处理逻辑位置
- 点击调试按钮启动之前配置好的Remote JVM Debug配置,IntelliJ会自动连接到命令行中的dsbulk进程,程序执行到断点位置就会暂停,你就可以开始单步调试查看运行状态了。
常见注意事项
- 每次修改源码后都要重新执行第一步的构建命令,再重新运行dsbulk命令,不然修改的代码不会生效
- 提前确认本地DSE Cassandra的连接配置和dsbulk命令中传入的连接参数匹配,避免出现连接失败的问题
内容的提问来源于stack exchange,提问作者theAccidentalDeveloper
相关产品推荐
相关产品推荐

