ElasticSearch 集群安装(5.5.2)

ElasticSearch 集群安装

一、ElasticSearch

      关于ElasticSearch(后续简称es)的介绍这里就多说了,单机版的安装于配置可以参考《elasticsearch安装及配置》,其实集群版和单机安装区别不大,只是多一些配置以及需要注意的地方,集群版也可以单个节点启动运行。

      ElasticSearch 官网:https://www.elastic.co/products/elasticsearch

二、ElasticSearch安装

1.环境介绍:

      Elasticsearch:5.5.2版本

      操作系统:Centos 6.5

      JDK: 1.8

      集群节点3台:192.168.252.129;192.168.252.130;192.168.252.131

这里es是依赖jdk的需要安装jdk,这里我们使用的es 5.5.2版本,依赖的jdk必须是1.8及以上。由于公司环境是CentOS 6.5 环境,我们采用CentOS 6.5的环境安装es集群,这里需要注意CentOS6.5 6.5版本安装es 5.x,需要修改es 的核心配置文件,具体配置见后文。

   各安装包建议从官网上下,后续有时间会补上笔者的安装包百度云盘路径。

2.ES集群安装

     Es的集群安装,可以先配置一台节点,然后复制es文件到其他节点,再分别修改各节点配置,或者可以选择一些批量处理工具等。下面就选择一台节点进行安装配置。

     1.官网下载安装包

      https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz

     2.解压安装

tar -xvf elasticsearch-5.5.2.tar.gz -C /usr/local

     3. 修改系统相关配置

1. 设置内核参数
vim /etc/sysctl.conf
添加如下内容:
fs.file-max=65536
vm.max_map_count=262144
之后可以使用sysctl –a查看 –p刷新
2. 设置资源参数
vim /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3. 修改进程数 (7.x是修改20-nproc.conf文件)
vim /etc/security/limits.d/90-nproc.conf
修改( * soft nproc )的值为2048
   4.修改ES集群配置文件:%ES%/config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置项value 前需要加空格 如:cluster.name: amala_es

# ---------------------------------- Cluster -----------------------------------
# 配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: amala_es
# ------------------------------------ Node ------------------------------------
# 节点名称
node.name: node_1
#指定该节点是否有资格被选举成为master
node.master: true
#指定该节点是否存储索引数据,默认为true
node.data: true
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["192.168.252.129","192.168.252.130","192.168.252.131"]
# ---------------------------------- Network -----------------------------------
# 设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host: 192.168.252.130
# 指定http端口,你使用head kopf等相关插件使用的端口
http.port: 9200
#设置节点间交互的tcp端口,默认是9300。  
transport.tcp.port: 9300
#如果要使用head,那么需要增加新的参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

# centos 6.5 版本中,启动时报错:system call filters failed to install; 
# check the logs and fix your configuration or disable system call filters at your own risk
# 添加该配置项
bootstrap.system_call_filter: false

其他节点安上述配置,不同节点,保证node.name、network.host配置项不能相同。
   5.启动服务
       建议集群首次启动前先清空es 中data文件夹下的文件,启动前关闭防火墙。
Es的高版本中,已经不允许使用root用户来启动了(因为es会接收执行语句,出于安全),这里需要为es创建普通用户,并设置es文件夹归属为es普通用户,再通过es普通用户启动es。具体步骤如下:

#使用root用户创建es普通用户
useradd  es	
#设置elasticsearch文件夹的归属
chown -R es  /usr/local/elasticsearch	
#切换为es用户
su es	
#切换目录到es的bin目录下
cd /usr/local/elasticsearch/bin	
#当前窗口启动es服务 或者加 -d 参数后台启动
./elasticsearch	
6.检查启动
执行:curl 'http://localhost:9200/?pretty' 出现类似如下内容,则说明启动成功。




注意事项:

1.出现如下报错,说明Centos版本低,而出现的报警。解决办法:可以选用高版本的CentOS(7.x),或者在es核心配置文件中添加bootstrap.system_call_filter: false,关闭检测。


2.出现如下报错,说明es核心配置文件中,配置项值得格式不符合yml格式,具体要求,配置项值前需要空格,配置项后不要留空格,符号使用英文输入法格式。解决办法:详细检查该配置文件,修改不符合的格式。


3.出现如下报错,说明启动的时候使用root用户启动。解决办法:使用普通用户启动es。



4.出现如下报错,说明启动时es的data目录下留有其他配置是启动留下的文件,与当前配置冲突。该错误一般出现在复制虚拟机或者复制es目录时产生。解决办法:删除data下的全部文件(将会删除数据,自行选择);核对各节点配置文件中的node.name、network.host配置项是否有重名冲突。

[2017-08-30T15:17:40,016][INFO ][o.e.d.z.ZenDiscovery     ] [pros-node-2]  
failed to send join request to master [{pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}],   
reason [RemoteTransportException[[pros-node-1][10.45.32.90:10800][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {pros-node-2}  
{Dhq0h4IHS6GF4MgFwc1Vhw}{EttroN0-StienfP37gyLag}  
{10.45.32.30}{10.45.32.30:10800}, found existing node {pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}  
 with the same id but is a different node instance]; ]


猜你喜欢

转载自blog.csdn.net/cb2474600377/article/details/78274562