安装和配置集群(Installing and Configuring your Cluster)
第一步是确保正确安装了 Java SE环境。ElasticSearch需要版本6或更高的版本,可以从下面的地址下载:http://www.oracle.com /technetwork/java/javase/downloads/index.html。如果您愿意,也可以使用OpenJDK。要安装 ElasticSearch,先从http://www.elasticsearch.org/download/ 下载并解压。选择最新的稳定版本。就是这样!安装完成。
注意:本书的写作过程中使用的版本是0.20.0。
与 ElasticSearch通信是基于HTTP协议和REST接口。这意味着,对于一些基本的查询和请求,您甚至可以使用一个web浏览器;但对于更复杂 的,您需要额外的软件,比如CURL命令。如果您使用Linux或mac OS X命令,CURL包应该已经可用。如果您使用的是Windows,您可以从http://curl.haxx.se/download.html 下载它。
目录结构(Directory structure)
现在让我们去新创建的目录中。我们可以看到下面的目录结构:
目录(Directory) | 描述(Description) |
bin | 运行ElasticSearch实例和插件管理所需的脚本 |
config | 配置文件所在的目录 |
lib | ElasticSearch所使用的库 |
ElasticSearch启动后,它将创建以下目录(如果它们不存在):
目录(Directory) | 描述(Description) |
data | 存储ElasticSearch所使用的所有数据 |
logs | 实例运行期间产生的事件和错误信息的文件 |
plugins | 用于存储安装的插件 |
work | 临时文件 |
配置ElasticSearch(Configuring ElasticSearch)
原 因之一-但当然,不是独一无二的-ElasticSearch获得越来越多的关注,因为ElasticSearch入门非常容易。因为合理的默认值和自动 化的简单环境,我们可以不改变一行配置文件而直接跳过配置进入下一章。然而,为了真正理解ElasticSearch,值得去明白一些可用设置。
整 个配置位于config目录。我们可以看到两个文件:elasticsearch.yml(或elasticsearch.json,如果存在,它将被使 用)和logging.yml。第一个文件负责服务器缺省配置设置。这是很重要的,因为这些值可以在运行时改变并且作为集群的状态,所以这个文件中的值可 能不准确。我们将在第8章向您展示如何检查准确的配置,处理问题。我们在运行时不能改变的两个值是cluster.name和node.name。
cluster.name属性负责持有我们的集群的名称。集群名称分隔不同的集群。具有相同名称的节点配置将试图形成一个集群。
第 二个值是实例名。我们可以舍弃这个参数定义。在这种情况下,ElasticSearch自动选择一个唯一的名称。注意,这个名称是在每次启动后选择,所以 每次重启后名称是不同的。定义名称可以通过API指向具体实例或当使用监控工具看见长时间运行的节点和重新启动时正在发生的事情。如果您不提供一个名 称,ElasticSearch会自动选择一个随机的-所以同一个节点在重新启动后可以有不同的名称。考虑给节点描述性的名称。
文件中其它注释掉的参数,我们建议你浏览它。不要担心不理解,在阅读接下来的几章后,我们希望一切都会变得清晰。
第二个文件(logging.yml)定义了多少信息写入系统日志,定义了日志文件,并定期创建新文件。当你需要适应监控或备份方案,或在系统调式的时候,这个文件的变化是必要的。
现 在让我们离开配置文件。配置的一个重要组成部分是调优您的操作系统。在索引的时候,尤其是当您有很多分片和副本,ElasticSearch将创建多个文 件;因此,系统不能限制打开的文件描述符少于32000。对于Linux服务器,通常可以改变/etc/security/limits.conf。并且 当前值可以用ulimit命令显示。
下一个设置是连接到一个实例的内存限制。默认值(1024MB)可能是不够的。如果您在日志文件中发现 条目OutOfMemoryError,那么设置环境变量ES_HEAP_SIZE值大于1024。注意:这个值不应该设置为物理内存总量的50%以上- 其余部分可以用作磁盘高速缓存,它极大地提高了搜索的性能。