赞
踩
集群状态颜色:
绿色:所有条件都满足,数据完整,副本满足
黄色:数据完整,副本不满足
红色:有索引里的数据出现不完整了
紫色:有分片正在同步中
192.168.80.90 | sjk1 |
---|---|
192.168.80.91 | sjk2 |
192.168.80.92 | sjk3 |
1.安装软件 yum install -y java-1.8.0-openjdk.x86_64 rpm -ivh elasticsearch-6.6.0.rpm 2.修改配置文件 node-1配置文件 cat /etc/elasticsearch/elasticsearch.yml cluster.name: linux node.name: node-2 path.data: /data/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 192.168.80.90,127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.91"] discovery.zen.minimum_master_nodes: 2 node-2配置文件 cat /etc/elasticsearch/elasticsearch.yml cluster.name: linux node.name: node-2 path.data: /data/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 192.168.80.91,127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.91"] discovery.zen.minimum_master_nodes: 2 node-3配置文件 cat /etc/elasticsearch/elasticsearch.yml cluster.name: linux node.name: node-3 path.data: /data/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 192.168.80.92,127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.92"] discovery.zen.minimum_master_nodes: 2 锁定内存的更改 vim jvm.options -Xms512m -Xmx512m 默认是1g根据自己的内存大小进行更改 3.修改内存锁定 systemctl edit elasticsearch 添加 [Service] LimitMEMLOCK=infinity 4.创建数据目录并授权 mkdir /data/elasticsearch chown -R elasticsearch:elasticsearch /data/elasticsearch/ 5.重启服务 systemctl daemon-reload systemctl start elasticsearch 6.查看日志和端口 tail -f /var/log/elasticsearch/Linux.log netstat -lntup:grep 9200
配置文件
elasticsearch.yml
cluster.name: Linux 集群名称,同一个集群内所有节点集群名称要一模一样
node.name: node-1 节点名称,同一个集群内所有节点的节点名称不能重复
path.data: /data/elasticsearch 数据目录
path.logs: /var/log/elasticsearch 日志目录
bootstrap.memory_lock: true 内存锁定
network.host: 10.0.0.51,127.0.0.1 绑定监听地址
http.port: 9200 默认端口号
discovery.zen.ping.unicast.hosts: ["10.0.0.51", "10.0.0.52"] 集群发现节点配置
discovery.zen.minimum_master_nodes: 2 选项相关参数,有公式 master/2 +1
说明:
cluster.name: Linux | 同一个集群里边,这个名字一样 |
---|---|
node.name: node-1 | 不同节点的名字不一样 |
bootstrap.memory_lock: true | 内存锁定,我也不知道为什么,我2g内存不用配置,1g的配置错误 |
discovery.zen.ping.unicast.hosts: [“10.0.0.51”, “10.0.0.52”] | 该地址,前边写主节点的,后边的紫萼自己主机的就行 |
discovery.zen.minimum_master_nodes: 2 | 当只有两台的时候一台挂了,另一台不会立即的变为主机,加入出现故障,只启动一台机器,就把参数设置为1 |
主节点是node-2他这个是先发现谁就是谁
默认情况下:
1.所有节点都是工作节点
2.主节点即负责调度又负责处理数据
查看集群的名称
curl -XGET 'http://localhost:9200/_nodes/procese?human&pretty'
所有节点的信息
curl -XGET 'http://localhost:9200/_nodes/_all/info/jvm,process?human&pretty'
查看有哪些节点
curl -XGET 'http://localhost:9200/_cat/nodes?human&pretty'
详细的分片信息
curl -XGET 'http://localhost:9200/_cluster/health?pretty'
查看索引
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
2个节点,master设置为2的时候,一台出现故障导致集群不可用
解决方案:
把还存活的节点的配置文件集群选举相关的选项注释掉或者改成1
discovery.zen.minimum_master_nodes: 1
重启服务
两个节点数据不一致会导致查询结果不一致
找出不一致的数据,清空一个节点,以另一个节点的数据为准
然后手动插入修改后的数据
curl -XPUT 'localhost:9200/linux/user/2?pretty' -H 'Content-Type: application/json' -d' {
"first_name": "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums", "interests": [ "music" ]
}'
curl –XPUT 'localhost:9200/linux/user/3?pretty' -H 'Content-Type: application/json' -d' {
"first_name": "Douglas", "last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets", "interests": [ "forestry" ]
}'
默认数据分配:
5分片
1副本
监控状态
1.监控集群健康状态 不是 green
or
2.监控集群节点数量 不是 3
curl -s -XGET 'http://localhost:9200/_cat/nodes?human&pretty'|wc -l
curl -s -XGET 'http://localhost:9200/_cluster/health?pretty' |grep status
我们停止一个节点试一试
需要一定的反应时间
变成两个节点了,这个时候一个损坏了,我们就可以重新启用另外一个再搭建,启用主要数据的哪一个,更改参数为1
discovery.zen.minimum_master_nodes: 1
curl -XPUT 'localhost:9200/index1?pretty' 创建索引的时候指定分片和副本 curl -XPUT 'localhost:9200/index2?pretty' -H 'Content-Type: application/json' -d' { "settings" : { "number_of_shards" : 3, "number_of_replicas" : 1 } }' 分片数一旦创建就不能再更改了,但是我们可以调整副本数 curl -XPUT 'localhost:9200/index2/_settings?pretty' -H 'Content-Type: application/json' -d' { "settings" : { "number_of_replicas" : 2 } }'
中文分词器: 所有节点都得安装中文分词器 curl -XPOST http://localhost:9200/index/fulltext/1 -H 'Content-Type:application/json' -d' {"content":"是个烂摊子吗"} ' curl -XPOST http://localhost:9200/index/fulltext/2 -H 'Content-Type:application/json' -d' {"content":"车将享最高路权"} ' curl -XPOST http://localhost:9200/index/fulltext/3 -H 'Content-Type:application/json' -d' {"content":"渔船"} ' curl -XPOST http://localhost:9200/index/fulltext/4 -H 'Content-Type:application/json' -d' {"content":"自"} ' curl -XPOST http://localhost:9200/index/fulltext/_search?pretty -H 'Content-Type:application/json' -d' { "query" : { "match" : { "content" : "国" }}, "highlight" : { "pre_tags" : ["<tag1>", "<tag2>"], "post_tags" : ["</tag1>", "</tag2>"], "fields" : { "content" : {} } } } ' 创建索引的时候指定分词器 curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d' { "properties": { "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" } } }'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。