【问题标题】:Accumulo client throwing NotServingTabletExceptionAccumulo 客户端抛出 NotServingTabletException
【发布时间】:2017-03-24 14:20:56
【问题描述】:

我在我的项目中使用 accumulo(在码头内),但在尝试运行我的代码时出现此错误

[client.impl.ThriftScanner] 传输到主机名时出错:9997:NotServingTabletException

Accumulo 本身已启动,我可以与 shell 连接 - 创建表、插入和扫描。

谢谢。

【问题讨论】:

  • 你有什么问题?
  • NotServingTabletException 的原因是什么?

标签: accumulo


【解决方案1】:

Accumulo TabletServers 托管平板电脑。每个 Tablet 托管 Accumulo 表的一部分行。

听起来可能存在一些问题,即 Tablet 不是由 TabletServer 托管的。当您的应用程序尝试访问/更新此平板电脑上的某一行时,如果该平板电脑处于脱机状态,则会引发错误。这种情况不会妨碍您对其他表执行操作。

尝试扫描您的应用程序正在访问的表并查看是否引发错误。此外,检查 Accumulo Monitor 或日志文件是否有错误。

【讨论】:

  • 谢谢,但我已经使用 shell scan -t 选项扫描了每个表,并且它适用于所有表。你有什么别的想法吗?
  • 这是完整的例外:`调试 [client.impl.ThriftScanner] 传输到主机名时出错:9997:NotServingTabletException(extent:TKeyExtent(table:21 30, endRow:21 30 3C, prevEndRow: null)` table "21 30" == "accumulo.metadata" 我只有一个从站,当使用 shell 时,我能够扫描这个表。如果它很重要 - 该表在同一个从站下有两个平板电脑(主机名: 9997)
  • 您是否总是在您的客户端中看到此异常?还是只是有时?由于您有多个 TabletServer,因此该 Tablet 可能会自动从一个 TabletServer 移动到另一个(注意这是一条 DEBUG 消息,而不是 ERROR 消息)。作为用户,这对您来说是自然而然且透明的操作。
  • 我只有一个 TabletServer ...而且错误每秒发生几次。
  • 这只是一条调试消息,用于跟踪在客户端更新其模型并重试之前平板电脑在该平板电脑服务器上不存在的事实。当平板电脑迁移或平板电脑拆分并成为新平板电脑时,可能会发生这种情况。你的可能分裂了很多。您可以预先拆分表以防止这种情况发生。
猜你喜欢
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多