安装Elasticsearch
一、必备环境_Jdk1.8(不赘述)
二、下载和配置目录
官网地址:https://www.elastic.co/cn/downloads/elasticsearch
Linux服务器上安装:
1、cd /usr/local/
2、mkdir Elasticsearch ; cd Elasticsearch
3、wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz
4、tar -xzvf elasticsearch-7.2.0-linux-x86_64.tar.gz
5、mv elasticsearch-7.2.0 note-1 (改个名字)
6、cp -r note-1 note-2 cp -r note-1 note-3 (复制2个节点,因为本地测试,所以我自己本地搭建了一个集群)
三、配置各种变量:
1、用户最大可用连接数配置,
解决问题:
1)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2)max number of threads [1024] for user [elasticsearch] is too low, increase to at least [4096]
vim /etc/security/limits.conf#增加以下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
vi /etc/sysctl.conf
#增加以下内容
vm.max_map_count=655360
sysctl -p
vi /etc/security/limits.d/90-nproc.conf
修改内容
* soft nproc 4096
root soft nproc unlimited
四、创建es专用用户
Elasticsearch不允许使用root用户启动,所以单独创建用户,并赋予相关权限。
#添加用户
useradd es
#添加密码
passwd es
#给予用户操作权限
chown -R es:es /usr/local/Elasticsearch/
#切换用户
su es
五、开始配置Elasticsearch
先配置note-1节点
cd /usr/local/Elasticsearch/note-1/config
1、先配置使用内存(因为是测试,所以先配置小点)修改jvm.options
-Xms512m
-Xmx512m
2、修改elasticsearch.yml 内容如下:
#指定集群的名称 cluster.name: es-cluter-test #节点名称 node.name: node-1 #是不是主节点 node.master: true node.attr.rack: r1 #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 本机的IP内网地址 network.host:172.18.61.242 #端口 http.port: 9001 #内部节点之间沟通端口 transport.tcp.port: 9301 # 开启安全防护(启用跨域访问) http.cors.enabled: true http.cors.allow-origin: "*" #时间放长,防止脑裂 discovery.zen.ping_timeout: 120s client.transport.ping_timeout: 60s http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type #配置有机会参与选举为master的节点 discovery.zen.ping.unicast.hosts: ["172.18.61.242:9300","172.18.61.242:9301","172.18.61.242:9302"] #elasticSearch服务器的数据目录和日志目录,可以自行新建后配置路径使elasticSearch服务启动后将运行数据和日志生成到指定目录下 path.data: /usr/local/Elasticsearch/note-1/data path.logs: /usr/local/Elasticsearch/note-1/logs #阿里云的Center6.x系统要配置,要不会报错 bootstrap.memory_lock: false bootstrap.system_call_filter: false
六、启动Elasticsearch
cd /usr/local/Elasticsearch/note-1
./bin/elasticsearch -d(-d是指后台启动)
tail -f logs/es-cluter-test.log
观察日志,有started就是启动成功了
七、集群配置
刚才我们复制了note-2和note-3。所以修改一下note-2和note-3的配置文件即可构成集群,配置如下:
note-2的配置:
#指定集群的名称
cluster.name: es-cluter-test
#节点名称
node.name: node-2
#是不是主节点
node.master: false
node.attr.rack: r1
#最大集群节点数
node.max_local_storage_nodes: 3
#网关地址
network.host: 172.18.61.242
#端口
http.port: 9002
#内部节点之间沟通端口
transport.tcp.port: 9301
# 开启安全防护(启用跨域访问)
http.cors.enabled: true
http.cors.allow-origin: "*"
#时间放长,防止脑裂
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
#配置有机会参与选举为master的节点
discovery.zen.ping.unicast.hosts: ["172.18.61.242:9300","172.18.61.242:9301","172.18.61.242:9302"]
#elasticSearch服务器的数据目录和日志目录,可以自行新建后配置路径使elasticSearch服务启动后将运行数据和日志生成到指定目录下
path.data: /usr/local/Elasticsearch/note-2/data
path.logs: /usr/local/Elasticsearch/note-2/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
note-3的配置
#指定集群的名称
cluster.name: es-cluter-test
#节点名称
node.name: node-3
#是不是主节点
node.master: false
node.attr.rack: r1
#最大集群节点数
node.max_local_storage_nodes: 3
#网关地址
network.host: 172.18.61.242
#端口
http.port: 9003
#内部节点之间沟通端口
transport.tcp.port: 9302
# 开启安全防护(启用跨域访问)
http.cors.enabled: true
http.cors.allow-origin: "*"
#时间放长,防止脑裂
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
#配置有机会参与选举为master的节点
discovery.zen.ping.unicast.hosts: ["172.18.61.242:9300","172.18.61.242:9301","172.18.61.242:9302"]
#elasticSearch服务器的数据目录和日志目录,可以自行新建后配置路径使elasticSearch服务启动后将运行数据和日志生成到指定目录下
path.data: /usr/local/Elasticsearch/note-3/data
path.logs: /usr/local/Elasticsearch/note-3/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
依次启动note-2和note-3 就可以了,然后就构成了集群。
在浏览器输入一下命令来看下,total:3 代表有3个节点,集群构成了。
http://172.18.61.242:9002/_nodes/stats?pretty
八、Elasticsearch-head安装
1、下载Elasticsearch-head
cd /usr/local/Elasticsearch
mkdir plugins
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
2、安装node,使用head 插件,需要node.js的支持,所以先安装node.js
wget https://npm.taobao.org/mirrors/node/latest-v9.x/node-v9.0.0-linux-x64.tar.gz
tar -zxvf tar -zxvf node-v9.0.0-linux-x64.tar.gz
#配置环境变量
vim /etc/profile
#添加
export NODE_HOME=/usr/local/node-v9.0.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin/
export NODE_PATH=$NODE_HOME/lib/node_modul
source /etc/profile
3、进入plugins,启动安装
cd /usr/local/Elasticsearch/plugins/elasticsearch-head-master
npm install
#有点慢,等待最终结束即可
4、启动Elasticsearch-head
#在后台启动
yum provides */nohup
nohup npm start &
5、启动后,浏览器输入http://172.18.61.242:9100/
九、总结:
1、不要只看书,要自己动手实验安装,因为书上的一句话,你要折腾一整天
2、安装过程中总会有各种各样的坑,耐心的寻找解决方案。
3、安装的过程中会让你更加的熟练和理解
十、参考文档:
https://www.cnblogs.com/youxiu326/p/10540774.html
https://my.oschina.net/shxjinchao/blog/2878040
https://www.cnblogs.com/cnsdhzzl/p/9402419.html
https://blog.csdn.net/sinat_30026065/article/details/83150243