elasticsearch各种问题总结

阿里云elasticsearch试用套路

阿里云的elasticsearch可以给用户提供试用的机会,这一点还算是比较大方。
但是,并没有领取页面,你必须通过elasticsearch的购买页面来0.00元购买。
https://data.aliyun.com/product/elasticsearch
通过上面链接进入到够买页面,节点必须选择“3”,购买价格才会变成0.00元(仅新用户)!

阿里云elasticsearch白名单问题

即:通过客户端访问elasticsearch,但配置为:0.0.0.0/0 默认无效,需参照下面配置!
在这里插入图片描述

阿里云免费试用elasticsearchYAML配置开启

注意点:阿里云虽然可以领取免费的elk,但配置是比较低的,为了能顺畅体验,建议YML参数配置全部开启
问题:

  1. 如果不开启自动创建索引的话,通过java、python直接PUT文档会报错哦
  2. YML参数配置需要重启,已确认重启一次至少2到4个小时(免费,所以你懂得)
    在这里插入图片描述
阿里云elasticsearch无法查询到中文结

原因:倒排索引将数据分成不同的分词,用这些分词词来匹配数据查询(可能我理解的不对),
但默认的词库没有中文相关的分词。
解决方法:网上查找中文分词词库,并上传到阿里云的插件中(我用的是热更新)
在这里插入图片描述

elasticsearch无法启动

elasticsearch 出于安全考虑,不允许使用root用户启动。
解决方法: 
1. 创建组elasticsearch,并在组elasticsearch下创建用户elasticsearchUser
2. elasticsearch所有目录的所有者必须是elasticsearchUser
3. 进入/elasticsearch/bin目录下,使用elasticsearchUser用户执行 ./elasticsearch 启动elasticsearch
在这里插入图片描述
 

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

系统级别默认的最大打开文件数太小,也可能导致elasticsearch无法启动!
解决方法:/etc/sysctl.conf 文件中最后一行添加:vm.max_map_count=655300
执行“sudo sysctl -p”使配置生效
在这里插入图片描述
 

ES日期校验导致java 或者python迁移数据到elasticsearch异常中断

场景:通过java API迁移数据时,发现经常自动中断,更换为python API迁移数据,问题同样发生,且无明显规律!
通过日志查看到每次断开时插入的最后一条数据和下一条数据,发现只要数据中包含日期,就会产生中断!
原因:在一开始设置“mapping”时,数据的类型被设置成文本类型,当数据中存在“日期类型”的数据,
ES 就会认为插入类型错误,实际上,数据就是文本类型,只不过数据中间包含了日期。
解决方案:关闭日期校验
在这里插入图片描述
 

docker构建elasticsearch集群无法通过外网访问

场景:玩家A突然告诉我,通过dockerpose构建elasticsearch集群简单又方便。
于是,自己就照搬官网的构建文件“https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html”,
3秒钟在腾讯云构建了一个2个节点的elastic集群(正常应该要有3个节点),方便至极兴奋的跳起来了。
问题:打开浏览器验证集群:“网页无法正常访问”。
排查过程: 

  1. 服务器中直接使用curl 127.0.0.1:9200 访问正常
  2. 查看防火墙,发现防火墙已关闭,排除防火墙原因
  3. 腾讯云嘛,经常玩的都懂,于是提工单,在腾讯云的帮助下,腾讯云工程师果断撇清腾讯云服务器
    (事实证明人家真没有问题,但同时也暴露一个问题:防火墙关闭、安全组也打开了9200,腾讯云
    工程师协助检查,发现9200依旧被过滤,无法访问)
  4. 反复启动多次容器,仔细查看日志
    发现一条WARNING: IPv4 forwarding is disabled. Networking will not work.
    直接粘贴“百度”发现了标准的解决方案
    更改 /etc/sysctl.conf中的“ net.ipv4.ip_forward=1”,默认其实是0.
    更改后执行“systemctl restart network”,再次启动elasticsearch则可以通过外网访问!
    在这里插入图片描述
elasticsearch7.0无法创建索引

常见:QQ群小伙伴反馈 创建索引报错,截图如下。
解决方案:群内大神回复,官方文档中已解释:集群最大分片数只能是1000
在这里插入图片描述

elasticsearch7.0 实验数据获取从哪里来

问题:要学习必须有足够的实验数据,从哪里来?
解决方法:群里面有人推荐“kaggle(https://www.kaggle.com/datasets),是一个数据网站,里面有各种各样的数据,
虽然通过官网的工具,也可以自己造数据,但要自己造数据的话,一般人能想到
在文本类型的数据中添加“日期”吗?
所以,kaggle的数据更加真实,实验的过程中能够发现更多实际问题!

阿里云mysql同步elasticsearch

解决方案:

  1. 使用阿里云DTS传输工具:https://blog.csdn.net/u010569419/article/details/89924494
  2. 通过logstash:https://www.elastic.co/cn/products/logstash
  3. 使用elasticsearch官网对应的API:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-index.html
发布了90 篇原创文章 · 获赞 1103 · 访问量 80万+

猜你喜欢

转载自blog.csdn.net/u010569419/article/details/89304108