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到具体内容,但是远程无法获取
原因:防火墙问题
解决方案:关闭防火墙