Description
- Dépend de l'environnement JDK
- Basé sur elasticsearch7.10.2, kibana7.10.2, version de tokenizer ik
- Téléchargement de Elasticsearch7.10.2
- Téléchargement de Kibana7.10.2
- téléchargement de tokenizer ik
Planification de cluster
hadoop300 | Hadoop301 | Hadoop302 | |
---|---|---|---|
elasticsearch | V | V | V |
Kibana | V |
[Tip]
- Sauf indication contraire, toutes les configurations de chaque serveur doivent être cohérentes
Installation ES
1. Placement de progiciels
- Après avoir téléchargé et décompressé elasticsearch7.10.2, décompressez-le dans un emplacement sur chaque serveur.
- Après avoir téléchargé et décompressé le package kibana7.10.2, n'en déployez qu'un sur le nœud hadoop300. Les autres nœuds n'ont pas besoin de
Placez le hadoop300 comme suit, placez-le comme les autres serveurs de cluster, sauf pour 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. Configurer les variables d'environnement
Modifiez le vim ~/.bash_profile
fichier à ajouter comme suit, chaque serveur doit être configuré
# ================= Elasticsearch ==============
export ES_HOME=/home/hadoop/app/elasticsearch
export PATH=$PATH:$ES_HOME/bin
3. Tokenizer IK (facultatif)
1. ${ES_HOME}/plugins
Créez d' abord un répertoire appelé sous le répertoire ik
, puis décompressez le tokenizer ik téléchargé et placez-le ${ES_HOME}/plugins/ik
sous le répertoire ( 每台服务器节点都要放
)
[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. Modifiez la configuration du cluster ES
- Modifier le
${ES_HOME}/config/elasticsearch.yml
fichier de configuration
hadoop300
Configuration des nœuds
# 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
La configuration du nœud est la même que ci-dessus, à l'exception des deux attributs suivants
node.name: node-2
network.host: hadoop301
hadoop303
La configuration du nœud est la même que ci-dessus, à l'exception des deux attributs suivants
node.name: node-3
network.host: hadoop302
5. Script de démarrage / arrêt unifié pour le cluster 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
Le contenu de es.sh est le suivant
[Tip]
- Comme les variables d'environnement d'ES sont configurées
~/.bash_profile
sous, vous pouvez utiliser laelasticsearch
commande directement . Bien sûr, vous pouvez également écrire le chemin absolu du script. - La commande d'exécution à distance ssh ne chargera pas cette
bash_profile
variable d'environnement par défaut , donc sourcez-la manuellement
# 集群列表
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
Montez ensuite le script sur l'appel global, configurez les variables d'environnement ou montez la connexion logicielle dans le répertoire bin système
6. Démarrez le test
启动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
Accès par navigateur au port 9200 de n'importe quel nœud pour afficher les informations ES
- Tels que la visite
hadoop300:9200
Installation de Kibana
Modifiez simplement le kibana.yml
fichier de configuration directement
[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"]
Puis exécutez la kibana
commande pour démarrer
[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
Le port par défaut est 5601, accès navigateur
Problème d'échec de démarrage ES
ES启动对系统配置有一定要求
1. Le nombre de descripteurs de fichiers Linux est trop faible [descripteurs de fichiers]
问题 描述: le nombre maximal de descripteurs de fichier [4096] pour le processus elasticsearch est trop faible, augmentez à au moins [65535]
Solution: modifiez le paramètre de taille du descripteur de fichier Linux
sudo vim /etc/security/limits.conf
Modifiez comme suit:
* soft nofile 65536
* hard nofile 131072
Afficher le nombre de descripteurs de fichiers après modification
[hadoop@hadoop300 bin]$ ulimit -a | grep open
open files (-n) 65536
2. vm.max_map_count est trop faible
max_map_count表示限制一个进程可以拥有的VMA(虚拟内存区域)的数量
问题 描述: le nombre maximal de zones de mémoire virtuelle vm.max_map_count [65530] est trop faible, augmentez à au moins [262144]
Solution: modifiez le /etc/sysctl.conf
fichier
Modifiez comme suit:
vm.max_map_count=262144
Ensuite, redémarrez le serveur et vérifiez la taille à ce moment
[hadoop@hadoop300 bin]$ sysctl vm.max_map_count
vm.max_map_count = 262144