Elasticsearch 5.0安装与集群的简单构建

TangLu 运维 2017-04-11 4243 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看看环境是否成功配置,如图代表配置成功


elkjdk.png 

安装Elasticsearch 

1、到官方下载Elasticsearch的tar包并解压,可以看到对应目录如下 

esinstall1.png

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下执行,如图


esinstall2.png

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验证下esinstall3.png

esinstall4.png

集群的构建:

在另一台节点上也做同样的操作,只不过yml配置文件里的node.name节点名字需要改一下,要保证唯一性。以及network.host这项改为自己的IP即可。其他配置和第一台一致,然后用非root用户启动服务。

评论