关于什么是ElasticSearch的问题,不赘述。
环境:centos6.5
下载需要的安装包,上传到服务器解压。因为es是国外的公司,通过浏览器下载超级慢,这里我们推荐迅雷这款软件,每秒可以达到3兆左右的速度。
# 解压
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz
es中文社区:https://elasticsearch.cn
es官网:https://www.elastic.co
./bin/elasticsearch
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_211/jre] does not meet this 。
原因:说明这个版本对应的jdk应该是java11。我们环境中的jdk是java8。其实新版的es是自带了jdk的。但是和我们环境变量的冲突了。
解决方案:修改启动文件,添加如下修改
vi bin/elasticsearch
# 指定jdk11
export JAVA_HOME=/opt/software/jdk/jdk-11.0.1
export PATH=$JAVA_HOME/bin:$PATH
# 添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/opt/software/jdk/jdk-11.0.1/bin/java"
else
JAVA=`which java`
fi
启动成功后访问9200这个端口号,就可以获取响应结果。成功的响应如下如所示:
es经过多年的发展,社区也有很多插件,提供了很多丰富的扩展功能,es安装插件的方法如下所示:
./bin/elasticsearch-plugin list
执行上述命令没有任何返回,说明你没有安装插件,安装插件的命令如下,这里以安装一个中文分词的插件为例
./bin/elasticsearch-plugin install analysis-icu
安装后在执行查询的命令,就会列出所有你已经安装的插件
解决方案:修改network.host = 0.0.0.0
vi elasticsearch.yml
network.host: 0.0.0.0
原因:这个报错是说当前启动es的用户拥有的线程数量太小,我们至少需要设置为4096
解决方案:修改limits.conf,添加如下配置,然后重启服务器
vi /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
修改/etc/security/limits.d/90-nproc.conf
vi /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
soft nproc 2048
解决方案:修改sysctl.conf,添加如下内容
vi /etc/sysctl.conf
vm.max_map_count=655360
修改后执行如下命令 sysctl -p
原因:这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方案:修改elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false