Java Accumulo BatchWriter close()永远无法使用
例如,当我使用BatchWriter写入accumulo时,我使用的代码如下:Java Accumulo BatchWriter close()永远无法使用,java,accumulo,Java,Accumulo,例如,当我使用BatchWriter写入accumulo时,我使用的代码如下: BatchWriter writer = conn.createBatchWriter("table", memBuf, timeout, numThreads) writer.add(mutation); writer.close(); 当我使用“writer.add(mutation)”时,我发现java代码卡在了“writer.close()”中。但是当我删除“writer.add(mutation
BatchWriter writer =
conn.createBatchWriter("table", memBuf, timeout, numThreads)
writer.add(mutation);
writer.close();
当我使用“writer.add(mutation)”时,我发现java代码卡在了“writer.close()”中。但是当我删除“writer.add(mutation);”时,它通过了“writer.close()”。有人知道如何解决BatchWriter close()问题吗?检查Accumulo监视器是否存在错误。如果只添加一个变体,则在关闭BatchWriter时,它将被发送到服务器(出于性能原因,将变体批处理在一起)。您的客户端可能正在等待至少一个TabletServer的响应
您还可以从客户机和tabletserver收集stackdump,显示代码当前被卡住的位置(例如使用
jstack
。检查Accumulo监视器是否存在错误。如果只添加一个变体,则在关闭BatchWriter时,它将被发送到服务器(出于性能原因,将变体批处理在一起)。您的客户端可能正在等待至少一个TabletServer的响应
您还可以从客户机和tabletserver收集stackdump,显示代码当前被卡住的位置(例如使用jstack
。(注意:没有足够的代表添加为注释)
另一个调试提示:使用accumulo外壳,您可以打开调试模式(在accumulo外壳中键入debug
);然后,您可以尝试手动插入键,甚至只是简单地扫描要插入的行。调试信息将打印出accumulo与之通信以执行命令的服务器序列。这可以快速将您指向有问题的主机。(注意:没有足够的代表添加为注释)
另一个调试提示:使用accumulo外壳,您可以打开调试模式(在accumulo外壳中键入
debug
);然后,您可以尝试手动插入键,甚至只是简单地扫描要插入的行。调试信息将打印出accumulo与之通信以执行命令的服务器序列。这可以快速将您指向有问题的主机。谢谢您的回答。是的,我的同事说最好检查一下tserver日志,这肯定会有帮助。我的问题是我在accumulo的桌子不好。当我尝试向它写入变异时,它只是挂起,没有日志放在控制台中。删除坏表并创建新表后,问题解决了。奇怪,Accumulo的哪个版本?如果您还有Accumulo日志,请随时发送给我们user@accumulo.apache.org或者在我们的JIRA上创建一个问题我的版本是1.6.5。我检查了tserver日志,实际上我没有发现任何与坏表相关的内容。当表坏了时,它只是静音,这不是一件好事……我在控制台中看不到任何异常,在accumulo monitor或tserver日志中也看不到与坏表相关的错误或警告。希望这能帮助你提高accumulo:)谢谢你的回答。是的,我的同事说最好检查一下tserver日志,这肯定会有帮助。我的问题是我在accumulo的桌子不好。当我尝试向它写入变异时,它只是挂起,没有日志放在控制台中。删除坏表并创建新表后,问题解决了。奇怪,Accumulo的哪个版本?如果您还有Accumulo日志,请随时发送给我们user@accumulo.apache.org或者在我们的JIRA上创建一个问题我的版本是1.6.5。我检查了tserver日志,实际上我没有发现任何与坏表相关的内容。当表坏了时,它只是静音,这不是一件好事……我在控制台中看不到任何异常,在accumulo monitor或tserver日志中也看不到与坏表相关的错误或警告。希望这能帮助您提高accumulo:)