数据导入DSE搜索群集后的负载分布不均匀

时间:2013-12-13 23:50:41

标签: solr cassandra dataimporthandler datastax

我正在尝试DataStax企业搜索。我有一个双节点集群,我使用Solr控制台Dataimport功能导入数据。我根据“配置Solr”doc(http://www.datastax.com/docs/datastax_enterprise3.2/solutions/dse_search_schema#configuring-solr)禁用了我的虚拟节点(cassandra.yaml中的num_tokens = 1)。我的简化架构如下:

<schema name="spatial" version="1.1">

<types>
    <fieldType name="string" class="solr.StrField" omitNorms="true"/>
    <fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
    <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/> 
    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
    <fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
    <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
    <fieldType name="binary" class="solr.BinaryField"/>

    <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
</types>

  <fields>
      <field name="id"  type="string" indexed="true"  stored="true"/>
      <field name="objectid" type="tint" indexed="true" stored="true" required="true" multiValued="false" />
      <field name="guwi" type="string" indexed="true" stored="true" required="false" multiValued="false" />
      <field name="country" type="string" indexed="true" stored="true" required="false" multiValued="false" />
      <field name="region" type="string" indexed="true" stored="true" required="false" multiValued="false" />
      <field name="latlong" type="location" indexed="true" stored="false"/>
  </fields>
  <defaultSearchField>objectid</defaultSearchField>
  <uniqueKey>id</uniqueKey>
</schema>

数据导入成功。但是,当我运行“nodetool status”时,我可以看到负载不是均匀分布在我的两个节点上,而是全部集中在我用来执行数据导入的节点上。 我试图将uniqueKey修改为复合键,如(id,latlong)甚至只是latlong,但它似乎不会改变负载分布。我错过了什么吗?

谢谢, 利昂

1 个答案:

答案 0 :(得分:1)

您的问题,如nodetool输出中所示,是两个节点的令牌太靠近。因此,节点(10.30.161.137)负责94%的令牌范围。

这很可能是因为当您设置num_token = 1时,您没有设置初始标记值。如果未设置初始标记,则可能会分配不需要的值。

  

initial_token(默认值:已禁用)在每个令牌的单节点中使用   体系结构,其中一个节点只拥有一个连续的范围   环形空间。如果您尚未指定num_tokens或已将其设置为   默认值为1时,应始终指定此参数   第一次和添加时设置生产群集   容量。有关更多信息,请参阅Cassandra中的此参数   1.1节点和群集配置文档。

Configuring Cassandra

此处提供令牌计算器 Token Generator