ES 6.1.2集群安装

1、下载java,并设置环境变量

sudo tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/

sudo vim /etc/profile

在最后添加

export JAVA_HOME=/usr/local/jdk1.8.0_191 
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载环境变量,检测是否安装成功

source /etc/profile
java -version
-----------出现则成功------------------
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

2、添加账户

sudo groupadd elastic
sudo useradd -M -g elastic elastic

3、下载elasticsearch。官网https://www.elastic.co/。上传服务器,解压缩

unzip elasticsearch-6.1.2.zip

4、、放置安装目录/usr/local中

sudo mv elasticsearch-6.1.2 /usr/local/

进入目录,修改参数

cd /usr/local/elasticsearch-6.1.2/config/
vim elasticsearch.yml 

更改如下内容

cluster.name: es_cluster
node.name: node-220
path.data: /data/es_data
path.logs: /data/es_logs
network.host: 0.0.0.0
http.port: 9200

5、创建数据目录和日志目录,并赋权限

sudo mkdir /data/es_data
sudo mkdir /data/es_logs
sudo chown -R elastic.elastic /usr/local/elasticsearch-6.1.2/
sudo chown -R elastic.elastic /data/es_*

6、切换到elastic启动ES

su - elastic
/usr/local/elasticsearch-6.1.2/bin/./elasticsearch

7、至此,单节点的ES启动成功。如需启动集群,则其他服务器相同配置,注意更改一下几个参数

cluster.name: es_cluster #需要保持一致
node.name: node-220 #具体自行修改
node.master: true # 这个参数只是说明有资格成为主
node.data: false # 一般主不做数据存储。其他两个节点设置为true
path.data: /data/es_data
path.logs: /data/es_logs
network.host: 192.168.137.220 #自行修改
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.137.220:9300", "192.168.137.221:9300", "192.168.137.222:9300"]
discovery.zen.minimum_master_nodes: 2 #节点数/2 + 1。3个节点的话就设置成2

一次启动各个节点。通过elasticsearch-head查看集群ok

elasticsearch-head是谷歌浏览器的一个插件

错误处理:

[2019-05-08T18:33:05,647][INFO ][o.e.n.Node               ] [node-220] starting ...
[2019-05-08T18:33:05,799][INFO ][o.e.t.TransportService   ] [node-220] publish_address {192.168.137.220:9300}, bound_addresses {[::]:9300}
[2019-05-08T18:33:05,814][INFO ][o.e.b.BootstrapChecks    ] [node-220] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: memory locking requested for elasticsearch process but memory is not locked
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2019-05-08T18:33:05,829][INFO ][o.e.n.Node               ] [node-220] stopping ...
[2019-05-08T18:33:05,859][INFO ][o.e.n.Node               ] [node-220] stopped
[2019-05-08T18:33:05,859][INFO ][o.e.n.Node               ] [node-220] closing ...
[2019-05-08T18:33:05,878][INFO ][o.e.n.Node               ] [node-220] closed

1、vm.max_map_count错误

原因:最大虚拟内存太小

解决方案:

修改配置文件sysctl.conf

sudo vim /etc/sysctl.conf

添加下面配置:vm.max_map_count=655360

并执行命令:sudo sysctl -p

2、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

原因:无法创建本地文件问题,用户最大可创建文件数太小

解决方案:编辑limits.conf配置文件, 添加类似如下内容:

sudo vi /etc/security/limits.conf

添加如下内容:

*  soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

备注:* 代表Linux所有用户名称(比如hadoop)

保存、退出、重新登录才可生效

3、已经能够正常启动,本地能够正常curl到具体内容,但是远程无法获取

原因:防火墙问题

解决方案:关闭防火墙

原文地址:https://www.cnblogs.com/binbinyouni/p/10833722.html