centos7下安装ElasticSearch 需要先安装jdk1.8以上
注意:出于安全考虑,elasticsearch默认不允许以root账号运行。(我创建的是czw账号和czw密码的用户)
创建一个用户:
useradd ping
设置密码:
passwd ping
上传安装包,并解压:
更改elasticsearch所属用户和用户组 chown -R ping:ping elasticsearch(授权之前把data和logs文件配置好,以免等下需要再次授权日志和存储节点文件权限)
切换用户:
su - ping
进入elasticsearch的目录
cd elasticsearch
需要修改的配置文件有两个:elasticsearch.yml与jvm.options
jvm.options
Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。
编辑jvm.options: vi jvm.options 内存占用太多了,我们调小一些
-Xms512m
-Xmx512m
elasticsearch.yml 修改数据和日志目录:vi elasticsearch.yml
保存退出并创建data目录
配置远程访问es,默认只允许本机访问,修改elasticsearch.yml为0.0.0.0后则可以远程访问
配置es的集群节点文件,lz只是一台机器,并且为默认名称,所以配置为elasticsearch,如果多台,使用双引号引起来后中间用逗号隔开:
cluster.initial_master_nodes: ["elasticsearch"]
运行
进入elasticsearch/bin目录,可以看到下面的执行文件:
然后输入命令:
普通启动
./elasticsearch
后台方式启动
./elasticsearch -d
发现报错了,启动失败。
错误1:文件权限不足
我们用的是leyou用户,而不是root,所以文件权限不足。
错误2:线程数不够
首先用root用户登录。
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
错误3:进程虚拟内存
vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件
vi /etc/sysctl.conf
添加下面内容:
vm.max_map_count=655360
然后执行命令:
sysctl -p
切换用户来启动elasticsearch
如果还是报相同的错误:重启终端窗口
注:不能使用root账号启动,并且需要授权elasticsearch下所有目录权限给对应账号,使用后台启动输入后没日志打印,等待十秒钟后可以查看后台进程可以查看到对应端口已经启动。
这个报错:failed to obtain node locks, tried [[/usr/local/elasticsearch-6.3.2/data/my-application]] with lock,代表项目已经被启动了或者在启动中
阿里云ecs的安全组开启9200和9300端口,若开起来防火墙也要记得开端口
成功启动后
可以看到绑定了两个端口:
9300:集群节点间通讯接口
9200:客户端访问接口
我们在浏览器中访问:http://阿里云服务器ip:9200
ik的github下载地址:medcl/elasticsearch-analysis-ik
每个版本都有三个资源包,下载第一个可以直接使用的
Git上下载基本是一件不可能的事,楼主下载了n次,哪怕只有4.3M,如图
如果大家无法下载ik可以使用lz的下载链接,需要一点积分,一件把整套的资源包都打包好,辛苦整理的望理解,如果需要但没有积分的话可以给我发邮箱,我私发你们,但请不要道德绑架([email protected])
包含elasticsearch+ik+elasticsearch-head-master的各个版本资源
在Windows上将ik的zip压缩包解压后直接上传至es的plugins目录的ik-analyzer下,重启即可(使用非root用户启动),共8个文件(不用ik7.3.2.tar.gz格式的,还需打包编译才能用)