前沿
阿里云 linux CentOS 6.9 系统 内存1g(es 安装默认内存大小需要1g 内存不够安装遇到问题,后面再说)
安装步骤
1,下载安装包 我的下载目录是 cd /usr/local/src/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
2,创建应用程序目录
mkdir -p /usr/local/src/es
3,解压安装包
tar -zxf elasticsearch-6.2.2.tar.gz -C /usr/local/src/es
4,创建Elasticsearch用户和所在组
Elasticsearch默认是不允许root用户运行的 否则会报错
先创建product组,并指定组id为110(商品库用)
groupadd -g 110 product
创建es用户并指定所在组为product
useradd -g product es
查看是否创建成功
id es
5,更改解压的Elasticsearch应用所属用户及组
cd /usr/local/src/es/
# 更改目录及文件权限
chown -R es:product . (注意有个.)
ll 查看权限赋值是否成功
6,执行脚本添加可执行权限
cd elasticsearch-6.2.2 进入es文件夹下 ,对bin目录添加权限
chmod u+x bin/*
7,修改相关配置
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited(是配置更新成功 ,切换用户 才会生效 否则启动报错)
1,vim /etc/sysctl.conf # 尾部添加下面的配置
vm.max_map_count=655360 # 然后执行命令 sysctl -p
2,修改90-nproc.conf
vim /etc/security/limits.d/90-nproc.conf
# 修改成4096或者更大
3,修改elasticsearch.yml
bootstrap.memory_lock: false(修改)
bootstrap.system_call_filter: false (新增)
# 默认的只能本机访问,修改后就可以远程访问了
network.host: 0.0.0.0
# 集群名称 cluster.name: product
# 当前节点名称,这里配置为主机名
node.name:node-1
8 ,启动
bin/elasticsearch
started
[2018-09-23T10:25:34,750][INFO ][o.e.g.GatewayService ] [node-1] recovered [0] indices into cluster_state
最后两行看到这个启动成功
curl 127.0.0.1:9200
{
"name" : "node-1",
"cluster_name" : "bigdata",
"cluster_uuid" : "DiJDT2qwTUejFEW_Pxe6ZA",
"version" : {
"number" : "6.2.2",
"build_hash" : "10b1edd",
"build_date" : "2018-02-16T19:01:30.685723Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
看到这个说明执行成功
总结遇到的坑:
1,es 默认内存是1g ,如果服务器内存不够 启动报错
修改es config文件下的jvm.options 配置
-Xms1g --->-Xms512m
-Xmx1g --->-Xmx512m
2,root 不能启动(don't run elasticsearch as root.),必须创建Elasticsearch用户和所在组 并且赋值 ,上面有说过
3,修改elasticsearch.yml 下bootstrap.system_call_filter: false 这个没有必须得新增(反正我的没有)
4,如果是阿里云服务器 配置安全组端口,即可从本地访问阿里云es