美文网首页
elasticsearch各种问题总结(转载自我的CSDN同名博

elasticsearch各种问题总结(转载自我的CSDN同名博

作者: wujianqinjian | 来源:发表于2019-07-25 15:24 被阅读0次
    阿里云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

    相关文章

      网友评论

          本文标题:elasticsearch各种问题总结(转载自我的CSDN同名博

          本文链接:https://www.haomeiwen.com/subject/cvuhrctx.html