例如,当我使用BatchWriter写入accumulo时,我使用如下代码:
BatchWriter writer =
conn.createBatchWriter("table", memBuf, timeout, numThreads)
writer.add(mutation);
writer.close();
我发现java代码卡在" writer.close()"当我有" writer.add(变种)"。但是当我删除" writer.add(变种);"时,它经历了#34; writer.close()"。有谁知道如何解决BatchWriter close()问题?
答案 0 :(得分:3)
(注意:没有足够的代表添加为评论)
另外一个调试提示:使用accumulo shell可以打开调试模式(在accumulo shell中输入debug
);然后你可以尝试手动插入密钥,甚至只是简单扫描你想要插入的行。调试信息将打印出accumulo正在与之通信的服务器序列以执行您的命令。这可以快速指向出现问题的主机。
答案 1 :(得分:2)
检查Accumulo监视器是否有错误。如果只添加一个突变,则在关闭BatchWriter时会将其发送到服务器(出于性能原因,突变会一起进行批处理)。您的客户可能正在等待至少一台TabletServer的响应。
您还可以从客户端和平板电脑服务器收集stackdump,显示当前代码所在的位置(例如,使用jstack
)。