ES 安裝常見錯誤


首先下載 Linux 版本的 ES 安裝包,我這里下載的是 ES 的最新版本 elasticsearch-7.14.1 ,下載完成之后,解壓縮到指定目錄,然后進入安裝目錄的 bin 目錄下面,使用命令 ./elasticsearch 啟動 ES

 一、執行命令之后出現如下報錯

從日志上提取的錯誤信息如下

// Linux 上安裝的 jdk 版本是 jdk1.8.0_301 ,而啟動 elasticsearch-7.14.1 需要的 jdk 版本是 jdk 11
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/mysoft/jdk/jdk1.8.0_301/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set

// 不能使用 root 用戶去啟動 ES
can not run elasticsearch as root

解決問題

1、下載並安裝 jdk 11

2、在 /etc/profile 下重新配置 jdk 11 的 JAVA_HOME

# JDK 環境變量信息
# JDK 安裝目錄
export JAVA_HOME=/usr/local/mysoft/jdk/jdk-11.0.12
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
# MAVEN 環境變量信息 M2_HOME 的值為 Maven 的安裝目錄
export M2_HOME=/usr/local/mysoft/maven/apache-maven-3.6.0
export M2_PATH=${M2_HOME}/bin

# PATH 環境變量 ( Windows 中是以 ; 進行分割的, Linux 中是以 : 進行分割 ${變量值} 的方式來取值 )
export PATH=${JAVA_PATH}:${M2_PATH}:$PATH

3、使用命令 source /etc/profile 使剛剛配置的環境變量生效

4、使用 su 命令切換用戶

 

二、繼續使用命令 ./elasticsearch 啟動,又出現了如下報錯

 從日志上提取的錯誤信息如下

# 拒絕訪問 ES 的配置文件 elasticsearch.yml ,這是由於訪問權限不足造成的
nested: AccessDeniedException[/usr/local/mysoft/elasticsearch/elasticsearch-7.14.1/config/elasticsearch.yml];

解決問題:給普通用戶授權

// 注意路徑最后面的 /
chown -R summer /usr/local/mysoft/elasticsearch/

 

三、修改 elasticsearch 的配置文件,注意 ES 的配置文件是 .yml 格式的,千萬要注意 : 后面要有空格

修改完成之后重新啟動 ES,接着就報如下錯誤

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

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

// 解決方案
編輯 /etc/security/limits.conf,在文件的最后追加如下配置
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登錄用戶,才會生效

錯誤 2、bootstrap check failure [2] of [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

bootstrap check failure [2] of [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

// 解決方案
編輯 /etc/sysctl.conf,在文件的最后追加如下配置
vm.max_map_count=262144
執行 /sbin/sysctl -p 命令,使配置立即生效

錯誤 3、bootstrap check failure [3] of [3]: 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 configured

 

bootstrap check failure [3] of [3]: 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 configured

// 解決方案
在 elasticsearch 的 config 目錄下,修改 elasticsearch.yml 配置文件,將下面的配置加入到該配置文件中
cluster.initial_master_nodes: ["node-1"] 

 

切換到 ES 的 bin 目錄下,使用 ./elasticsearch 啟動服務,啟動成功之后,訪問 http://192.168.59.132:9200/,如果能看到如下信息,那么 ES 就安裝啟動成功了

name: 主機名稱(可以通過 vim /etc/hostname 修改主機名稱)
cluster_name: 集群名稱(默認的集群名稱就是 elasticsearch)
version.number: ES 版本號
lucene_version: lucene 版本號,ES 底層封裝的就是 lucene

 


免責聲明!

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



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