Elasticsearch 5.0安装与集群的简单构建
实验主机:
10.254.15.69(CentOS 7.2 64位) 10.254.15.70(CentOS 7.2 64位)
Elasticsearch版本:
5.3
环境要求:
在安装Elasticsearch之前需要先部署好JDK的环境,这里我们以JDK1.8为例。
1、首先到官方下载JDK最新的tar包,然后将其解压到我们自己创建的目录,如/usr/local/jdk1.8
2、修改环境变量,编辑/etc/profile文件,添加以下行
JAVA_HOME=/usr/local/jdk1.8 PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME
3、执行下profile文件使其生效
source /etc/profile
4、执行java -version看看环境是否成功配置,如图代表配置成功
安装Elasticsearch
1、到官方下载Elasticsearch的tar包并解压,可以看到对应目录如下
2、进入config目录,编辑配置文件elasticsearch.yml,修改以下项(特别注意discovery.zen.minimum_master_nodes一项,官方推荐设置数目是节点数量除以2再加1,我用2台节点测试的时候发现如果设置为2,那么必须要2台节点都同时启动才会正常,也就是说这里可以理解为设置了几,那么必须至少启动几个节点)
cluster.name: estest #配置集群的名字,就算只有一台服务器,Elasticsearch也会认为自己是一个集群,并且是Master角色 node.name: server1 #节点名字 #path.data: /path/to/data #数据存放路径,根据需求更改 #path.logs: /path/to/logs #日志存放路径,根据需求更改 network.host: 0.0.0.0 #监听的地址,页可以写本机IP http.port: 9200 #监听端口 discovery.zen.ping.unicast.hosts: ["10.254.15.69", "10.254.15.70"] #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.zen.minimum_master_nodes: 1 #设置有成为Master节点的主机数量
3、如果直接用root来运行./bin/elasticsearch会提示不能在root下执行,如图
4、创建一个用户用于运行ES,然后将Elasticsearch整个目录属主修改为该用户
useradd elasticsearch chown -R elasticsearch.elasticsearch /elasticsearch-5.3.0
5、创建存放数据的目录,这个目录就是在elasticsearch.yml里所指定的目录,属主也要修改为对应用户
mkdir -p /elasticsearch/logs mkdir /elasticsearch/data chown -R elasticsearch.elasticsearch /elasticsearch
6、用创建的账户运行Elasticsearch,如果遇到以下错误,请做修改:
(1)max virtual memory areas vm.max_map_count [65530] is too low
修改/etc/sysctl.conf,增加一行vm.max_map_count= 262144。然后执行sysctl -p使其生效
(2)max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf,做以下配置
* soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536
(3)memory locking requested for elasticsearch process but memory is not locked
将配置文件里的bootstrap.memory_lock: true注释掉
7、再次运行成功,监听了9200、9300两个端口,加-d选项可以让服务在后台运行。可以通过curl验证下
集群的构建:
在另一台节点上也做同样的操作,只不过yml配置文件里的node.name节点名字需要改一下,要保证唯一性。以及network.host这项改为自己的IP即可。其他配置和第一台一致,然后用非root用户启动服务。
评论