1.Elasticsearch简介
ElasticSearch是一个基于Lucene的搜索服务器。什么是Lucene? 就是一个jar包,里面包含了封装好的各种倒排索引,以及进行搜索的代码,包括各种算法。我们就用java开发的时候,引入lucene jar,然后基于lucene的api进行去进行开发就可以了。用lucene,我们就可以去将已有的数据建立索引,lucene会在本地磁盘上面,给我们组织索引的数据结构。另外,我们也可以用lucene提供的一些功能和api来针对磁盘上进行操作。ElasticSearch最大的好处就是解决实时问题。
2.Elasticsearch安装
由于各种问题,选择5.5.2版本,下载地址为:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
成功之后,进行安装
tar -zxvf elasticsearch-5.5.2.tar.gz
3.启动Elasticsearch
sh /usr/local/elasticsearch-5.5.2/bin/elasticsearch
启动失败报如下错误:
问题一:jdk 版本过低问题:
解决问题如下:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载版本后,上传到对应的目录;
rpm -ivh jdk-8u45-linux-x64.rpm
解压完成之后,jdk会安装在/usr/java/jdk1.8.0_45,在对应目录查看,如果存在,说明安装成功,修改环境变量。
vi /etc/profile
将对应的路径修改为最新的,最后将配置文件生效;
source /etc/profile
通过java -version 来查看jdk 最新的版本验证是否正确;
问题三: nested: AccessDeniedException[/usr/local/elasticsearch-5.5.2/config/elasticsearch.yml];
解决问题如下:
切换用户为root ,给用户 testuser 赋予权限
chown -R testuser:testuse /usr/local
问题四:
解决办法如下:
1>
max number of threads [1024] for user [*] is too low, increase to at least [2048]
修改 /etc/security/limits.d/90-nproc.conf
* soft nproc 1024
* soft nproc 2048
2>
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf配置文件
vm.max_map_count = 2621441
添加到文件最后,将配置文件生效。(如果启动有问题,请重新启动服务器)
sudo sysctl -p /etc/sysctl.conf
3>
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
修改/etc/security/limits.conf配置文件,添加如下两行代码:
* hard nofile 65536
* soft nofile 65536
问题五:修改Elasticsearch外网访问;
修改配置文件/usr/local/elasticsearch-6.0.0/config/elasticsearch.yml为本机ip地址
network.host : ip地址
http.post:9200
问题六: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.5系统下安装Elasticsearch,而Centos6不支持SecComp,再次检查
/usr/local/elasticsearch-6.0.0/config/elasticsearch.yml中bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决办法如下:
vi /usr/local/elasticsearch-6.0.0/config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
问题七:es启动浏览器无法访问:
一般出现在防火墙开启的问题上:
service iptables status
service iptables stop
问题八: 后台启动ES
sh /usr/local/elasticsearch-5.5.2/bin/elasticsearch -d
如有问题,请留言。。。