环境:
CentOS 7.x
JDK 1.8
ElasticSearch 6.2
安装步骤:
1.配置JDK
1)使用tar -xvf
命令解压jdk压缩包
2)配置环境变量
在/etc/profile
中添加以下属性
export JAVA_HOME=/usr/local/jdk1.8.0_101
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
配置完成后测试一下,java -version
,如下图,成功。
2.安装ElasticSearch
去ES官网下载ES安装包 https://www.elastic.co/downloads/elasticsearch 最新版是6.5.3,本次安装使用的 是6.2.4版本
1)解压ES安装包
使用 tar -zxvf
命令解压安装
2)启动ES
启动ES:./elasticsearch
,但报错
提示运行时异常,can not run elasticsearch as root ,
也就是说不能用root用户来启动,
解决方式有两种,一个是修改bin/elasticsearch
,加上ES_JAVA_OPTS属性:ES_JAVA_OPTS=-Des.insecure.allow.root=true
;另一种是运行时加上 -Des.insecure.allow.root=true
我采用第二种,再启动一下,只不过加上上边的属性
结果还是报错,这次报错是说
D is not a recognized option
3)创建用户
那么对于这个异常,为了安全考虑,我们最好为此创建一个新的用户,来执行启动关闭。
因此,我们先创建一个用户组
groupadd esgroup
然后创建一个用户
useradd esuser -g esgroup -p 123456
然后使用chown命令来让这个文件夹属于这个用户
chown -R esuser:esgroup elasticsearch-6.2.4
ok,我们切换用户,用这个新的用户启动es
4)测试
看到了started,我们就正常启动起来了,有几个警告,但没有错了。
启动起来之后,我们就要测试一下是不是正常。
我们都知道ES支持Restful API的,所以说,我们可以使用curl命令跑一下。
curl 127.0.0.1:9200
如果说能看到上面的JSON数据,那么就是说ES正常启动起来了。
5)远程访问
但在实际运行中,我们还需要实现ES的远程访问。
使用kill 命令停止ES服务
然后进入到 config/elasticsearch.yml
文件中
修改network.host 和 http.port
把这个配置文件修改之后,重新启动。
结果,启动又失败了。首先,我们需要进入到/etc/security/limits.conf
文件中加入四项
esuser soft nofile 65536
esuser hard nofile 65536
esuser soft nproc 4096
esuser soft nproc 4096
你的用户名叫什么,第一列就写什么
其次,进入到/etc/security/limits.d/20-nproc.conf
中,
然后,把‘*‘改成我们的用户,如果最后一行比4096小,需要改到至少4096
最后
vi /etc/sysctl.conf
vm.max_map_count=655360
执行以下命令生效:sysctl -p
关闭防火墙:systemctl stop firewalld.service
再次启动,在windows下显示,成功!!!