前言
在安装elasticsearch之前需要保证系统已经配置了java环境,而且由于6.5版本在jdk1.7版本下运行是会提示1.8所有安装的javajdk版本需要1.8以上。
步骤
(一)安装java
我们采用懒人一键安装形式:借用yum安装,而且此方法安装也少去配置系统环境。
1.查看centos自带的jdk是否已安装,并确保是否为1.8版本以上
命令行输入:
yum list installed|grep java
查看是否带有java,如果没有则啥都不输出。
如果没有或者版本低想卸载则:
命令行输入:
卸载jdk相关文件输入:yum -y remove java-1.*.*-openjdk*
卸载tzdata-java输入:yum -y remove tzdata-java.noarch
注:前面两个*号代表根据不同版本的jdk,第三个“*”表示java-1.*.*下的所有openjdk相关文件
2.查看yum库中的java安装包
输入:
yum -y list java* 或者 yum -y search java*
3.安装所有相关java程序
yum -y install java-1.8.0-openjdk*
如果无错误信息,证明安装成功。
4.查看安装的java版本信息
java -version 可查看java版本
javac 可查看java的编辑器命令用法
(二)安装elasticsearch
1.es的yum安装配置
添加es在yum的本地源
(1)下载并安装公共签名密钥
rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
(2)配置es的yum源
首先需要创建/etc/yum.repos.d/elasticsearch.repo
输入下面内容:
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
注:网上有的配置文件内容为:
[elasticsearch-5.x]
name = Elasticsearch repository for5.x packages
baseurl = http://packages.elastic.co/elasticsearch/5.x/centos
gpgcheck = 1
gpgkey = http://packages.elastic.co/GPG-KEY-elasticsearch
enabled = 1
但我用网上的配置内容,提示url不可用,所以使用了新的url。
2.安装elasticsearch
(1)更新yum的缓存
yum makecache
(2)安装ES
yum install elasticsearch
(3)添加到启动服务中
chkconfig --add elasticsearch
3.相关系统配置
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
“*”号代表所有非root用户文件数和进程数
注:一开始soft nproc输入的2048报数量太少,所以就提升为4096.
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
为:
* soft nproc 2048
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=262144
并执行:
sysctl -p
vi /etc/elasticsearch/elasticsearch.yml
#集群名(同一个集群,名称必须相同)
cluster.name: my-application
#服务节点名(每个服务节点不一样)
node.name: node-1
#数据存储路径
path.data: /data/elasticsearch/data
#服务日志路径
path.logs: /data/elasticsearch/logs
#服务ip地址
network.host: 0.0.0.0
#服务端口
http.port: 9200
默认路径:/etc/sysconfig/elasticsearch
#设置为可用内存的50%
ES_HEAP_SIZE = 1g
#因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#
4.启动elasticsearch
service elasticsearch start
查看启动状态:
service elasticsearch status
如果想查看具体的log信息:
cat /var/log/elasticsearch/elasticsearch.log
5.启动elasticsearch6.5启动错误解决
(1)
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
由于elasticsearch6.5默认分配jvm空间大小为1g,修改jvm空间分配:
vim /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g
修改为:
-Xms512m
-Xmx512m
(2)
max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
vim /etc/security/limits.d/90-nproc.conf
* soft nproc 1024
修改为
* soft nproc 2048
(3)
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vim /etc/sysctl.conf
追加:vm.max_map_count=262144
并执行命令:
sysctl -p
(4)
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
vi /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
(5)
ERROR: bootstrap checks failed
原因:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方法:
vi /etc/elasticsearch/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false