-
筹备工作
-
VirtualBox 虚拟机增加
- 新建虚拟机
- 内存大小
- 虚构硬盘
- 虚构硬盘文件类型
- 存储在物理硬盘上
- 文件地位和大小
- 载入镜像文件
- 网卡配置
-
Centos 7.8 装置
- 抉择语言
- 磁盘分区
- 手动分区
- 网络配置
- 设置 Root 明码
-
docker 装置 && Elasticsearch 镜像
- docker 装置
- docker 查看版本
- 拉取镜像
-
数据目录
- config && Log && Data
- 文件权限
- vm.max_map_count 调整
- 参数阐明
-
配置文件 && 运行
- Es0
- Es1
- Es2
- 启动 ElasticSearch 集群容器
- 查看集群状态
-
Elasticsearch-Head
- 装置
- Node.js
- 查看集群状态
- 模仿节点下线
-
ik 插件装置
- 下载地址
- 复制
- 获取容器 ID
- 复制 ik
- docker 启动 or 敞开快捷命令
-
Elasticsearch 集群连贯
- PHP
- JAVA
-
Elasticsearch 节点分类
- 主节点
- 数据节点
- 客户节点
- 援用
-
筹备工作
VirtualBox 虚拟机增加
1、新建虚拟机
2、内存大小
3、虚构硬盘
4、虚构硬盘文件类型
5、存储在物理硬盘上
6、文件地位和大小
7、载入镜像文件
8、网卡配置
Centos 7.8 装置
1、抉择语言
2、磁盘分区
3、手动分区
swap 分区,个别物理内存的 2 倍
boot 分区, centos 6.x 100M 7.X 300M
/ 根分区,调配剩下来所有存储空间
4、网络配置
5、设置 Root 明码
docker 装置 && Elasticsearch 镜像
1、docker 装置
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2、docker 查看版本
docker version
3、拉取镜像
docker pull elasticsearch:5.4.3
数据目录
1、config && Log && Data
mkdir -p /usr/local/elasticsearch/{config,logs/{node0,node1,node2},data/{node0,node1,node2}}
touch es0.yml es1.yml es2.yml
tree elasticsearch
elasticsearch/
├── config
│ ├── es0.yml
│ ├── es1.yml
│ └── es2.yml
├── data
│ ├── node0
│ ├── node1
│ └── node2
└── logs
├── node0
├── node1
└── node2
2、文件权限
chmod -R 777 /usr/local/elasticsearch/data/*
chmod -R 777 /usr/local/elasticsearch/logs/*
chmod -R 777 /usr/local/elasticsearch/config/*
4、vm.max_map_count 调整
echo vm.max_map_count=262144 >> /etc/sysctl.conf
sysctl -p
参数阐明
集群名称
cluster.name: elasticsearch-cluster
节点名
node.name: es-nodex
主节点
node.master
数据节点
node.data
外网拜访配置
network.bind_host 设置成 0.0.0.0 任何主机都能够拜访
本机 ip
network.publish_host
设置对外服务的 http 端口,默认为 9200
http.port
设置节点间交互的 tcp 端口,默认是 9300
transport.tcp.port
跨域拜访
http.cors.enabled: true
http.cors.allow-origin: “*”
设置集群中 master 节点的初始列表,能够通过这些节点来主动发现新退出集群的节点
discovery.zen.ping.unicast.hosts
该属性定义的是为了造成一个集群,有主节点资格并相互连贯的节点的最小数目。
discovery.zen.minimum_master_nodes
//quorum 的算法 =master 候选节点数量 /2+1
JVM 内存大小配置
ES_JAVA_OPTS=-Xms512m -Xmx512m
配置 && 运行
Es0
cluster.name: elasticsearch-cluster
node.name: es-node1
node.master: true
node.data: true
network.bind_host: 0.0.0.0
network.publish_host: 192.168.56.101
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]
discovery.zen.minimum_master_nodes: 2
Es1
cluster.name: elasticsearch-cluster
node.name: es-node2
node.master: true
node.data: true
network.bind_host: 0.0.0.0
network.publish_host: 192.168.56.101
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]
discovery.zen.minimum_master_nodes: 2
Es2
cluster.name: elasticsearch-cluster
node.name: es-node3
node.master: true
node.data: true
network.bind_host: 0.0.0.0
network.publish_host: 192.168.56.101
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]
discovery.zen.minimum_master_nodes: 2
启动 ElasticSearch 集群容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /usr/local/elasticsearch/config/es0.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/data/node0:/usr/share/elasticsearch/data --name ES01 elasticsearch:5.4.3
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /usr/local/elasticsearch/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/data/node1:/usr/share/elasticsearch/data --name ES02 elasticsearch:5.4.3
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /usr/local/elasticsearch/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/data/node2:/usr/share/elasticsearch/data --name ES03 elasticsearch:5.4.3
查看集群状态
http://192.168.56.102:9200/_cat/nodes?pretty
<font color=red> 谬误:</font>
{"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":null}],"type":"master_not_discovered_exception","reason":null},"status":503}
<font color=blue> 起因:外部 Tcp 通信端口没有凋谢 </font>
firewall-cmd --add-port=9300/tcp
firewall-cmd --add-port=9301/tcp
firewall-cmd --add-port=9302/tcp
Elasticsearch-Head
elasticsearch-head 装置
git clone git://github.com/mobz/elasticsearch-head.git
Node.js 装置
wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
tar xvf node-v12.18.3-linux-x64.tar.xz
vim /etc/profile
export NODE_HOME=/usr/local/node-v12.18.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
source /etc/profile
elasticsearch-head 运行
cd /usr/local/elastic-head
npm install
npm run start
firewall-cmd --add-port=9100/tcp
查看集群状态
模仿节点下线
PUT _cluster/settings
{
"transient" : {"cluster.routing.allocation.exclude._name" : "es-node2"}
}
复原节点
PUT _cluster/settings
{
"transient" : {"cluster.routing.allocation.exclude._name" : ""}
}
ik 插件
下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.4.3/elasticsearch-analysis-ik-5.4.3.zip
复制
docker cp /usr/local/src/elasticsearch-analysis-ik-5.4.3.zip {容器 ID}:/usr/share/elasticsearch/plugins
获取容器 ID
docker ps
docker ps -a -q
复制 ik
docker exec -it {容器 ID} /bin/bash
cd plugins
mkdir ik
mv elasticsearch-analysis-ik-5.4.3.zip ik
unzip elasticsearch-analysis-ik-5.4.3.zip
rm -rf elasticsearch-analysis-ik-5.4.3.zip
docker 启动 or 敞开快捷命令
docker start $(docker ps -a -q)
docker stop $(docker ps -a -q)
ELasticsearch 集群连贯
PHP
use Elasticsearch\ClientBuilder;
$hosts => [
'192.168.56.102:9200',
'192.168.56.102:9201',
'192.168.56.102:9202',
];
$client = ClientBuilder::create()
->setHosts($hosts)
->setSelector('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
->allowBadJSONSerialization()
->build();
JAVA
Transport Client
RESTful Client
Elasticsearch 节点
主节点
node.master: true
node.data: true
数据节点
node.master: false
node.data: true
客户节点
node.master: false
node.data: false
援用
https://segmentfault.com/a/11…
https://blog.csdn.net/belongh…