1、安装说明
在安装前,请了解如下事项:
Ø ElasticSearch需要使用非root用户安装。
Ø ElasticSearch的运行依赖于JDK,在安装ElasticSearch前需要先完成JDK的安装。
ElasticSearch采用集群方式部署,安装规划如下所示:
主机名 |
IP地址 |
用户组 |
用户名/密码 |
家目录 |
base1 |
192.168.209.143 |
es |
es/es |
/usr/local/es |
base2 |
192.168.209.151 |
es |
es/es |
/usr/local/es |
base3 |
192.168.209.152 |
es |
es/es |
/usr/local/es |
2、创建用户组和用户
请在三台服务器上分别执行如下命令创建ElasticSearch的安装用户组和用户名。
1、 创建用户组。
# groupadd es
2、 创建用户名。
# useradd -g es es -d /usr/local/es
3、 修改用户密码。
# passwd es
4、 创建用户家目录。
# mkdir -p /usr/local/es
# chown es:es /usr/local/es
5、 为用户添加sudo权限
# vi /etc/sudoers
在文件末尾追加一行:
%es ALL=(ALL)ALL
3、修改系统参数
1、 修改系统文件/etc/security/limits.conf,在文件末尾添加如下内容。
* hard nofile 65536
* soft nofile 65536
2、 修改内核参数。
# sysctl -w vm.max_map_count=655360
# ulimit-v unlimited
4、安装JDK
请在每台服务器上以es用户安装JDK。
1、 将JDK安装包jdk-8u66-linux-x64.tar.gz上传到主机es用户家目录。
2、 解压JDK安装包。
$ cd
$ mkdirjdk
$ tarzxvf jdk-8u66-linux-x64.tar.gz
$ mvjdk1.8* jdk
3、 配置环境变量。
$ vi~/.bashrc
添加如下内容:
exportJAVA_HOME=/usr/local/es/jdk
exportJAVA_BIN=$JAVA_HOME/bin
exportPATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOME JAVA_BIN PATH CLASSPATH
4、 使环境变量生效。
$ source~/.bashrc
5、 检查JDK是否安装成功。
$ java-version
若显示JDK版本信息则表明JDK安装成功。
6、 删除JDK安装包。
$ rm ~/jdk-8u66-linux-x64.tar.gz
5 、安装ES
请先在base1主机完成Elasticsearch安装后,再讲安装目录拷贝到其它主机节点。
1、 将安装包elasticsearch-5.5.1.tar.gz上传到base1主机es用户家目录。
2、 解压安装包。
$ tar zxvfelasticsearch-5.5.1.tar.gz
3、 修改安装目录名称。
$ mv elasticsearch-5.5.1elasticsearch
4、 修改配置文件~/elasticsearch/config/elasticsearch.yml。
$ vi ~/elasticsearch/config/elasticsearch.yml
请参考如下说明进行修改。
cluster.name: elasticsearch
#集群名elasticsearch。es启动后会将具有相同集群名字的节点放到一个集群下。
node.name:"es-node-01"
#节点名字。
path.data:/usr/local/es/data
#数据文件存储路径
path.logs:/usr/local/es/logs
#日志文件存储路径
network.host:192.168.137.100
#默认网络连接地址
http.port:9200
#设置HTTP端口
discovery.zen.ping.unicast.hosts:["192.168.209.143", "192.168.209.151","192.168.209.152"]
#指明集群中其它可能为master的节点ip,以防es启动后发现不了集群中的其他节点。
covery.zen.minimum_master_nodes:2
#指定集群中的节点中有几个有master资格的节点。对于大集群可以写3个以上。
5、 将elasticsearch文件夹拷贝到base2和base3节点。
$ scp -r elasticsearches@192.168.209.151:/usr/local/es
$ scp -r elasticsearches@192.168.209.152:/usr/local/es
6、 修改base2和base3节点的配置文件。
$ vi~/elasticsearch/config/elasticsearch.yml
base2节点需修改的配置参数如下所示:
node.name:es-node-02
network.host:192.168.209.151
base3节点需修改的配置参数如下所示:
node.name:es-node-03
network.host:192.168.209.152
7、 启动ElasticSearch。
在所有节点上以es用户执行如下命令,以后台方式启动各节点的ElasticSearch。
$ cd ~/elasticsearch/bin
$ ./elasticsearch-d
8、 检查Elasticsearch集群状态。
在集群中的任一台节点上执行curl -XGET 'http://<Server_IP>:9200/_cluster/health?pretty'命令,查看集群状态。示例如下所示:
$ curl-XGET 'http://192.168.209.143:9200/_cluster/health?pretty'
{
"cluster_name" :"my-application",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 1,
"active_shards" : 3,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number" :100.0
附录一:
安装后启动时有报错,提示内存不足,如下所示,即使把VM的内存调整为10g依然无法启动。
[2016-12-20T22:37:28,543][INFO ][o.e.b.BootstrapCheck ] [es-node-01] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2016-12-20T22:37:28,552][ERROR][o.e.b.Bootstrap ] [es-node-01] node validation exception
bootstrap checks failed
max number of threads [1024] for user [es] is too low, increase to at least [2048]
解决方法一:
将network.host: 192.168.209.143所在行注释掉,可以正常启动。但这样的化,就没法形成集群了。因为此时会用127.0.0.1作为本节点的启动IP,每个节点都是如此,这样就无法从其它主机访问了。
解决方法二:
配置为如下内容:
network.host: _eth0:ipv4_
此时,可以正常启动。
附录二:
# cat /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
* hard nproc unlimited
* soft nproc unlimited
* hard memlock unlimited
* soft memlock unlimited
* - as unlimited