ElasticSearch多数据目录,选择索引的放置位置

时间:2015-07-08 08:57:32

标签: java elasticsearch configuration

我在多台服务器上运行ElasticSearch。所有服务器都相同,都有2个磁盘:一个SSD和一个HDD。不用说,SSD更快但更小。

我知道你可以通过添加elasticsearch.yml的路径在ES中设置多个数据目录。但是,默认情况下(根据我发现的情况),ES会根据可用磁盘空间的百分比自动选择要采用的数据目录。

有些索引对我来说比其他索引更重要,比较新的(那些被大量查询的索引)需要在SSD上,而那些被查询较少的索引可以在硬盘上。

如果可能的话,我需要做些什么呢? 添加索引到路径?

1 个答案:

答案 0 :(得分:6)

这在Elasticsearch中是不可能的。是的,您可以指定多个数据路径,但不能将这些路径“分配”到索引。

目前,ES会将文件级别的数据分条到所有数据路径,这意味着分片将分布在所有路径上:

  

目录的路径,用于存储为此节点分配的索引数据。

     

path.data:/ path / to / data

     

可以选择包含多个位置,从而导致数据跨越   文件级别的位置(一个RAID 0),有利于最自由的位置    创作空间。例如:

     

path.data:/ path / to / data1,/ path / to / data2

另一方面在2.0 this will change中,但您仍然无法在数据路径上拥有索引,而在另一条数据路径上则无法拥有另一个索引。

目前,您的唯一解决方案是在“热”节点上安装SSD,在“冷”节点上安装HDD,这意味着一个带有SSD的ES节点和一个带有HDD的ES节点:https://www.elastic.co/guide/en/elasticsearch/guide/current/retiring-data.html#migrate-indices < / p>