Elasticsearch使用問題總結


Elasticsearch使用問題總結

 

今天下載了elasticsearch的7.x版本,使用bin/elasticsearch -d 啟動后,報出如下錯誤:

1:can not run elasticsearch as root

原來,啟動的時候不能使用root用戶啟動,無奈,只能創建一個新用戶

用戶創建

  1. 創建用戶:
useradd -m es
  1. 設置密碼:
passwd es

更改文件擁有者(chown命令)

 chown -R es:es /usr/local/java/elasticsearch-7.9.0/

1.命令格式:

    chown [選項]... [所有者][:[組]] 文件...

2.命令功能:

    通過chown改變文件的擁有者和群組。在更改文件的所有者或所屬群組時,可以使用用戶名稱和用戶識別碼設置。普通用戶不能將自己的文件改變成其他的擁有者。其操作權限一般為管理員。

  3.命令參數:

  必要參數:

    -c 顯示更改的部分的信息

    -f 忽略錯誤信息

    -h 修復符號鏈接

    -R 處理指定目錄以及其子目錄下的所有文件

    -v 顯示詳細的處理信息

    -deference 作用於符號鏈接的指向,而不是鏈接文件本身

切換用戶

su   es

再次啟動成功啟動

 

2:報錯信息:

future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_211/jre] does not meet this requirement
解決辦法(講解):
由於Elasticsearch依賴於jdk,es和jdk有着對應的依賴關系。如果本地安裝了jdk8或者和es不匹配的版本就會報錯。

elasticsearh從7.0開始默認安裝了java運行環境,以便在沒有安裝java運行環境的機器上運行。如果配置了環境變量JAVA_HOME,則elasticsearh啟動時會使用JAVA_HOME作為java路徑,否則使用elasticsearh根目錄下jdk目錄為java路徑。

解決此問題:

linux:

修改elasticsearch-env

 vi elasticsearch-7.9.0/bin/elasticsearch-env

 

 3: 瀏覽器訪問localhost:9200 無法訪問,   需要開啟防火牆端口9200

開啟端口:9200 firewall-cmd --zone=public --add-port=9200/tcp --permanent 重啟防火牆: firewall-cmd --reload 查詢端口號9200 是否開啟: firewall-cmd --query-port=9200/tcp

 

4、再次訪問依然無法訪問,修改   elasticsearch.yml   配置文件,允許外網訪問。

vi /usr/local/java/elasticsearch-7.9.0/config/elasticsearch.yml 

 

5: 再次啟動,哈哈,依然報錯

 文件描述符:[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

解決:

vi /etc/security/limits.conf
追加以下內容:
* soft nofile 65536 * hard nofile 65536 此文件修改后需要重新登錄用戶,才會生效

 

線程數:[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]

 

vi /etc/security/limits.conf
配置,如下:
* soft nproc 2048 * hard nproc 4096

 

虛擬內存:[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決:

vi /etc/sysctl.conf
追加以下內容: vm.max_map_count
=655360 保存后,執行: sysctl -p

 

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/java/elasticsearch-7.9.0/logs/elasticsearch.log

解決:

elasticsearchconfig目錄下,修改  elasticsearch.yml 配置文件,將下面的配置加入到該配置文件中:

cluster.initial_master_nodes: ["node-1"] #這里的node-1為node-name配置的值

 

 

 再次啟動:

 

 

 

 

 

 

 

 

 

 

 
        
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM