centos7 安装ElasticSearch 6

什么是 ElasticSearch

ElasticSearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

基础概念

索引:含有相同属性的文档集合

类型:索引可以定义一个或多个类型,文档必须属于一个类型

文档:可以被索引的基础数据单位

分片:每个索引都有多个分片,每个分片都是 Lucene 索引

备份:拷贝一份分片就完成分片的备份

形象比喻:

百货大楼里有各式各样的商品,例如书籍、笔、水果等。书籍可以根据内容划分成不同种类,如科技类、教育类、悬疑推理等。悬疑推理类的小说中比较有名气的有《福尔摩斯探案集》、《白夜行》等。

百货大楼 --> ElasticSearch 数据库

书籍 --> 索引

悬疑推理 --> 类型

白夜行 --> 文档

安装

需要JDK1.8 和 NodeJS 最新版的7 慎重考虑需要需要JDK 11 登陆老版本下载 官网下载文件。 WX20190816-094122@2x 解压到 /use 目录下 WX20190816-094419@2x

因为 Elasticsearch 可以执行脚本文件,为了安全性,默认不允许通过 root 用户启动服务。我们需要新创建用户名和用户组启动服务

#增加 es 组
groupadd es

#增加 es 用户并附加到 es 组
useradd es -g es -p es

#给目录权限 进入到你解压的位置 输入pwd 将路径拷贝到 es 后面
chown -R es:es /usr/elasticsearch-5.6.1

#使用es用户
su es

默认情况下,Elasticsearch 只允许本机访问,如果需要远程访问,需要修改其配置文件 特别注意 要和上下文对齐 不要多空格 和少空格

vim config/elasticsearch.yml

# 去掉 network.host 前边的注释,将它的值改成0.0.0.0
network.host: 0.0.0.0



# 在文件末尾添加 2 段配置 这里是为了解决跨域问题 web管理界面

http.cors.enabled: true
http.cors.allow-origin: "*"

启动服务

bin/elasticsearch 或 bin/elasticsearch -d # -d 表示后台启动

报错解决

先不后台启动 错误会直接打印 调试没有问题之后 后台启动 可能会出现的问题 6也会遇到

elasticsearch5.0启动失败,出现如下提示:

1、Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配

# vim config/jvm.options
-Xms2g
-Xmx2g
修改为  还是同样的错误的话 继续往下调 
-Xms512m
-Xmx512m


2、max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
修改 /etc/security/limits.d/90-nproc.conf 

*          soft    nproc     1024

*          soft    nproc     2048



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

修改/etc/sysctl.conf配置文件,

cat /etc/sysctl.conf | grep vm.max_map_count
vm.max_map_count=262144

如果不存在则添加

echo "vm.max_map_count=262144" >>/etc/sysctl.conf



4、max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]



ulimit -n 65536





以下是在5.5.1是踩过的坑



5、启动异常:ERROR: bootstrap checks failed

system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk



问题原因:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899



解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false



6、logstash使用rpm包安装的时候没有配置init的启动脚本

默认情况使用rpm包安装完logstash之后没有启动脚本。官网给了一个脚本,需要根据不同的系统版本生成对应的启动脚本,而且官网没有给明使用方法,对于新用户来说算是个坑,不过在终端可以查看到脚本的使用帮助# /usr/share/logstash/bin/system-install --help

生成启动脚本,centos6使用sysv参数,centos7使用systemd

# /usr/share/logstash/bin/system-install /etc/logstash/startup.options sysv

Successfully created system startup script for Logstash



启动成功 你的ip 9200 默认端口 WX20190816-100353@2x

head插件

查看内容显示效果不友好,因此,我们需要安装一个名为 elasticsearch-head 的插件,让内容显示效果比较舒适。需要安装nodejs githup下载 端口9100

cd elasticsearch-head-master

npm install

npm run start

WX20190816-100733@2x

后面是我整合啦spring boot

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×