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、集群规划+集群网络配置

环境版本
CentOS7.5
Java1.8
ElasticSearch6.6
Kibana6.6
节点hadoop100hadoop101hadoop102
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_lockMake 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分发

rsync.py $ES_HOME

分发后,分别修改每个节点的elasticsearch.ymlnode.namenetwork.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.hosthadoop100指定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ɑːstn. 单一传播
swapswɑːpv. 交换;n. 交换

以上是关于ElasticSearch集群部署的主要内容,如果未能解决你的问题,请参考以下文章

谈一谈Elasticsearch的集群部署

谈一谈Elasticsearch的集群部署

基于Kubernetes集群部署Elasticsearch集群

elasticsearch 集群部署

CentOS7下Elasticsearch集群部署记录

ElasticSearch集群部署