安装准备:
安装Elasticsearch唯一的要求是安装官方新版的Java,包括对应的Jdk。需要jdk1.8以上。
安装Elasticsearch
首先到官网下载最新版本的Elasticsearch压缩包。
可以使用命令,注意将最新的可用的下载链接填入:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.zip
unzip elasticsearch-5.4.1.zip
cd elasticsearch-5.4.1
运行Elasticsearch
Elasticsearch已经准备就绪,执行以下命令可在前台启动:
./bin/elasticsearch
如果想在后台以守护进程模式运行,添加-d参数。
如果以root用户启动,正常情况下这里会报错
在root账户下面调用启动命令出错的解决方案:
为什么会这样呢?这是因为处于系统安装考虑的设置,由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,不允许root账号启动,所以建议给Elasticsearch单独创建一个用户来运行Elasticsearch。
创建elasticsearch用户组以及elasticsearch用户,命令如下:
groupadd elasticsearch
useradd elasticsearch(用户名) -g elasticsearch(组名) -p elasticsearch(密码)更改Elasticsearch文件夹以及内部文件的所属用户以及组为elasticsearch,修改完成之后如图所示:
chown -R elasticsearch:elasticsearch elasticsearch- 切换到elasticsearch用户下,再次执行启动命令
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [51200] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决方案:
第一个问题解决方法:
切换到root用户修改
vim /etc/security/limits.conf
在最后面追加下面内容
es hard nofile 65536
es soft nofile 65536
修改后重新登录 es 用户,使用如下命令查看是否修改成功
ulimit -Hn
65536
第二个问题解决方法 提高vm.max_map_count 的大小
切换到root用户
vim /etc/sysctl.conf
在最后面追加下面内容
vm.max_map_count=262144
使用 sysctl -p 查看修改后的结果
sysctl -p
第三个问题解决方法:在es配置中加入下面命令即可
bootstrap.system_call_filter: false
打开另一个终端进行测试:
curl ‘http://localhost:9200/?pretty’
你能看到以下返回信息:
{
"name": "vP19PMO",
"cluster_name": "elasticsearch",
"cluster_uuid": "IMKMfkMsSrKODIYg5gxgeQ",
"version": {
"number": "5.0.2",
"build_hash": "f6b4951",
"build_date": "2016-11-24T10:07:18.101Z",
"build_snapshot": false,
"lucene_version": "6.2.1"
},
"tagline": "You Know, for Search"
}
这说明你的ELasticsearch集群已经启动并且正常运行。