Linux下安装ElasticSearch5.6.x 搜索引擎

第一步:环境

linux 系统 Java 1.8.0_151  elasticsearch-5.6.1

JDK的下载可以去官网上直接下载,再次声明一下不要下载最新版本 JAVA 9 版本本人在次已经踩过坑了

linux jdk 具体安装方式请参照 Linux yum 方式安装jdk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.zip

因为版本的不同安装head插件的时候安装步骤不同;好像是从5.0 以后的版本安装head 插件的步骤就不一样了;下面会详细介绍。

本人下载地址是在opt目录下,所以以下操作都在该目录下进行 进入/opt/下解压 unzip elasticsearch-5.6.1.zip

得到如下图片

第二步:安装配置

直接启动 如果要外网访问需要关闭防火墙或者是添加策略 service firewalld stop

[root@vmnode1 elasticsearch-5.6.1]# cd bin/
[root@vmnode1 elasticsearch-5.6.1]# ./elasticsearch //后台启动方法加上 -d 目前先看错误信息,
使用ps -ef | grep elasticsearch 能查看后台启动的elasticsearch 进程,目前用不到


如果出现这个说明启动成功,如果想要杀掉进程 kill -9 8445【kill -9 表示强制杀死某个进程】

如果现在直接启动,由于elasticsearch默认配置的内存是2G,可能会出现以下错误

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

这种属于内存不足的情况,进入到config目录

[root@vmnode1 config]# vim jvm.options
-Xms2g 变成这样--------------> -Xms512m 
-Xmx2g 变成这样--------------> -Xms512m


如果这时启动还是会报错,

[2017-01-17T21:54:48,798][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.1.2.jar:5.1.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.2.jar:5.1.2]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.2.jar:5.1.2]
        ... 6 more

这个错误的原因是elasticsearch不允许使用root启动,因此我们要解决这个问题需要新建一个用户来启动elsearch
【解释下面的命令:
创建用户组elsearch
创建用户elsearch 属于elsearch 组
进入到你安装elasticsearch的目录下
把elasticsearch-5.5.0/ 授权给用户elsearch
切换elsearch用户 】

groupadd elsearch
useradd elsearch -g elsearch -p elsearch
chown -R elsearch:elsearch elasticsearch-5.6.1 //chown -R 同户名:用户组名 权限文件或文件夹,ps:我是赋予了整个文件夹权限
su elsearch

这时如果启动将会启动成功,但是在浏览器上访问:你的服务器ip:9200,无法访问,查看阿里云服务器安全组是否开启端口号,如果没有开启,先开启,之后还是无法访问的话
进入config目录,修改elasticsearch.yml
#network.host: 192.168.0.1 改成 network.host: 0.0.0.0

再次通过新建立的用户启动会出现以下错误

此处有两个错误,第一个错误

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[elsearch@vmnode2 bin]# su root//进入root用户,需要输入密码
[root@vmnode2 bin]# vim /etc/security/limits.conf 
//修改/etc/security/limits.conf配置文件,添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

第二个错误

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
//修改配置文件/etc/sysctl.conf,修改内容如下:
[root@vmnode2 bin]# vim /etc/sysctl.conf
vm.max_map_count = 655360

//修改/etc/security/limits.d/20-nproc.conf配置文件,修改内容如下:ps:有可能在这个文件夹下是别的前缀 
[root@vmnode2 bin]# vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096 -----------------> 改为 * soft nproc 2048 //有可能前面是1024,但是做同样修改

修改完之后一定要执行

sysctl -p

切换回我们创建的用户启动 elasticsearch 就会发现启动成功,以下几个命令将会启动用到

service firewalld stop //用ip:9200方式访问需要关闭防火墙,或者增加策略
./elasticsearch -d //进入你的elasticsearch 文件目录的bin下执行  -d表示后台运行
ps -ef | grep elasticsearch //查看elasticsearch 后台进程
kill -9 8445  //【kill -9 表示强制杀死某个进程】 

如果遇到system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk这种错误
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

第三步 安装head 插件 安装可视化管理窗口

1. 下载head安装包

下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip 这是接从git 上下载下来 ,然后上传到虚拟机上的;由于head 插件不能放在elasticsearch-5.6.1文件夹里,head 插件需要单独放,单独去执行;

执行head 插件,需要node.js 的支持,所以,下面先安装一node.js

安装教程CentOS7中安装Node.js长期维护版(LTS)有详细的安装步骤

回到root用户,在同一文件夹下解压, 所 以在elasticsearch-5.6.1 同级目录下解压了 head 插件;解压出来的文件名字,如图
[root@vmnode2 opt]# unzip elasticsearch-head-master.zip


注意!这里需要进入到 elasticsearch-head-master安装grunt ,由于head 插件的执行文件是有grunt 命令来执行的,所以这个命令必须安装

安装完成之后 执行 npm install
grunt的运行需要安装脚手架

修改配置文件,cd 进入elasticsearch-head-master 文件夹下,执行命令vim Gruntfile.js文件:增加hostname属性,设置为*;如图:ps:在最后


进入修改 vim _site/app.js 文件:修改head的连接地址:,如图所示:

我们需要切换到我们创建的用户去启动

[elsearch@vmnode2 elasticsearch-head-master]$  grunt server & //执行此命令启动


通过ip:9100访问, 涉及到的问题,在网页上无法正常访问;查看防火墙是否关闭
在这里插入图片描述
看到上面的出现的健康值了吗,说明的连接还是有问题的,

决方案是修改 cd 命令进入到elasticsearch-5.6.3 /config 文件中 vi elasticsearch.yml 文件下添加 :
http.cors.enabled: true
http.cors.allow-origin: "*"
然后重启我们的 elasticsearch


这样就行了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43876684/article/details/87875306