2021-04-29

ES学习总结

es起不来原因
问题、es jvm内存溢出把启动用户内存占满了

ES的作用:ES是基于Lucene构建的开源、分布式、RESTful接口全文搜索引擎。同时它还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,便于扩展,能在短时间内搜索和分析大量数据。
ES原理:当ElasticSearch的节点启动后,它会利用多播(multicast)(或者单播,如果用户更改了配置)寻找集群中的其它节点,并与之建立连接。
ES安装
3.1、ES开箱即用。
3.2、ES的启动
./bin/elasticsearch(前台启动)
./bin/elasticsearch -d(后台启动)
3.3、ES配置文件elasticsearch.yml
cluster.name:elasticsearch #集群的名称,同一个集群该值必须设置成相同的
node.name:“es2” #该节点的名字
node.master:true #该节点有机会成为master节点
node.data:true #该节点可以存储数据
node.rack:rack2 #该节点所属的机架
index.number_of_shards:5 #shard的数目
index.number_of_replicas:3 #数据副本的数目
network.bind_host:0.0.0.0 #设置绑定的IP地址,可以是IPV4或者IPV6
network.publish_host:10.0.0.209 #设置其他节点与该节点交互的IP地址
network.host:10.0.0.209 #该参数用于同时设置bind_host和publish_host
transport.tcp.port:9300 #设置节点之间交互的端口号
transport.tcp.compress:true #设置是否压缩tcp上交互传输的数据
http.port:9200 #设置对外服务的http端口号
http.max_content_length:100mb #设置http内容的最大大小
http.enabled:true #是否开启http服务对外提供服务
discovery.zen.minimum_master_nodes:2 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.ping.timeout:120s #设置集群中自动发现其他节点时ping连接的超时时间
discovery.zen.ping.multicast.enabled:true #设置是否打开多播发现节点
discovery.zen.ping.unicast.hosts:[“10.0.0.209:9300”,“10.0.0.206:9300”,“10.0.0.208:9300”] #设置集群中的Master节点的初始列表,可以通过这些节点来自动发现其他新加入集群的节点
ES概念
4.1、index(索引):对应关系型数据库的一个数据库。
Curl -XGET ‘http://IP:port/_cat/indices?v’
4.2、type(类型):一个逻辑分组,我的理解type就相当于一个类,这个类下的数据都是这个类的实例,也就是这个分组下的数据格式都相似。
4.3、document(文档):是一组json数据,类似与代码中一个类的所有属性。如:
{ “name”: “James”, “age”: 34 }

ES常用的操作(增删查改)
5.1、增加和更新数据
curl -H “Content-Type: application/json” -X PUT/POST http://localhost:9200/project/person/1 -d ‘{“name”:“James”,“age”:35}’
其中 project就是一个index(相当于一个库),person是type,相当于一个类(表),1是这个文档的id(表中一条数据的id)。执行上面的操作时如果index、type、id等不存在则会自动创建,如果这条id的数据已经存在则是更新这条数据。
5.2、删除数据
删除数据命令如下:
curl -X DELETE http://localhost:9200/project/person/1
5.3、查询数据
curl -X GET http://localhost:9200/project/person/1
ES账户
6.1、增加用户./bin/x-pack/users useradd my_admin -p my_password -r superuser
6.2、重置密码
curl -u my_admin -XPUT ‘http://localhost:9200/_xpack/security/user/elastic/_password?pretty’ -H ‘Content-Type: application/json’ -d ‘{ “password” : “new_password”}’
ES常见问题
7.1、missing authentate(未认证)
原因:未输入账户和密码
7.2、failed to authentate
原因:直接原因就是账号或密码验证失败,间接原因1可能是x-pack过期,原因2可能是删除data数据导致账户信息丢失。
解决方法1:
1.下载xpack插件;
2.先绕过x-pack验证,修改xpack.security.enabled的值为false,重启ES生效;
3.安装xpack插件;
1.停止es应用
2.替换es安装路径plugins/x-pack(x-pack插件文件夹)文件下的x-pack-5.4.0.jar,license.json放在elasticsearch安装目录下;
3.启动ES
4.执行安装
1)可先查看下当前es license的状态
Curl -XGET -u elastic:8rmc3ZJ9yr ‘http://IP:9200/_license’ (注意ip端口和访问账户)
curl -u elastic:8rmc3ZJ9yr “http://node1.hadoop:9200/_xpack/license”
返回结果中有如下两个参数值则license.json生效:
“type” : “platinum”,
“expiry_date” : “2051-04-29T16:00:00.000Z”

替换更新license.(在license.txt文件所在目录下执行)
Curl -XPUT -u elastic:8rmc3ZJ9yr ‘http://IP:9200/_xpack/license’ -d @license.json (注意ip端口和访问账户)
返回:{“acknowledged”:true,“license_status”:“valid”},代表成功!
#curl -XPUT -u elastic:8rmc3ZJ9yr ‘http://192.168.100.50:9200/_xpack/license?acknowledge=true’ -d @license.json

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值