ElasticSearch集群部署
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch集群部署相关的知识,希望对你有一定的参考价值。
文章目录
预备知识
1、检索
以检索海南椰子
为例:
层级查找方式:食品
=>水果
=>椰子
=>海南椰子
关键词方式:输入关键词海南椰子
2、如果用mysql来做关键词检索
SELECT * FROM goods WHERE name LIKE '%香蕉%';
即使对name
创建索引,该查询依然是全表扫描(可以在开头加EXPLAIN
来查看)
也就是说,索引失效了;关系型数据库不擅长干这事
3、倒排索引
https://blog.csdn.net/Yellow_python/article/details/88558424
ELK简介
- ELK=ElasticSearch+Logstash+Kibana
Elasticsearch:一个分布式、RESTful 风格的搜索和数据分析引擎
Logstash:日志采集工具
Kibana:为Logstash和ElasticSearch提供Web界面
ElasticSearch集群部署
01、集群规划+集群网络配置
环境 | 版本 |
---|---|
CentOS | 7.5 |
Java | 1.8 |
ElasticSearch | 6.6 |
Kibana | 6.6 |
节点 | hadoop100 | hadoop101 | hadoop102 |
---|---|---|---|
master | * | - | - |
https://yellow520.blog.csdn.net/article/details/113073636
02、CentOS7创建新用户+免密登录(可选)
用户为root
才需要执行此步,下面创建名为yellow
的用户:
https://yellow520.blog.csdn.net/article/details/115495027
集群之间各用户免密登录:
https://yellow520.blog.csdn.net/article/details/110143502
03、安装JDK
https://yellow520.blog.csdn.net/article/details/110425351
04、环境变量(可选)
https://yellow520.blog.csdn.net/article/details/112692486
05、ES的下载、上传、解压、修改户主
ES下载地址:
https://download.csdn.net/download/Yellow_python/21495315
tar -zxvf elasticsearch-6.6.0.tar.gz -C /opt/
cd /opt
mv elasticsearch-6.6.0 elasticsearch
chown -R yellow:yellow $ES_HOME
ls -l
06、创建数据存放目录
mkdir $ES_HOME/data
07、配置yml
vim $ES_HOME/config/elasticsearch.yml
#-----------------------Cluster-----------------------
cluster.name: my-application
#-----------------------Node-----------------------
node.name: node-100
#-----------------------Paths-----------------------
path.data: /opt/elasticsearch/data
#-----------------------Memory-----------------------
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#-----------------------Network-----------------------
network.host: hadoop100
#-----------------------Discovery-----------------------
discovery.zen.ping.unicast.hosts: ["hadoop100"]
参数 | 说明 | 备注 |
---|---|---|
cluster.name | 集群名称 | 同一集群的各节点的集群名称要相同 |
node.name | 节点名称 | 同一集群的各节点的节点名称要不同 |
path.data | 数据存放目录 | |
bootstrap.memory_lock | Make sure that the heap size is set to about half the memory available on the system and that the owner of the process is allowed to use this limit. | Elasticsearch performs poorly when the system is swapping the memory. |
network.host | 绑定主机名 | |
discovery.zen.ping.unicast.hosts | 节点扩展 | 当新节点启动时,会通过该主机列表来加入集群 |
discovery.zen.ping.unicast.hosts 值 | 说明 |
---|---|
["hadoop100","hadoop101","hadoop102"] | 新节点hadoop103 启动后,会ping该主机列表来发现并加入集群 |
["hadoop100"] | 集群启动时,必须先启动hadoop100 |
08、配置JVM选项(可选)
虚拟机内存不够才需要改
vim $ES_HOME/config/jvm.options
-Xms256m
-Xmx256m
09、修改Linux配置
在每个节点,使用root
用户编辑
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
在每个节点,使用root
用户编辑
sudo vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
10、重启Linux
每个节点进行重启
reboot
11、分发ES
rsync.py $ES_HOME
分发后,分别修改每个节点的elasticsearch.yml
的node.name
和network.host
12、启动ES
每个节点都执行下面命令
$ES_HOME/bin/elasticsearch
13、查看ES
浏览器打开
hadoop100:9200
或在Linux输入命令
curl hadoop100:9200
查看集群所有节点详细信息
curl hadoop100:9200/_cat/nodes?v
Kibana安装
1、解压
放到ES里(放别的地方也可)
tar -zxvf kibana-6.6.0-linux-x86_64.tar.gz -C $ES_HOME/
cd $ES_HOME
mv kibana-6.6.0-linux-x86_64 kibana
ls -l
2、修改配置
vim $ES_HOME/kibana/config/kibana.yml
修改参数 | 参数值 | 备注 |
---|---|---|
server.host | hadoop100 | 指定Kibana服务器绑定的地址,可以是IP地址或主机名 |
elasticsearch.hosts | ["http://hadoop100:9200"] | 指定Kibana查询ES时的URL列表 |
3、启动Kibana
$ES_HOME/kibana/bin/kibana
查看浏览器
hadoop100:5601
集群启停脚本
可选,前提是配置好集群间免密登录
touch ~/bin/es.sh
chmod 777 ~/bin/es.sh
vim ~/bin/es.sh
#!/bin/bash
cmd='echo Usage: es.sh start/stop'
if(($#!=1))
then
$cmd
exit
fi
# ElasticSearch
case $1 in
"start") {
cmd="nohup $ES_HOME/bin/elasticsearch > /dev/null 2>&1 &"
};;
"stop") {
cmd="ps -ef | grep $ES_HOME | grep -v grep | awk '{print \\$2}' | xargs kill"
};;
*) {
$cmd
exit
};;
esac
for h in hadoop100 hadoop101 hadoop102
do
ssh $h $cmd
sleep 9s
done
# Kibana
kibana=$ES_HOME/kibana/bin/kibana
case $1 in
"start") {
nohup $kibana > /dev/null 2>&1 &
};;
esac
jps.py
效果
Appendix
en | 🔉 | cn |
---|---|---|
unicast | 'juːnɪkɑːst | n. 单一传播 |
swap | swɑːp | v. 交换;n. 交换 |
以上是关于ElasticSearch集群部署的主要内容,如果未能解决你的问题,请参考以下文章