Elasticsearch 安装与集群配置
一、软件版本
操作系统:CentOS-6.5-x86_64
ES版本:5.0
主机:192.168.63.246
主机: 192.168.63.242
二、部署环境规划:
1、 需求:jdk版本:open-jdk.1.8
[root@www config]# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
2、 下载解压安装即可:
[root@www src]# cd /test/
[root@www test]# tar zxvf elasticsearch-5.0.0.tar.gz
3、 具体配置:
[root@www elasticsearch-5.0.0]# cd config/
[root@www config]# vim elasticsearch.yml
配置解析:
集群:
cluster.name: es-log
节点:
node.name: log-1 ##节点保持唯一性。
数据和日志存放目录:
#path.data: /path/to/data
#path.logs: /path/to/logs ##默认当前目录下,可以修改
是否使用swap:
bootstrap.memory_lock:true
广播配置:
discovery.zen.ping.unicast.hosts: ["192.168.63.242", "192.168.63.247"]
discovery.zen.minimum_master_nodes: 1
其他相关系统设置:
Vim /etc/sysctl.conf
vm.max_map_count= 262144
sysctl –p
系统打开文件数配置:
[root@controller config]# vim /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
修改用户打开的线程数,因为es 的段要经常打开文件控制索引:
vim /etc/security/limits.d/90-nproc.conf
* soft nproc 2048
切换到普通用户启动:
Su – dashuju
[dashuju@www bin]$ ./elasticsearch
#####要是提示,报一些没有启动的目录,直接创建即可,但是想写入日志和数据必须是普通用户有写入权限#####
启动之后:测试有如下显示表示已经安装成功。
[root@www bin]# curl -XGET '192.168.63.242:9200'
{
"name" : "log-1",
"cluster_name" : "es-log",
"cluster_uuid" : "_na_",
"version" : {
"number" : "5.0.0",
"build_hash" : "253032b",
"build_date" : "2016-10-26T04:37:51.531Z",
"build_snapshot" : false,
"lucene_version" : "6.2.0"
},
"tagline" : "You Know, for Search"
}
4、 集群启动设置:
加入说只有一个节点,那么es就当做自己是一个集群。
一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载。
当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。
1、 我们已经启动了192.168.63.242这台机器,我们可以现在创建一条索引,然后查看一下单集群的状态:
[root@www elasticsearch-5.0.0]# curl -XPOST '192.168.63.242:9200/test/name/1' -d '
{
"name": "xiaoluo"
}'
####创建一条test的索引,type为name,id=1
2、 然后我们查看一下集群当前的状态:
ticsearch-5.0.0]# curl -XGET '192.168.63.242:9200/_cluster/health?pretty'
{
"cluster_name" : "es-log",
"status" : "yellow",
}
主要看一下集群的几个状态:
green 所有主要分片和复制分片都可用
yellow 所有主要分片可用,但不是所有复制分片都可用
red 不是所有的主要分片都可用
#####可以看到我们现在显示为:yellow的,因为我们只有主分片,而没有复制分片的。
现在我们启动配置好192.168.63.246这个节点:
cluster.name: es-log
node.name: log-2
bootstrap.memory_lock: true
network.host: 192.168.63.246
discovery.zen.ping.unicast.hosts: ["192.168.63.246", "192.168.63.242"]
discovery.zen.minimum_master_nodes: 1
可以看到相关启动日志:
我们知道已经加入这个集群了,现在我们看一下集群的相关状态:
[root@www elasticsearch-5.0.0]# curl -XGET '192.168.63.242:9200/_cluster/health?pretty'
{
"cluster_name" : "es-log",
"status" : "green",
}
可以看到集群已经变成绿色,说明我们复制分片是已经可以使用了的,我们在192.168.63.246上面查看一下我们刚刚创建的数据看:
[root@www elasticsearch-5.0.0]# curl -XGET '192.168.63.246:9200/test/name/1?pretty'
{
"_index" : "test",
"_type" : "name",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"name" : "xiaoluo"
}
}
############可以看到数据已经被复制到192.168.63.246上面了。
后面我们测算成功之后,我们集群的配置要稍作修改:
discovery.zen.minimum_master_nodes: 2 ###开始设置成1是为了一台测试,宣讲我们推荐大于1台。