elasticsearch各種問題總結(jié)(轉(zhuǎn)載自我的CSDN同名博客wujianqinjian)

阿里云elasticsearch試用套路

阿里云的elasticsearch可以給用戶提供試用的機(jī)會,這一點(diǎn)還算是比較大方。
但是,并沒有領(lǐng)取頁面,你必須通過elasticsearch的購買頁面來0.00元購買。
https://data.aliyun.com/product/elasticsearch
通過上面鏈接進(jìn)入到夠買頁面,節(jié)點(diǎn)必須選擇“3”,購買價格才會變成0.00元(僅新用戶)!

?

阿里云elasticsearch白名單問題

即:通過客戶端訪問elasticsearch,但配置為:0.0.0.0/0 默認(rèn)無效,需參照下面配置!


在這里插入圖片描述
阿里云免費(fèi)試用elasticsearchYAML配置開啟

注意點(diǎn):阿里云雖然可以領(lǐng)取免費(fèi)的elk,但配置是比較低的,為了能順暢體驗(yàn),建議YML參數(shù)配置全部開啟
問題:

  1. 如果不開啟自動創(chuàng)建索引的話,通過java、python直接PUT文檔會報錯哦
  2. YML參數(shù)配置需要重啟,已確認(rèn)重啟一次至少2到4個小時(免費(fèi),所以你懂得)


    在這里插入圖片描述
阿里云elasticsearch無法查詢到中文結(jié)

原因:倒排索引將數(shù)據(jù)分成不同的分詞,用這些分詞詞來匹配數(shù)據(jù)查詢(可能我理解的不對),
但默認(rèn)的詞庫沒有中文相關(guān)的分詞。
解決方法:網(wǎng)上查找中文分詞詞庫,并上傳到阿里云的插件中(我用的是熱更新)


在這里插入圖片描述

?

elasticsearch無法啟動

elasticsearch 出于安全考慮,不允許使用root用戶啟動。
解決方法:?
1. 創(chuàng)建組elasticsearch,并在組elasticsearch下創(chuàng)建用戶elasticsearchUser
2. elasticsearch所有目錄的所有者必須是elasticsearchUser
3. 進(jìn)入/elasticsearch/bin目錄下,使用elasticsearchUser用戶執(zhí)行 ./elasticsearch 啟動elasticsearch


在這里插入圖片描述

?

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

系統(tǒng)級別默認(rèn)的最大打開文件數(shù)太小,也可能導(dǎo)致elasticsearch無法啟動!
解決方法:/etc/sysctl.conf 文件中最后一行添加:vm.max_map_count=655300
執(zhí)行“sudo sysctl -p”使配置生效

在這里插入圖片描述

?

ES日期校驗(yàn)導(dǎo)致java 或者python遷移數(shù)據(jù)到elasticsearch異常中斷

場景:通過java API遷移數(shù)據(jù)時,發(fā)現(xiàn)經(jīng)常自動中斷,更換為python API遷移數(shù)據(jù),問題同樣發(fā)生,且無明顯規(guī)律!
通過日志查看到每次斷開時插入的最后一條數(shù)據(jù)和下一條數(shù)據(jù),發(fā)現(xiàn)只要數(shù)據(jù)中包含日期,就會產(chǎn)生中斷!
原因:在一開始設(shè)置“mapping”時,數(shù)據(jù)的類型被設(shè)置成文本類型,當(dāng)數(shù)據(jù)中存在“日期類型”的數(shù)據(jù),
ES 就會認(rèn)為插入類型錯誤,實(shí)際上,數(shù)據(jù)就是文本類型,只不過數(shù)據(jù)中間包含了日期。
解決方案:關(guān)閉日期校驗(yàn)


在這里插入圖片描述

?

docker構(gòu)建elasticsearch集群無法通過外網(wǎng)訪問

場景:玩家A突然告訴我,通過dockerpose構(gòu)建elasticsearch集群簡單又方便。
于是,自己就照搬官網(wǎng)的構(gòu)建文件“https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html”,
3秒鐘在騰訊云構(gòu)建了一個2個節(jié)點(diǎn)的elastic集群(正常應(yīng)該要有3個節(jié)點(diǎn)),方便至極興奮的跳起來了。
問題:打開瀏覽器驗(yàn)證集群:“網(wǎng)頁無法正常訪問”。
排查過程:?

  1. 服務(wù)器中直接使用curl 127.0.0.1:9200 訪問正常
  2. 查看防火墻,發(fā)現(xiàn)防火墻已關(guān)閉,排除防火墻原因
  3. 騰訊云嘛,經(jīng)常玩的都懂,于是提工單,在騰訊云的幫助下,騰訊云工程師果斷撇清騰訊云服務(wù)器
    (事實(shí)證明人家真沒有問題,但同時也暴露一個問題:防火墻關(guān)閉、安全組也打開了9200,騰訊云
    工程師協(xié)助檢查,發(fā)現(xiàn)9200依舊被過濾,無法訪問)
  4. 反復(fù)啟動多次容器,仔細(xì)查看日志
    發(fā)現(xiàn)一條WARNING: IPv4 forwarding is disabled. Networking will not work.
    直接粘貼“百度”發(fā)現(xiàn)了標(biāo)準(zhǔn)的解決方案
    更改 /etc/sysctl.conf中的“ net.ipv4.ip_forward=1”,默認(rèn)其實(shí)是0.
    更改后執(zhí)行“systemctl restart network”,再次啟動elasticsearch則可以通過外網(wǎng)訪問!


    在這里插入圖片描述
elasticsearch7.0無法創(chuàng)建索引

常見:QQ群小伙伴反饋 創(chuàng)建索引報錯,截圖如下。
解決方案:群內(nèi)大神回復(fù),官方文檔中已解釋:集群最大分片數(shù)只能是1000


在這里插入圖片描述
elasticsearch7.0 實(shí)驗(yàn)數(shù)據(jù)獲取從哪里來

問題:要學(xué)習(xí)必須有足夠的實(shí)驗(yàn)數(shù)據(jù),從哪里來?
解決方法:群里面有人推薦“kaggle(https://www.kaggle.com/datasets),是一個數(shù)據(jù)網(wǎng)站,里面有各種各樣的數(shù)據(jù),
雖然通過官網(wǎng)的工具,也可以自己造數(shù)據(jù),但要自己造數(shù)據(jù)的話,一般人能想到
在文本類型的數(shù)據(jù)中添加“日期”嗎?
所以,kaggle的數(shù)據(jù)更加真實(shí),實(shí)驗(yàn)的過程中能夠發(fā)現(xiàn)更多實(shí)際問題!

阿里云mysql同步elasticsearch

解決方案:

  1. 使用阿里云DTS傳輸工具:https://blog.csdn.net/u010569419/article/details/89924494
  2. 通過logstash:https://www.elastic.co/cn/products/logstash
  3. 使用elasticsearch官網(wǎng)對應(yīng)的API:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-index.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容