2019年6月8日
目录
官网:
https://www.elastic.co/cn/ ;从官网下载压缩包并解压 。(本人使用的是7.0.1版本的es)
解压后文件结构:
1、文件结构
2、文件结构介绍
类型 | 描述 | 默认位置 | 设置 |
home | es安装主目录 |
| path.home |
bin | 二进制脚本包含启动节点的elasticsearch | {path.home}/bin |
|
conf | 配置文件包含elasticsearch.yml | {path.home}/config | path.conf |
data | 在节点上申请的每个index/shard的数据文件的位置。可容纳多个位置 | {path.home}/data | path.data |
logs | 日志文件位置 | {path.home}/logs | path.logs |
plugins | 插件文件位置。每个插件将包含在一个子目录中。 | {path.home}/plugins | path.plugins |
repo | 共享文件系统库位置。可以容纳多个位置。文件系统库可以放在这里指定的任何目录的任何子目录中。 | 没有配置 | path.repo |
script | 脚本文件的位置 | {path.conf}/scripts | path.scripts |
3、进入lib目录
很多jar包,因为elasticsearch就是用java写的。
仔细观察,发现很多以“lucene”开头的jar包,它是东东捏?
- ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
配置文件介绍
配置文件
-
vim /etc/elasticsearch/elasticsearch.yml
配置项
cluster.name: es #集群名称
path.data: /data/elk/data #数据路径
path.logs: /data/elk/logs #日志路径
bootstrap.mlockall: true #设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。
network.host: 0.0.0.0 #设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
http.port: 9200 #设置节点间交互的tcp端口,默认是9300。
discovery.zen.ping.unicast.hosts: ["192.168.2.215", "host2"] #
启动FAQ
启动elasticsearch时我就碰到了很多莫名其妙的问题,查了很多资料才一步步填完坑,在此做个总结。
1、启动命令
直接执行elasticsearch.sh脚本,一般情况会有各种报错。继续看下文。
2、修改启动内存
修改elasticsearch的jvm配置文件,因为es默认启动时由机器分配1g的内存,所以内存吃紧的要改小一点;进入config,修改jvm.options;
配置完成,继续启动es。
3、启动权限不足
哦哦,原来elasticsearch用户没有该文件夹的权限,那么就要分配权限,执行命令:
-
chown -R 用户名:用户名 /usr/local/elasticsearch/
eg:sudo chown -R mmb:mmb /usr/local/install/es/
4、短暂启动成功...最后还是报错了
官网介绍,如果es启动成功,通过restful接口可以查看其状态,那么我试试。。
chrome访问:http://192.168.0.103:9200/ ,然而无法访问,看来是有问题了...(192.168.0.103是我本机的ip地址)。。
然后我发现启动日志最后还是报错了,可恶!
5、解决一些系统配置问题:sysctl.conf
在文件末尾添加配置信息:
- sudo vim /etc/sysctl.conf
继续启动。
6、解决一些系统配置问题:limits.conf
同样在文件末尾添加配置信息:
- sudo vim /etc/security/limits.conf
继续启动。
7、解决elasticsearch.yml 的配置问题:
【1】在 elasticsearch.yml 添加discovery.seed_hosts:
【2】把 elasticsearch.yml 的 bootstrap.memory_lock 改为 false
继续启动。
8、启动完成,restful测试
小结:
- 以上,就是我的本地部署elasticsearch的全过程,包括各种踩过的坑;发现新版本的es跟旧的版本es安装流程有些差异,主要是配置文件差别很大;另外,学习一个新技术时,别太害怕,多查查资料,多了解项目背景,慢慢熟悉就好。
可能用得到的文章推荐:
- https://blog.youkuaiyun.com/baoxifu/article/details/84424247
- https://blog.youkuaiyun.com/sinat_27747695/article/details/77433677
- https://blog.youkuaiyun.com/u014073556/article/details/80666393
- https://blog.youkuaiyun.com/HingCheung/article/details/77144574
- https://blog.youkuaiyun.com/wzf862187413/article/details/87888473