ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。今天小编主要跟大家讲下如何在linux系统上按elasticsearch 搜索引擎。
第一步首先网上下载elasticsearch 6.4.0的安装包,在root 目录下创建文件夹elasticsearch下,然后解压elasticsearch 6.4.0安装包。
第二步安装jdk1.8以上版本,注意,最好把jdk和elasticsearch都放在同一个目录下面,不然后面切换用户启动asticsearch可能会遇到没有jdk环境变量的问题。此处步骤省略
第三步创建用户组(这是因为elasticsearch 6以上版本不支持root用户启动)。创建用户组groupadd esGroup , 创建用户useradd esUser -g esGroup -p 123456 (用户密码,此处密码可以省略),赋予用户权限chown -R esUser:esGroup /root/elasticsearch
第四步:切换到esUser用户并进入文件夹
/root/elasticsearch/elasticsearch-6.4.0/bin, 输入命令./elasticsearch 即可启动成功。以上步骤只是实现了在服务器本地访问。接下来配置远程访问elasticsearch服务。
第五步:进入文件夹
/root/elasticsearch/elasticsearch-6.4.0/config目录下,vi elasticsearch.yml 修改属性network.host: 172.18.25.150 (此处为服务器内网ip地址),并配置端口号http.port: 9200,保存文件即可。接下来我们使用命令./elasticsearch 启动,此时es并不能成功启动,出现以下错误
[2017-01-12T15:55:55,433][INFO ][o.e.b.BootstrapCheck ] [SfD5sIh] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法
1.vi /etc/security/limits.conf, 追加以下内容
-
soft nofile 65536
-
hard nofile 65536
-
soft nproc 4096
-
hard nproc 4096
2.vi
/etc/security/limits.d/20-nproc.conf追加以下内容
esUser soft nproc 4096
3.vi /etc/sysctl.conf 追加以下内容
vm.max_map_count=655360
保存后,执行:
sysctl -p
再次切换到
/root/elasticsearch/elasticsearch-6.4.0/bin目录下,输入./elasticsearch 即可启动成功。如还遇到错误如下
ava.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
在elasticsearch.yml 添加
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
即可解决