一、安装前的准备
准备三台Linux主机,可以是物理机、虚拟机、云主机
① 三台主机要保证可相互通信,尽量配置SSH免密登录
② 三台主机均安装同一版本的JDK,建议JDK8+
③ 三台主机的名称和IP-主机名映射尽量配置一下
④ 主机的单机内存最少2GB,这是自己玩儿,如若是生产环境,配置要详细计算
小白这边使用的是三台Centos6.x虚拟主机,安装的jdk8,ES集群环境规划如下:
二、下载、解压
按照【ES集群环境规划图】下载相应的组件包,要保持版本一致,并解压放置在对应的机器目录中(注意Kibana此处只部署了一台),小白的三个目录分别为:
/opt/module/elasticsearch-6.6.0
/opt/module/kibana-6.6.0-linux-x86_64
/opt/module/elasticsearch-6.6.0/plugins/ik
由于前两篇文章中已经细致的阐述过单机版的安装过程,此处不再赘述,只是再贴一次资源地址
官网下载ES的Linux版本的tar包:https://www.elastic.co/cn/downloads/elasticsearch
官网下载Kibana的Linux版本的tar包:https://www.elastic.co/cn/downloads/kibana
GitHub下载IK分词器的ZIP包:https://github.com/medcl/elasticsearch-analysis-ik/releases
三、ElasticSearch与Linux配置
1、分别修改各主机上ElasticSearch的配置文件
Linux命令 vi /opt/module/elasticsearch-6.6.0/config/elasticsearch.yml
2、分别修改各主机Linux系统配置
为什么要修改linux配置?
默认elasticsearch是单机访问模式,就是只能自己访问自己。但是我们之后一定会设置成允许应用服务器通过网络方式访问。这时,elasticsearch就会因为嫌弃单机版的低端默认配置而报错,甚至无法启动。所以我们在这里就要把服务器的一些限制打开,能支持更多并发。当然了,不出问题的话也可以不改!
问题一:启动日志出现
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] elasticsearch
将系统允许 Elasticsearch 打开的最大文件数修改成65536
vi /etc/security/limits.conf 修改Centos系统的配置
添加内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 65536
注意:“*” 不要省略掉
问题二: 启动日志出现
max number of threads [1024] for user [judy2] likely too low, increase to at least [2048] (CentOS7.x 不用改)
将允许最大进程数修改成4096
vi /etc/security/limits.d/90-nproc.conf 修改Centos系统的配置
修改如下内容:
* soft nproc 1024 => * soft nproc 2048
问题二中其实已经改过一次了,小白这边2048就解决问题了,再不行的话就修改为4096
问题三: 启动日志出现
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] (CentOS7.x 不用改)
可临时提高vm.max_map_count的大小,进而提高一个进程可以拥有的虚拟内存区域的数量。
sysctl -w vm.max_map_count=262144 临时生效,重启虚拟机则失效
vim /etc/sysctl.conf 在文件最后添加一行 vm.max_map_count=262144 永久生效
修改完需重启linux,如果是较新版本的linux,也可以使用 sysctl -p 命令去生效。
四、配置Kibana
Linux命令 vi /opt/module/kibana-6.6.0-linux-x86_64/config/kibana.yml
五、配置IK分词器
其实这个不需要配置,只要解压到/opt/module/elasticsearch-6.6.0/plugin目录下(如果解压后的文件没有目录,就新建一个,如/opt/module/elasticsearch-6.6.0/plugin/ik/),ES启动时会自动扫描加载,至于其作用,此处不做深入说明,下一篇将会用到,到时再叙。
六、集群启动测试
1、启动集群
启动方式一:
第一步:在各节点上分别执行ES启动命令,注意先启动主节点
/opt/module/elasticsearch-6.6.0/bin/elasticsearch
第二步:在kibana所在节点上执行启动命令
/opt/module/kibana-6.6.0-linux-x86_64/bin/kibana
启动方式二:
在用户家目录下的bin目录中新建一个shell脚本并赋予执行权限
小白的脚本名为 elk.sh,代码如下
#!/bin/bash
es_home=/opt/module/elasticsearch-6.6.0
kibana_home=/opt/module/kibana-6.6.0-linux-x86_64
case $1 in
"start") {
for i in hadoop02 hadoop03 hadoop04
do
echo "----------$i 启动elasticsearch----------"
ssh $i "source /etc/profile;${es_home}/bin/elasticsearch >/dev/null 2>&1 &"
done
echo "----------启动kibana----------"
nohup ${kibana_home}/bin/kibana >/opt/module/kibana-6.6.0-linux-x86_64/kibana.log 2>&1 &
};;
"stop") {
echo "----------关闭kibana----------"
ps -ef|grep ${kibana_home} |grep -v grep|awk '{print $2}'|xargs kill
for i in hadoop02 hadoop03 hadoop04
do
echo "----------$i 关闭elasticsearch----------"
ssh $i "ps -ef|grep $es_home |grep -v grep|awk '{print \$2}'|xargs kill" >/dev/null 2>&1
done
};;
esac
启动ES集群及kibana命令:elk.sh start
关闭ES集群及kibana命令:elk.sh stop
注意:
此文本中ssh $i需要事先配置ssh免密登录,否则需要手动输入密码。
2、测试集群
到这里,ES集群和kibana都已经启动了
浏览器输入 http://hadoop02:5601 此处hadoop02是Kibana所在的机器IP
出现如下页面,并查看集群状态,则说明集群正常启动了
七、总结
ES集群算是大数据领域安装部署比较简单的,但是还有更简单的!此时你想到的一定也是Docker,快速部署开发、测试环境,就像maven管理依赖那般,舒服了~
最后,ES及其相关组件的配置参数有很多,详情还是参照官网比较好!
https://www.elastic.co/guide/index.html
ES(四) FileBeat+LogStash安装与测试 ES(六) ElasticSearch搜索原理