上传zip包到linux安装大家都会,我这里就不多说了;
elasticsearch简称es服务,es服务安装需要jdk环境,需要jdk1.8及以上,我这里已经装好jdk;
我这里使用的是离线安装,上传的rpm源安装,把rpm源上传到服务器,使用rpm -ivh rpm文件名称,如下图:
安装顺序如下:
先安装 jna-xx.rpm
再安装 elasticsearch-xx.rpm
最后安装 es-config -xx
大部分操作系统rpm安装好后,目录结构如下图所示:
type | path |
---|---|
home | /usr/share/elasticsearch/ |
bin | /usr/share/elasticsearch/bin/ |
config(file) | /etc/elasticsearch/ |
config(env) | /etc/sysconfig/elasticsearch |
data | /var/lib/elasticsearch/ |
logs | /var/log/elasticsearch/ |
plugins | /usr/share/elasticsearch/plugins |
使用rpm安装的es服务,已自动创建 用户:elasticsearch 用户组:elasticsearch 我们就不用重新创建用户了!
目录权限样式如下图
使用zip方式安装需要创建es用户,因为es服务不能使用root用户启动,这是出于系统安全考虑设置的条件。
由于es服务可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行Elasticsearch,如下图所示,创建es用户组和es用户并授权解压后的文件夹:
# 集群名称 所有节点要相同
cluster.name: my-elasticsearch
# 本节点名称,单机版可不设置默认即可
node.name: node-130
------------------NetWork----------------------
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
network.bind_host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
network.publish_host: 0.0.0.0
# 这个参数是用来同时设置bind_host和publish_host上面两个参数,默认默认为0.0.0.0
network.host: 0.0.0.0
# 对外访问的http端口,默认9200
http.port: 9200
# head插件设置,单机版可不设置默认即可
http.cors.enabled: true
#设置可以访问的ip 这里全部设置通过,单机版可不设置默认即可
http.cors.allow-origin: "*"
#作为master节点,单机版可不设置默认即可
node.master: true
#是否存储数据,单机版可不设置默认即可
node.data: false
#设置节点 访问的地址 设置master所在机器的ip,单机版可不设置默认即可
discovery.zen.ping.unicast.hosts: ["192.168.80.130"]
# 集群名称 所有节点要相同
cluster.name: my-elasticsearch
# 本节点名称
node.name: node-131
------------------NetWork----------------------
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
network.bind_host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
network.publish_host: 0.0.0.0
# 这个参数是用来同时设置bind_host和publish_host上面两个参数,默认默认为0.0.0.0
network.host: 0.0.0.0
# 对外访问的http端口,默认9200
http.port: 9200
# head插件设置
http.cors.enabled: true
#设置可以访问的ip 这里全部设置通过
http.cors.allow-origin: "*"
#作为master节点
node.master: false
#是否存储数据
node.data: true
#设置节点 访问的地址 设置master所在机器的ip
discovery.zen.ping.unicast.hosts: ["192.168.80.130"]
# 集群名称 所有节点要相同
cluster.name: my-elasticsearch
# 本节点名称
node.name: node-132
------------------NetWork----------------------
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
network.bind_host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
network.publish_host: 0.0.0.0
# 这个参数是用来同时设置bind_host和publish_host上面两个参数,默认默认为0.0.0.0
network.host: 0.0.0.0
# 对外访问的http端口,默认9200
http.port: 9200
# head插件设置
http.cors.enabled: true
#设置可以访问的ip 这里全部设置通过
http.cors.allow-origin: "*"
#作为master节点
node.master: false
#是否存储数据
node.data: true
#设置节点 访问的地址 设置master所在机器的ip
discovery.zen.ping.unicast.hosts: ["192.168.80.130"]
进入master、node服务器进行相应的启动与停止
1.使用rpm安装的启动方式:
#使用root用户设置elasticsearch开启自启
systemctl enable elasticsearch.service
#使用root用户启动elasticsearch
systemctl start elasticsearch.service
#使用root用户查看启动状态、查看启动进程
systemctl status elasticsearch.service
#使用root用户停止服务
systemctl stop elasticsearch.service
ps -ef|grep elasticsearch
# 或者查看es服务启动日志文件
cd /usr/share/elasticsearch/logs
tail -f elasticsearch.log
2.使用zip压缩包安装的启动方式:
#切换为zip解压后创建的es用户启动
su es
#使用es用户,进入解压后的目录bin文件夹,使用./或者sh后台启动es服务如下:-d代表后台启动
cd /usr/local/elasticsearch-5.6.8/bin
./elasticsearch -d
# 查看es服务进程
ps -ef|grep elasticsearch
# 停止es服务进程
kill -9 进程号
# 或者查看es服务日志文件
cd /usr/local/elasticsearch-5.6.8/logs
tail -f elasticsearch.log
Elasticsearch集群中有的节点一般有三种角色:master node、data node和client node。
定义发现的节点:
注意,分布式系统整个集群节点个数N要为奇数个!!!
discovery.zen.ping.unicast.hosts:["192.168.80.130:9300", "192.168.80.131:9300", "192.168.80.132:9300"]
是否参与master选举和是否存储数据
#node.master: true
#node.data: true
分片数和副本数
#index.number_of_shards: 5
#index.number_of_replicas: 1
elasticsearch集群一旦建立起来以后,会选举出一个master,其他都为slave节点。
但是具体操作的时候,每个节点都提供写和读的操作。就是说,你不论往哪个节点中做写操作,这个数据也会分配到集群上的所有节点中。
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方案
# 编辑limits.conf文件,添加以下两行即可解决
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
max number of threads [3818] for user [admin] is too low, increase to at least [4096]
解决方案
# 编辑limits.conf文件,添加以下两行即可解决
vim /etc/security/limits.conf
* soft nproc 4096
* hard nproc 4096
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案
# 编辑sysctl.conf文件,添加以下一行即可解决,注意,这里配置完之后需要重启一下linux,否则不一定起效果
vim /etc/sysctl.conf
vm.max_map_count=262144