java.io.IOException:范围的不可用分片

时间:2014-03-08 13:03:17

标签: solr datastax-enterprise

当我查询我的DSE集群时,我收到以下错误:

java.io.IOException:范围不可用的分片:[长数字列表]

集群由1个Cassandra节点和4个Solr节点组成,这些节点之前工作正常。当我开始收到错误时,我注意到的一件事是Solr节点2和3已关闭(DSE进程已死),而Solr节点1在“nodetool status”中显示为“UL”(Up,Leaving)。

节点2和3通过简单地再次作为独立进程启动DSE进程而重新联机,尽管在启动期间有几个“FileNotFound”警告。我还没有对节点1采取任何行动。

我的问题:

  1. 什么可能导致节点2和3中的DSE进程死亡?
  2. 什么可能导致节点1“离开”群集(没有我这样做)以及如何阻止它?
  3. 修改 节点分为两个DC:Cassandra节点属于“Cassandra”DC; 4个Solr节点属于“Solr”DC。

    修改 现在,节点在本地运行时显示冲突的“nodetool status”输出。

    Cassandra节点显示以下输出:

    Datacenter: Solr
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address         Load       Tokens  Owns   Host ID                                  Rack
    DL  <solr node 1>   306.5 GB   256     22.8%  69040f80-48fd-4425-817b-9550cb9490a6     rack1
    DN  <solr node 2>   336.8 GB   256     25.1%  7dbbcc88-aabc-4cf4-a942-08e1aa325300     rack1
    UN  <solr node 3>   316 GB     256     27.1%  c7db42c6-c5ae-439e-ab8d-c04b200fffc5     rack1
    DN  <solr node 4>   444.88 GB  256     24.9%  30f411c3-7419-4786-97ad-395dfc379b40     rack1
    Datacenter: Cassandra
    =====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address              Load       Tokens  Owns   Host ID                                  Rack
    UN  <cassandra node 1>   850.02 GB  256     0.1%   6ab7062e-47fe-45f7-98e8-3ee8e1f742a4     rack1
    

    Solr节点1显示:

    Datacenter: Solr
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address                                   Load       Tokens  Owns   Host ID                               Rack
    UL  <solr node 1>                             306.5 GB   256     22.8%  69040f80-48fd-4425-817b-9550cb9490a6  rack1
    DN  <solr node 2>                             336.8 GB   256     25.1%  7dbbcc88-aabc-4cf4-a942-08e1aa325300  rack1
    UN  <solr node 3>                             316.02 GB  256     27.1%  c7db42c6-c5ae-439e-ab8d-c04b200fffc5  rack1
    DN  <solr node 4>                             444.88 GB  256     24.9%  30f411c3-7419-4786-97ad-395dfc379b40  rack1
    Datacenter: Cassandra
    =====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address             Load       Tokens  Owns   Host ID                               Rack
    UN  <cassandra node 1>  850.42 GB  256     0.1%   6ab7062e-47fe-45f7-98e8-3ee8e1f742a4  rack1
    

    Solr node2显示:

    Datacenter: Solr
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address                                     Load       Tokens  Owns   Host ID                               Rack
    UL  <solr node 1>                             303.26 GB  256     22.8%  69040f80-48fd-4425-817b-9550cb9490a6  rack1
    UN  <solr node 2>                             336.8 GB   256     25.1%  7dbbcc88-aabc-4cf4-a942-08e1aa325300  rack1
    UN  <solr node 3>                             310.52 GB  256     27.1%  c7db42c6-c5ae-439e-ab8d-c04b200fffc5  rack1
    UN  <solr node 4>                             440.39 GB  256     24.9%  30f411c3-7419-4786-97ad-395dfc379b40  rack1
    Datacenter: Cassandra
    =====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address                     Load       Tokens  Owns   Host ID                               Rack
    UN  <cassandra node 1>          834.34 GB  256     0.1%   6ab7062e-47fe-45f7-98e8-3ee8e1f742a4  rack1
    

    Solr节点3和4也显示略有不同的输出,但事实是:所有节点当前都已启动并可访问(管理界面) - 除了我每次执行查询时都收到分片范围错误

2 个答案:

答案 0 :(得分:1)

显然,我们的解决方案是重启所有节点。有些节点在我们第一次尝试重启时无法启动(大量的FileNotFoundException),但是在重试时能够继续。这一步解决了以下问题:

  • 节点1“离开”集群(重启后返回“正常”)
  • 节点显示冲突的 nodetool status 输出(重启后所有节点显示类似状态)

编辑: 节点1“离开”集群的问题今天再次发生。我注意到驱动器已满。这是从群集中自动驱逐的原因吗?

答案 1 :(得分:0)

确保您在使用Solr的DC中只有Solr搜索工作负载。 IOW,Solr / search DC中的所有节点都必须启用Solr / search。在分发查询时,Solr DC中的非Solr节点可能会混淆DSE / Solr。