说明
- 依赖JDK环境
- 基于elasticsearch7.10.2、kibana7.10.2、ik分词器版本
- Elasticsearch7.10.2下载
- Kibana7.10.2下载
- ik分词器下载
集群规划
hadoop300 | Hadoop301 | Hadoop302 | |
---|---|---|---|
elasticsearch | V | V | V |
Kibana | V |
[Tip]
- 如无特别说明, 所有配置每个服务器要保持一致
ES安装
1、软件包放置
- 下载解压elasticsearch7.10.2后, 解压到每台服务器的一个位置即可.
- 下载解压kibana7.10.2包后只放在hadoop300节点部署一个即可.,其他节点不用
如下hadoop300的放置, 其他集群服务器一样放置,除了kibana
[hadoop@hadoop300 app]$ pwd
/home/hadoop/app
[hadoop@hadoop300 app]$ ll
总用量 0
lrwxrwxrwx. 1 hadoop hadoop 51 1月 21 14:24 elasticsearch -> /home/hadoop/app/manager/es_mg/elasticsearch-7.10.2
lrwxrwxrwx. 1 hadoop hadoop 44 1月 13 23:24 jdk -> /home/hadoop/app/manager/jdk_mg/jdk1.8.0_212
drwxrwxr-x. 8 hadoop hadoop 101 1月 21 14:23 manager
lrwxrwxrwx. 1 hadoop hadoop 61 1月 21 19:57 kibana -> /home/hadoop/app/manager/kinana_mg/kibana-7.10.2-linux-x86_64
2、配置环境变量
编辑vim ~/.bash_profile
文件添加如下, 每台服务器都要配置
# ================= Elasticsearch ==============
export ES_HOME=/home/hadoop/app/elasticsearch
export PATH=$PATH:$ES_HOME/bin
3、IK分词器(可选)
1、先在${ES_HOME}/plugins
目录下创建一个目录叫ik
, 然后把下载的ik分词器解压后放到${ES_HOME}/plugins/ik
目录下即可 (每台服务器节点都要放
)
[hadoop@hadoop300 plugins]$ pwd
/home/hadoop/app/elasticsearch/plugins
[hadoop@hadoop300 plugins]$ mkdir ik
[hadoop@hadoop300 download]$ mv elasticsearch-analysis-ik-7.10.2.zip ~/app/elasticsearch/plugins/ik/
[hadoop@hadoop300 download]$ cd ~/app/elasticsearch/plugins/ik/
[hadoop@hadoop300 ik]$ ll
总用量 4400
-rw-rw-r--. 1 hadoop hadoop 4504440 1月 21 21:37 elasticsearch-analysis-ik-7.10.2.zip
[hadoop@hadoop300 ik]$ unzip elasticsearch-analysis-ik-7.10.2.zip
[hadoop@hadoop300 ik]$ ll
总用量 5832
-rw-r--r--. 1 hadoop hadoop 263965 5月 6 2018 commons-codec-1.9.jar
-rw-r--r--. 1 hadoop hadoop 61829 5月 6 2018 commons-logging-1.2.jar
drwxr-xr-x. 2 hadoop hadoop 4096 12月 25 2019 config
-rw-r--r--. 1 hadoop hadoop 54626 1月 18 10:56 elasticsearch-analysis-ik-7.10.2.jar
-rw-rw-r--. 1 hadoop hadoop 4504440 1月 21 21:37 elasticsearch-analysis-ik-7.10.2.zip
-rw-r--r--. 1 hadoop hadoop 736658 5月 6 2018 httpclient-4.5.2.jar
-rw-r--r--. 1 hadoop hadoop 326724 5月 6 2018 httpcore-4.4.4.jar
-rw-r--r--. 1 hadoop hadoop 1807 1月 18 10:56 plugin-descriptor.properties
-rw-r--r--. 1 hadoop hadoop 125 1月 18 10:56 plugin-security.policy
4、 修改ES集群配置
- 修改
${ES_HOME}/config/elasticsearch.yml
配置文件
hadoop300
节点的配置
# Elasticsearch集群名称
cluster.name: ES-CLUSTER
# 集群中该Elasticsearch节点的名称, 不可与其他节点相同
node.name: node-1
# 设置存放Elasticsearch索引数据的文件目录
path.data: /home/hadoop/app/elasticsearch/data
# 设置存放日志文件的文件目录
path.logs: /home/hadoop/app/elasticsearch/logs
# 该Elasticsearch节点绑定的IP地址或者主机名
network.host: hadoop300
# 配置Elasticsearch集群中所有节点绑定的IP地址或者主机名列表。
discovery.seed_hosts: ["hadoop300", "hadoop301", "hadoop302"]
# 配置哪些节点可以有资格被选为主节点。
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
hadoop301
节点的配置同上,除了下面两个属性
node.name: node-2
network.host: hadoop301
hadoop303
节点的配置同上,除了下面两个属性
node.name: node-3
network.host: hadoop302
5、Elasticsearch集群统一启动/停止脚本
[hadoop@hadoop300 shell]$ pwd
/home/hadoop/shell
[hadoop@hadoop300 shell]$ vim es.sh
[hadoop@hadoop300 shell]$ chmod ug+x es.sh
[hadoop@hadoop300 shell]$ ll
-rwxrwxr--. 1 hadoop hadoop 464 1月 14 17:50 es.sh
es.sh内容如下
[Tip]
- 因为配置了ES的环境变量到
~/.bash_profile
下所以可以直接使用elasticsearch
命令. 当然也可以写该脚本的绝对路径即可. - ssh远程执行命令默认不会加载这个
bash_profile
环境变量,所以手动source一下
# 集群列表
list=(hadoop300 hadoop301 hadoop302)
case $1 in
"start"){
for i in ${list[@]}
do
echo ---------- Elasticsearch[ $i ]启动 ------------
ssh $i "source ~/.bash_profile;elasticsearch -d -p pid"
done
};;
"stop"){
for i in ${list[@]}
do
echo ---------- Elasticsearch[ $i ]停止 ------------
ssh $i "source ~/.bash_profile;pkill -F ${ES_HOME}/pid"
done
};;
"status"){
for i in ${list[@]}
do
echo ---------- Elasticsearch[ $i ] 集群状态 ------------
ssh $i "curl http://$i:9200/_cat/health?ts=false"
done
};;
"list"){
echo ---------- Elasticsearch[ $i ] 集群列表 ------------
curl http://`hostname`:9200/_cat/allocation
};;
esac
然后将该脚本挂载到全局调用即可, 配置环境变量或者软连接挂载到 系统bin目录下
6、启动测试
启动ES
# 启动集群
[hadoop@hadoop300 ~]$ es.sh start
---------- Elasticsearch[ hadoop300 ]启动 ------------
---------- Elasticsearch[ hadoop301 ]启动 ------------
---------- Elasticsearch[ hadoop302 ]启动 ------------
[hadoop@hadoop300 ~]$ xcall jps
--------- hadoop300 ----------
9796 Elasticsearch
10324 Jps
--------- hadoop301 ----------
6162 Elasticsearch
6596 Jps
--------- hadoop302 ----------
5926 Elasticsearch
6361 Jps
#集群状态, green代表健康
[hadoop@hadoop300 app]$ es.sh status
---------- Elasticsearch[ hadoop300 ] 集群状态 ------------
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100 42 100 42 0 0 2930 0 --:--:-- --:--:-- --:--:-- 3000
---------- Elasticsearch[ hadoop301 ] 集群状态 ------------
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100 42 100 42 0 0 3495 0 --:--:-- --:--:-- --:--:-- 3818
---------- Elasticsearch[ hadoop302 ] 集群状态 ------------
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100 42 100 42 0 0 3209 0 --:--:-- --:--:-- --:--:-- 3230
[hadoop@hadoop300 ~]$ es.sh list
---------- Elasticsearch[ ] 集群列表 ------------
0 0b 4.5gb 21.1gb 25.7gb 17 hadoop300 192.168.13.115 node-1
0 0b 3.1gb 22.5gb 25.7gb 12 hadoop302 192.168.13.117 node-3
0 0b 3.1gb 22.5gb 25.7gb 12 hadoop301 192.168.13.112 node-2
浏览器访问 任意节点的9200端口查看ES信息
- 如访问
hadoop300:9200
Kibana安装
直接修改kibana.yml
配置文件即可
[hadoop@hadoop300 config]$ pwd
/home/hadoop/app/kibana/config
[hadoop@hadoop300 config]$ ll
总用量 12
-rw-r--r--. 1 hadoop hadoop 4926 1月 21 20:02 kibana.yml
-rw-r--r--. 1 hadoop hadoop 216 1月 13 10:07 node.options
kibana.yml 配置如下
# Kibana 访问地址
server.host: 0.0.0.0
# elasticsearch集群列表
elasticsearch.hosts: ["http://hadoop300:9200","http://hadoop301:9200","http://hadoop302:9200"]
然后 执行kibana
命令启动即可
[hadoop@hadoop300 bin]$ pwd
/home/hadoop/app/kibana/bin
[hadoop@hadoop300 bin]$ ll
总用量 12
-rwxr-xr-x. 1 hadoop hadoop 835 1月 13 10:07 kibana
-rwxr-xr-x. 1 hadoop hadoop 776 1月 13 10:07 kibana-keystore
-rwxr-xr-x. 1 hadoop hadoop 813 1月 13 10:07 kibana-plugin
[hadoop@hadoop300 bin]$ ./kibana
默认端口是5601, 浏览器访问
ES启动失败问题
ES启动对系统配置有一定要求
1、linux 文件句柄数过低问题[ file descriptors]
问题描述: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决: 修改linux 文件描述符大小设置
sudo vim /etc/security/limits.conf
修改如下:
* soft nofile 65536
* hard nofile 131072
查看修改后的文件句柄数
[hadoop@hadoop300 bin]$ ulimit -a | grep open
open files (-n) 65536
2、vm.max_map_count 过低问题
max_map_count表示限制一个进程可以拥有的VMA(虚拟内存区域)的数量
问题描述: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决: 修改/etc/sysctl.conf
文件
修改如下:
vm.max_map_count=262144
之后重启服务器,查看此时的大小
[hadoop@hadoop300 bin]$ sysctl vm.max_map_count
vm.max_map_count = 262144
打赏
如果觉得文章有用,你可鼓励下作者