2014-09-28 167 views
2

我是新手搜索和elasticsearch。我在我們的測試環境中使用了一些在線文檔並開發了一些使用elasticsearch設置的應用程序。到目前爲止,它在開發和測試順利,現在不用在生產和安裝羣集創建,我需要一些專家提醒,elasticsearch集羣設置信息

  1. 碎片數
  2. 副本數
  3. 我是否需要分開出的主和數據節點
  4. 可以將所有的節點是數據節點
  5. 我沒有任何先進的搜索的使用情況,但ATLEAST需要多比賽(電話)應與手機,反之亦然所有文檔,如有特殊詞幹需要在這個案例 ?

我用例和流量模式,

  1. 高達100M閱讀每天
  2. 高達1M的寫入/每天更新
  3. 初始數據大小10GB,成長率1 GB每6個月

集羣信息 1.初始簇大小14臺機器,28 GB RAM/120 GB旋轉硬盤/ 12個核心 2.負載均衡器與DNS,將流量分配給任何14臺機器。

我已經使用單播和我有bootstrap.mlockall:true和index.routing.allocation.disable_allocation:假

請指教。

感謝

+0

我太等待專家的建議 – Roopendra 2014-09-29 07:41:49

回答

2

1碎片

在Elasticsearch碎片的數量的號是一個一次性的設置,一旦你的碎片大小設置你不能改變它。因此,您需要計劃您的羣集需要多少碎片,同時考慮您當前的數據集大小以及任何指數增長。爲此,請在與生產框具有相同規格的框上設置一個帶有一個碎片和零副本的Elasticsearch節點。

一個碎片的能力將取決於多種因素:

  • 文檔

  • 您的字段的大小

  • 量的RAM您的大小分配運行Elasticsearch的JVM。如果你有大量聚集的, 排序和父/子文件,你需要確保你已經分配足夠的RAM 到Elasticsearch因此它可以緩存結果。

  • 你每秒要求查詢的數量。

  • 允許的最大搜索請求的響應時間。

索引文檔轉換成在x處百萬(或更少)的迭代的單個碎片節點,在每一次迭代每秒使用測試工具像JMeter的執行X查詢執行基準。當您的測試中的查詢返回達到最大搜索請求時間的響應時間時,您擁有單個分片可以索引的文檔數量。獲得該值後,您可以計算完整數據集所需的碎片數量,並計算索引增長需要的碎片數量。

2.副本

開始與1個副本的數量,因此,如果一個節點出現故障,你仍然有充分的數據集提供一個副本碎片將被置於其主碎片在不同的節點上。一個副本通常就足夠了,如果你覺得你需要更多,你可以隨時添加它們。

3.Should我需要分離出主機和數據節點

這取決於你的簇的大小,如果你在你的集羣超過5個節點最好是有主節點只向僅保持羣集狀態。

4.可以將所有的節點是數據節點集羣中的

必須始終有至少一個主節點,主節點維護羣集狀態。如果您有一個小型羣集(節點爲<),則可以使羣集中的每個節點都是數據節點和主節點。其中一個節點將被選爲主節點,如果主節點關閉,集羣中的另一個節點將被選爲主節點。如果您具有第3點中所述的僅主節點,則羣集中剩餘的節點可以是僅數據節點。

5.我沒有任何高級搜索用例,但至少需要複數匹配(手機)應匹配所有文檔與手機,反之亦然,在這種情況下任何特殊的詞幹需要?

是的,詞幹會處理你的用例。另外,Elasticsearch具有非常好的配置OOTB,您應該首先更改下面鏈接中列出的配置。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_important_configuration_changes.html