Elastic Search 的安装,特别是单节点的安装非常简单。按照官方文档操作如下
确认环境
最新的Elastic Search 6.1.1 要求linux 内核 3.5 以上,本文在 CentOS 7 版本下进行安装。
最新的Elastic Search 6.1.1 要求linux 内核 3.5 以上对JDK 的要求是 1.8 以上。首先确保系统中的 JDK 存在并且是 JDK1.8 以上版本
java -versionjava version "1.8.0_144"Java(TM) SE Runtime Environment (build 1.8.0_144-b01)Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)复制代码
这里显示 JDK 是1.8.0_144版本的。满足 Elastic Search 6 的要求
下载安装的压缩包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz复制代码
解压安装包
tar -xvf elasticsearch-6.1.1.tar.gz复制代码
配置 Elastic Search 集群
ES 的配置文件在安装目录下的 conf 目录下,一个是 log4j2.properties 文件,用来配置日志信息的,一个是 jvm.options 文件,用来配置 JVM 运行参数的。一个是 elasticsearch.yml 是用来配置 ES 自身的。前面两个我们先不管。我们主要配置 elasticsearch.yml 文件
注意下面几行
#cluster.name: my-application#node.name: node-1#path.data: /path/to/data#path.logs: /path/to/logs#network.host: 192.168.0.1#http.port: 9200复制代码
- cluster.name 用来指定集群的名称。如果不指定,则默认是 elasticsearch。
- node.name 用来指定当前节点的名称,如果不指定,则会启动的时候自动生成一个随机唯一标识符作为节点的名称。
- path.data 指定 ES 数据存储路径。
- path.logs 指定 ES 日志文件存储路径。
- network.host 用来指定服务端口绑定的 IP 地址,默认绑定 127.0.0.1 ,也就是只能本机访问。
- http.port 用来指定提供 http 服务的端口。
根据上述描述。我们去掉这几行的注释标识 # 并且把内容更改为下面的内容。这里加锁 /usr/local/elasticsearch-6.1.1 是 ES 安装路径。
cluster.name: study_clusternode.name: masterpath.data: /usr/local/elasticsearch-6.1.1/datapath.logs: /usr/local/elasticsearch-6.1.1/logsnetwork.host: 0.0.0.0http.port: 9200复制代码
启动 Elastic Search
/usr/local/elasticsearch-6.1.1/elasticsearch 复制代码
如果启动的时候出现如下提示
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536][2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]复制代码
解决第一个问题需要用有 root 权限用户 在文件 /etc/security/limits.conf 的最后加上两行。
* hard nofile 65536* soft nofile 65536复制代码
解决第二个问题需要用有 root 权限的用户执行如下的命令
sysctl -w vm.max_map_count=262144复制代码
再重新执行如下命令
/usr/local/elasticsearch-6.1.1/elasticsearch 复制代码
将能正常启动 ES 集群
查看状态
查看基本信息
在命令行下执行命令
curl http://localhost:9200复制代码
得到如下的信息
{ "name" : "master", "cluster_name" : "study_cluster", "cluster_uuid" : "YEpCazm4RlK5iPUKKZpmEQ", "version" : { "number" : "6.1.1", "build_hash" : "bd92e7f", "build_date" : "2017-12-17T20:23:25.338Z", "build_snapshot" : false, "lucene_version" : "7.1.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"}复制代码
这个用一个 JSON 格式数据显示了集群的基本信息
查看健康状态信息
在命令行下执行命令
curl http://localhost:9200/_cat/health?v复制代码
得到如下图所示的健康状态信息
- timestamp:代表状态时间
- cluster:表示集群名称
- status:表示集群状态。green 代表健康;yellow 代表数据完整,但是副本不完整;red 代表数据不完整
- node.total:表示集群节点总数
- node.data:表示集群数据节点总数
- shards:表示集群分片的总数
- active_shards_percent:表示集群活动的分片百分比
查看状态列表
在命令行下执行命令
curl http://localhost:9200/_cat复制代码
得到如下图所示的状态命令列表信息
至此,我们就完成了一个单节点的 Elastic Search 集群的安装