写在前面:ES不能使用root用户否则启动会报错,请使用普通用户操作,请使用Linux内核版本搞与3.5+的Linux,,否则坑是自己慢慢填的
IP:
192.168.174.221 ElasticSearch-Head 需要NodeJS 6及以上的支持
关于Head插件参考:https://github.com/mobz/elasticsearch-head
ElasticSearch需要JDK8以上的支持,需要安装JDK8,Linux安装JDK参考https://blog.csdn.net/weixin_42465125/article/details/88767998
192.168.174.222 ElasticSearch-Master
192.168.174.223 ElasticSearch-Slave01
192.168.174.224 ElasticSearch-Slave02
在221~224上面下载ElasticSearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
根据规划的节点分别建立三个目录
222机器:mkdir es-master
223机器:mkdir es-slave01
224机器:mkdir es-slave02
然后分别解压下载的ES到对应的目录,后面都操作都只演示一个节点的,除了配置文集
tar -xvf elasticsearch-6.6.2.tar.gz -C es-master/
下面先来配置主结点:
在config/elasticsearch.yml文集末尾追加如下
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: es6Cluster
node.name: master
node.master: true
network.host: 192.168.174.222
两个从节点:
cluster.name: es6Cluster
node.name: slave01
network.host: 192.168.174.223
http.port: 8200
discovery.zen.ping.unicast.hosts: ["192.168.174.222"]
cluster.name: es6Cluster
node.name: slave02
network.host: 192.168.174.224
http.port: 7200
discovery.zen.ping.unicast.hosts: ["192.168.174.222"]
在Head插件机器上安装NodeJS环境:
参考:https://github.com/nodesource/distributions
curl -sL https://rpm.nodesource.com/setup_11.x | bash -
yum -y install nodejs
下载head插件:
参考:https://github.com/mobz/elasticsearch-head
git clone git@github.com:mobz/elasticsearch-head.git
然后进入下载插件目录编译启动:
cd elasticsearch-head
npm install
启动Head插件:
npm run start
然后访问:192.168.174.221:9100
然后去启动ElasticSearch的所有节点:
./bin/elasticsearch -d
ES不能使用root用户否则启动会报错,好吧,新建个用户吧,回顾Linux吧
为用户添加sudoers
echo "cuites ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
source /etc/sudoers
然后mv es文件夹到新建的用户的家目录下
mv es-master/ /home/cuites/
改变所有者
chown -R cuites es-master/
注意上面的操作是root用户操作的
下面就切换成新建的cuites用户来启动
su cuites
跪了,Linux内核版本过低
升级内核....搞吧
防止升级失败以前的一些东西丢掉,先给虚拟机拍个快照
开始升级内核
当前内核版本
导入key报错:
原因是nss版本有点旧了,yum -y update nss更新一下,然后再次导入
内核升级:
参考:
https://blog.csdn.net/wh211212/article/details/78683753
http://elrepo.org/tiki/tiki-index.php
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-lt -y
sudo vim /etc/grub.conf 修改default=0
sudo reboot
uname -a/-r
新的内核位于第一个位置,所以修改为0,以新的内核启动
重启之后查看内核版本:
好,现在来启动ES
坑啊,内核问题解决,新的问题又来了
解决办法,参考:https://blog.csdn.net/weijie0917/article/details/87859203
https://my.oschina.net/openplus/blog/1582122
https://www.jianshu.com/p/2285f1f8ec21
/etc/security/limits.conf 追加
* soft nofile 65536
* hard nofile 65536
# 最终是追加了下面这两个启动才完全OK
* soft nproc 4096
* hard nproc 4096
/etc/sysctl.conf 追加
vm.max_map_count=655360
/etc/security/limits.d/90-nproc.conf 修改1024为4096
* soft nproc 4096
然后执行 sysctl -p 生效
神坑,执行了sysctl -p依然报如下错误
Clone一个会话窗口,就能启动了,服,也就是说,退出当前用户的连接,然后重新连接一下就好使了
再次启动,终于启动成功了
一大晚上,终于好了
********************************* 不积跬步无以至千里,不积小流无以成江海 *********************************