作者:多米音乐_34216717 | 来源:互联网 | 2023-07-28 16:49
本文由编程笔记#小编为大家整理,主要介绍了elasticsearch2.4升级elasticsearch6.2心得相关的知识,希望对你有一定的参考价值。
elasticsearch2.4升级elasticsearch6.2心得
服务端部分:
一、升级前准备
jdk1.8+;
二、安装步骤
下载地址
目前最高版本6.4,谨慎起见目前使用的是6.4之前最新的一个小版本6.3
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/parent-join.html
创建elasticsearch用户和用户组(elasticsearch为了安全起见禁止了root操作权限)
tar -zxvf elasticsearch-6.3.2.tar.gz
创建 data和logs目录(为后面的数据存储和日志存储的目录,所有创建的目录最后都必须所属elasticsearch用户和 用户组,不然会报没有写的权限错误) elasticsearch对系统每个进程最大同时打开文件数和进程可以拥有的VMA(虚拟内存区域)的数量有要求需要修改以下 两个文件 /etc/security/limits.conf soft nproc 65536 hard nproc 65536 /etc/sysctl.conf(修改完后需要执行sysctl -p 使之生效) vm.max_map_count=262144
修改配置文件
三、注意事项 启动的时候必须使用elasticsearch用户,且安装的elasticsearch先关文件必须是elasticsearch的用户和用户组所属权限
elasticsearch是根据cluster.name来判别集群的,如果服务器上有多个集群必须区分
elasticsearch集群启动必须先启动主节点
代码部分:
一、pom依赖
- lucene依赖7以上,elasticsearch为选定的6.x版本,jdk1.8+
二、API
- 5.x以上废弃父子文档关系,改为使用join连接详见文档https://www.elastic.co/guide/en/elasticsearch/reference/6.3/parent-join.html
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 0
},
"mappings": {
"_doc": {
"properties": {
"t_join_field": {
"type": "join",
"relations": {
"account": "drug_sale"
}
}
}
}
}
}
javaAPI参照 https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html
restfulAPI参照 https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
三、应用部分值得注意的重要更改
创建连接客户端已取消TransportClient.builder()直接构建改为更安全的PreBuiltTransportClient()构建
返回的field信息已不支持addField方法,API入口仍然保留但已弃用,github源码声明会在更高的版本完全弃用
join结构的父子关系不在使用parent(parent_id)指定,理由同addField,此处需借鉴restul接口,直接声明json串
5.x以后restful的调用需要声明请求类型 请求需要加上
-H "Content-Type:application/json"
例如 curl -X GET -H "Content-Type:application/json" ‘http:
- 单次最大查询量,创建索引后需执行,不然会影响滚动查询和全量查询(暂未找到对应配置)
curl -XPUT -H "Content-Type:application/json" ‘http://xxx.xxx.xx.xxx:9200/_all/_settings?preserve_existing=true‘ -d ‘{"index.max_result_window" : "30000"}‘
其他聚合及删除查询API的更改不再赘述
较与版本2.4的比较
一、速度上有了提升,尤其是删除方面6比2多了指定查询删除,在elasticsearch2.4时只能先查后删进行滚动删除比较影响数据更新的速度,6.xz之后的指定删除功能速度提高了好几倍,这样大大的提高了需要删除来进行更新的功能 其次在直接更新的速度上6较与2也有提升
二、在聚合查询和大数据量查询上,elasticsearch6.x 的Sliced Scroll的并行特性可以加快大数据量或需要大量筛查的数据的速度
升级心得
elasticsearch6.3.2的升级和测试持续了三周,在升级过程中遇到一些坑,由于elasticsearch官网对javaAPI的支持并不友好,主要还是restful接口的 描述上述标注的地方有的并未写在文档中,需要去javaAPI翻查源代码对比restful接口调试elasticsearch官网对javaAPI的支持并不全,优先功能建议先 调试restful接口,然后翻查源码,javaAPI的底层仍是调用的restful接口