Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
以下简称Elasticsearch为ES。
高可用实现:
ES自带了类似zookeeper的master选举功能,ES集群中配置3个或奇数(大于3)个master节点(具有master权限),当master出现故障或宕掉,ES会选举其它有master权限的ES节点提升为master节点。
负载均衡:
设置两到三个client节点,保证client节点高可用。Client节点主要用来转发请求,做到负载均衡的作用,同时做查询的二次汇聚,减小data节点的性能消耗。
第2章 安装ES-5.1.1
官网下载5.1.1:https://www.elastic.co/downloads
Type |
Hostname |
Ip |
Number |
es-master |
es-masterN |
|
3 |
es-data |
es-dataM-N |
|
12 |
es-client |
Es-clientN |
|
2 |
kibana |
kibana |
|
1 |
es-data节点安装在256G 内存服务器上,即每台服务器配置6个实例,每个分配内存21G。命名:es-data1-1 ~ es-data1-6 --- es-data9-1 ~ es-data12-6
设置hostname、关闭防火墙等不在此叙述。
注意:为快速安装,先配置一个es-master实例,并测试正常启动。
1. 确认jdk版本
Elasticsearch-5.1.1依赖于jdk-1.8,请确保需要安装的机器jdk版本不低于1.8.0_73
查看:java -version
2. 新建es用户
ES启动必须使用普通用户,约定使用es用户
3. 新建路径
新建es数据存放路径以及日志存放路径,并更改用户权限为es
es-master机器:
# mkdir -p /hadoop/log/elastic5.1.1
# mkdir -p /data/data1/elastic
# chown -R es:es /hadoop/log/elastic5.1.1
# chown -R es:es /data/data1/elastic
es-data机器:
# mkdir -p /hadoop/log/elastic5.1.1/N
# mkdir -p /data/dataM/elastic
# chown -R es:es /hadoop/log/elastic5.1.1/N
# chown -R es:es /data/dataM/elastic
注:上述命令中N表示数字1到6,M表示数字1到12
4. 修改系统参数
l /etc/security/limits.conf中配置(保证不低于以下值)
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
es soft memlock unlimited
es hard memlock unlimited
l /etc/security/limits.d/20-nproc.conf 中配置 * soft nproc 2048
l /etc/sysctl.conf中配置Vm.max_map_count=655360。
执行 sysctl -p
5. 安装ES
在/hadoop下解压ES的tar包重命名为elastic5.1.1,更改用户权限为es,并保证之后的ES_HOME目录下所有文件用户权限皆为es
1. 安装xpack
官网上下载zip包: x-pa ck-5.1.1.zip,到每个节点$ES_HOME,执行命令:
$ cd $ES_HOME
$ ./bin/elasticsearch-plugin install file:///data/x-pack-5.1.1.zip
到$KIBANA_HOME(为kibana的主目录,下同),执行命令
bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip
2. 安装elasticsearch-sql
下载地址:https://github.com/NLPchina/elasticsearch-sql/releases/elasticsearch-sql-5.1.1.0.zip
$ cd $ES_HOME
$ ./bin/elasticsearch-plugin install file:///data/elasticsearch-sql-5.1.1.0.zip
修改ES实例的jvm,在ES_HOME/config目录下,修改jvm.options
-Xms21g
-Xmx21g
主要修改配置文件config/elasticsearch.yml,严格按照原来的格式修改,否则不识别:
1. es-master节点的配置如下: (.yml的文件冒号后面必须加空格)
cluster.name: opes
node.name:es-masterZ #实例名,Z代表数字1,2,3
network.host:10.33.208.50 # ip/hostname
node.master:true #设置充当master节点,默认为true
node.data:false #设置不充当data节点,默认为true
http.port:9200 #配置http端口,多个实例时该值递增配置:9201…
transport.tcp.port
: 9300#配置tcp连接端口,多个实例递增配置
path.data:/data/data1/elastic
path.logs:/hadoop/log/elastic5.1.1
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不启用x-pack安全机制
2. es-data节点配置
复制es-master的配置,修改蓝色标记的部分即可
node.name:es-dataM-N #此处的M-N表示第M个数据节点的第N个实例
network.host:10.33.208.35
node.master:false
node.data:true
path.data:/data/dataA/elastic, /data/dataB/elastic #数字A=2*N-1 B=2*N
path.logs:/hadoop/log/elastic5.1.1/N
http.port:9200 #配置http端口,多个实例时该值递增配置:9201、9202…
transport.tcp.port
: 9300#配置tcp连接端口,多个实例递增配置
node.max_local_storage_nodes:6 #新增,设置单机实例数
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不启用x-pack安全机制
3. es-client 节点配置
复制es-master的配置,修改蓝色标记的部分即可
node.name:es-clientN #此处的N表示第N个client节点
network.host:10.33.208.107
node.master: false
node.data: false
path.data:/data/dataA/elastic, /data/dataB/elastic #数字A=2*N-1 B=2*N
path.logs:/hadoop/log/elastic5.1.1/N
http.port:9200 #配置http端口,多个实例时该值递增配置:9201、9202…
transport.tcp.port
: 9300#配置tcp连接端口,多个实例递增配置
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不启用x-pack安全机制
以es用户启动es-master,第一次在前台启动,无错则访问http://es-master1:9200
# su es
$ cd ES_HOME
$ bin/elasticsearch
后台启动:bin/elasticsearch-d
查看es进程:jps
停止es进程:kill $pid
将需要部署es的所有机器准备好环境,即2.2.1的步骤1-4。
配置好第一个es-master实例,并成功启动。
分发安装好的es-master实例的Elasticsearch安装包到ES集群的所有master节点,修改配置文件,成功启动。
配置一个es-data实例启动,安装kibana监控到集群节点正常(观测到启动的所有master实例以及es-data实例)后,分发安装包到所有节点配置es-data实例。
注意:对于单机多实例的配置,暂定/hadoop目录下拷贝ES安装包多份,命名规则为 elastic5.1.1-N,对应其配置中的node.name的命名es-dataM-N后缀,以及日志目录/hadoop/log/elastic5.1.1/N。
启动集群需注意先启动至少两个master节点,再启动data节点。
注册免费的licence 有效期一年(x-monitor):https://register.elastic.co/
导入license的json文件
注:导入后security、report、alert不能再用,谨慎使用
curl -XPUT'http://
命令失败执行下一条:curl -XPUT 'http://
查看license信息
curl -XGET'http://
2.2.8
解压到/hadoop目录下重命名为kibana5.1.1,修改配置文件config/kibana.yml
Server.host 配置机器ip/hostname
Server.name 此kibana服务的名称
elasticsearch.url es master节点url
启动kibana bin/kibana
后台启动:nohupbin/kibana &
停止kibana:ss -lntp | grep 5601 kill $pid
安装xpack
官网上下载zip包: x-pack-5.1.1.zip,到$KIBANA_HOME(kibana的安装目录)
# cd KIBANA_HOME
# bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip
不启用x-pack安全机制
分别在kibana.yml 和elasticsearch.yml中加入下行
xpack.security.enabled: false
安装xpack后重启kibana