文章目录
一.环境规划
二.环境搭建
1.创建用户及目录
2.修改配置文件
三.启动和停止服务脚本
四.使用elasticsearch-head 插件查看集群状态
1.安装nodejs
2.拉取elasticsearch-head.git 库
五.启动错误处理:
一.环境规划
服务器IP 服务端口 群服务端口 是否可以为主节点 是否可以为数据存储节点
192.168.100.97 9201 9301 True True
192.168.100.97 9202 9302 True True
192.168.100.97 9203 9303 True True
二.环境搭建
1.创建用户及目录
# 创建用户
useradd -d /home/elasticsearch es
# 切换用户
su - es
# 下载elasticsearch6.0.1版本并解压缩
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz
tar -zxvf elasticsearch-6.0.1.tar.gz
# 复制三份,命名为elasticsearch-1、elasticsearch-2、elasticsearch-3、
cp -rp elasticsearch-6.0.1 elasticsearch-1
cp -rp elasticsearch-6.0.1 elasticsearch-2
cp -rp elasticsearch-6.0.1 elasticsearch-3
# 删除多余的包和文件
rm -rf elasticsearch-6.0.1.tar.gz
rm -rf elasticsearch-6.0.1
# 创建data和log目录分别用于放置数据和日志
mkdir -p /home/elasticsearch/data/node{1,2,3}
mkdir -p /home/elasticsearch/log/node{1,2,3}
# 创建pidfile存放的路径
mkdir -p /home/elasticsearch/pidfile/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2.修改配置文件
# 配置文件的修改以node1的为例,另外两个只需要修改相应的路径和端口即可。
vim /home/elasticsearch/elasticsearch-1/config/elasticsearch.yml
1
2
#集群的名称
cluster.name: hao-es
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /home/elasticsearch/data/node1
#日志文件的存储路径
path.logs: /home/elasticsearch/log/node1
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
#绑定的ip地址
network.host: 192.168.100.97
#设置对外服务的http端口,默认为9200
http.port: 9201
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9301
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305以尝试连接到运行在同一台服务器上的其他节点。
#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:port或host
#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。
#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]
discovery.zen.ping.unicast.hosts: ["192.168.100.97:9301", "192.168.100.97:9302", "192.168.100.97:9303"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 配置文件的修改以node1的为例,另外两个节点一致。
vim /home/elasticsearch/elasticsearch-1/config/jvm.options
1
2
#默认是1g官方建议对jvm进行一些修改,不然很容易出现OOM,参考官网改参数配置最好不要超过内存的50%
# 我的服务器是虚拟机所以设置的堆栈内存为256m
-Xms256m
-Xmx256m
1
2
3
4
三.启动和停止服务脚本
vim start.sh
#内容如下,其中-d表示后台运行,-p指定进城pidfile文件的存放路径:
/home/elasticsearch/elasticsearch-1/bin/elasticsearch -d -p /home/elasticsearch/pidfile/node1
/home/elasticsearch/elasticsearch-2/bin/elasticsearch -d -p /home/elasticsearch/pidfile/node2
/home/elasticsearch/elasticsearch-3/bin/elasticsearch -d -p /home/elasticsearch/pidfile/node3
vim stop.sh
# 内容如下:
ps aux | grep elasticsearch | grep -v grep | awk '{print $2}' | xargs kill -9
# 授权sh脚本
chmod 755 start.sh stop.sh
# 启动
./start.sh
# 查看日志,服务启动是否报错
tail -f hao-es.log
# 调用api查看节点状态
curl -XGET 'http://192.168.100.97:9201/_cat/nodes?pretty'
# 结果如下,其中* 表示该节点为主节点:
192.168.100.97 27 84 0 0.01 0.02 0.05 mdi - node-3
192.168.100.97 46 84 0 0.01 0.02 0.05 mdi * node-2
192.168.100.97 38 84 0 0.01 0.02 0.05 mdi - node-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
四.使用elasticsearch-head 插件查看集群状态
该插件使用了nodejs,因此需要安装nodejs服务。
1.安装nodejs
mkdir -p /home/nodejs
cd /home/nodejs
wget https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.xz
tar -xvf node-v10.15.1-linux-x64.tar.xz
cd node-v10.15.1-linux-x64/bin
# 查看二进制文件是否ok
./node -v
# 将nodejs添加到环境变量
vim /etc/profile
export NODEJS_HOME=/home/nodejs/node-v10.15.1-linux-x64
export PATH=$NODEJS_HOME/bin:$PATH
source /etc/profile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2.拉取elasticsearch-head.git 库
cd /home/elasticsearch
# 如果没有git,请自行安装~
git clone https://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head/
npm install
# 如果遇到phantomjs-prebuilt@2.1.16报错,请忽略掉
npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
# 启动服务默认的地址是localhost:9100
npm run start
1
2
3
4
5
6
7
8
9
10
11
五.启动错误处理:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
1.max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc[表情]curity[表情]mits.conf文件,添加或修改如下行:
* hard nofile 65536
* soft nofile 65536
1
2
2.max virtual memory areas vm.max…
修改 /etc/sysctl.conf 文件,添加如下行:
vm.max_map_count=262144
1
参考:https://blog.csdn.net/qq_34021712/article/details/79330028
————————————————
版权声明:本文为CSDN博主「爱吃西瓜大人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/paopaohll/article/details/86700464