前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7 安装ElasticSearch 6

centos7 安装ElasticSearch 6

作者头像
崔笑颜
发布2020-06-08 14:29:40
5390
发布2020-06-08 14:29:40
举报

什么是 ElasticSearch

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

基础概念

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

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

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

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

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

形象比喻:

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

百货大楼 --> ElasticSearch 数据库

书籍 --> 索引

悬疑推理 --> 类型

白夜行 --> 文档

安装

需要JDK1.8 和 NodeJS 最新版的7 慎重考虑需要需要JDK 11 登陆老版本下载 官网下载文件。

WX20190816-094122@2x
WX20190816-094122@2x

解压到 /use 目录下

WX20190816-094419@2x
WX20190816-094419@2x

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

代码语言:javascript
复制
#增加 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 只允许本机访问,如果需要远程访问,需要修改其配置文件 特别注意 要和上下文对齐 不要多空格 和少空格

代码语言:javascript
复制
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: "*"

启动服务

代码语言:javascript
复制
bin/elasticsearch 或 bin/elasticsearch -d # -d 表示后台启动

报错解决

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

代码语言:javascript
复制
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
WX20190816-100353@2x

head插件

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

代码语言:javascript
复制
cd elasticsearch-head-master

npm install

npm run start
WX20190816-100733@2x
WX20190816-100733@2x

后面是我整合啦spring boot

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 ElasticSearch
  • 基础概念
    • 形象比喻:
    • 安装
    • 报错解决
    • head插件
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档