centos7安装 Elasticsearch
Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch
Elasticsearch具备以下特点:
- 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
1.下载解压
[[email protected] leyou]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
[[email protected] leyou]# tar -zxvf elasticsearch-6.2.4.tar.gz
注:elasticsearch需要jdk8以上的环境
注:出于安全考虑,elasticsearch默认不允许以root账号运行。故需要创建一个用户
2.创建用户
centos7下查看已有的用户和用户组
- 查看用户:cut -d : -f 1 /etc/passwd
- 查看用户组:cut -d : -f 1 /etc/group
- 删除xxx这个用户:userdel -r xxx
2.1创建elasticsearch用户组
[[email protected] leyou]# groupadd elasticsearch
2.2创建用户 leyou 并设置密码为leyou
[[email protected] leyou]# useradd leyou
执行创建用户后,系统可能显示-----useradd:警告:此主目录已经存在。不从 skel 目录里向其中复制任何文件。不必管它
[[email protected] leyou]# passwd leyou
2.3把创建的用户leyou添加到elasticsearch用户组
[[email protected] ~]# usermod -G elasticsearch leyou
2.4设置用户leyou权限
[[email protected] ~]# visudo
打开文件后,找到 root ALL=(ALL) ALL 这一行,在这一行下面添加 leyou用户:
leyou ALL=(ALL) ALL
添加后,切换到leyou用户下。
[[email protected] ~]# su leyou
[ [email protected] ~]#
创建用户后,修改elasticsearch文件权限
[[email protected] leyou]# chown leyou:elasticsearch elasticsearch-6.2.4/ -R
leyou:elasticsearch leyou是用户,elasticsearch是组
执行后,能看到,elasticsearch-6.2.4 用户处变成了leyou。
drwxr-xr-x. 8 leyou elasticsearch 143 4月 13 2018 elasticsearch-6.2.4
drwxr-xr-x. 5 root root 114 8月 18 23:53 fdfs
3.修改配置
进入解压后的elasticsearch-6.2.4目录中的 config目录,需要修改两个配置文件 elasticsearch.yml 和 jvm.options
Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数
[[email protected] config]# vim jvm.options
内容中默认配置:
‐Xms1g
‐Xmx1g内存占用太多了,我们调小一些:
‐Xms256m
‐Xmx256m这个就可以了,然后修改另一个
[[email protected] config]# vim elasticsearch.yml
找到以下被注释的内容
#path.data: /path/to/data # 数据目录位置
#path.logs: /path/to/logs # 日志目录位置
打开注释,并修改路径,我是修改成elasticsearch安装目录下 data 和 logs,修改后的:
path.data: /home/leyou/elasticsearch/data
path.logs: /home/leyou/elasticsearch/logs
修改绑定的ip:
打开注释 #network.host: 192.168.10.1 修改成 network.host: 0.0.0.0
默认只允许本机访问,修改为0.0.0.0后则可以远程访问
完成这三处修改,这个配置文件也就改好了。
修改elasticsearch.yml 配置文件时,path.data:和 path.logs: 我修改成elasticsearch安装目录下 data 和 logs目录。
默认elasticsearch安装目录下 是没有data目录的,有logs,所以手动创建个 data目录
[[email protected] elasticsearch]# mkdir data
创建目录后,再修改下当前目录的权限,把data目录权限也改成leyou用户的。下面命令中 -R前 还有个点
[[email protected] elasticsearch]# chown leyou:elasticsearch . -R
4.运行
运行时,[[email protected] elasticsearch] 必须切换到用户下[[email protected] elasticsearch]
第一个错误:
2019-08-22 03:16:26,465 main ERROR RollingFileManager
(/home/leyou/elasticsearch/logs/elasticsearch.log)
java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够)
java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够)
原因:这是权限不足的问题。
解决方法:切换到root 用户 切换到elasticsearch安装目录 给elasticsearch用户授权即可
第二个错误:
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] 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]