怎样在 Centos 6.8 中安装 Elasticsearch 5.2

1. 安装 Java

Elasticsearch 支持 Oracle JDK 和 OpenJDK,最低要求版本为 Java 8。

首先查看是否已安装了 Java:

# java -version

如果出现下面提示则说明系统未安装 Java:

-bash: java: command not found

如果系统已安装 Java 但版本低于 8,则需要升级。

本文假设系统未安装,且以 Oracle JDK 为例:

创建目录 /usr/java,下载并解压 JDK:

# cd /usr
# mkdir java
# cd java #
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz" # tar xzf jdk-8u121-linux-x64.tar.gz

现在 /usr/java 下会出现 jdk1.8.0_121 目录。接下来设置系统环境变量。

# cd /etc/profile.d/

使用 vim 创建 java.sh 文件并写入以下配置:

#!/bin/bash
JAVA_HOME=/usr/java/jdk1.8.0_121/  
PATH=$JAVA_HOME/bin:$PATH  
export PATH JAVA_HOME  
export CLASSPATH=.  

保存并关闭 java.sh 文件,然后为其增加执行权限:

# chmod +x /etc/profile.d/java.sh

最后,使 java.sh 立即生效:

# source /etc/profile.d/java.sh

到此为止,Java 就已经安装好了,可以运行 java -version 命令查看版本:

java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

 

2. 安装 Elasticsearch

导入 PGP Key

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

在 /etc/yum.repos.d/ 下创建 elasticsearch.repo 文件,并写入以下内容:

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

保存并退出 elasticsearch.repo 文件,然后使用 yum 安装 elasticsearch:

# yum install elasticsearch

 

3. 运行 Elasticsearch

安装完成后,系统并未自动启动 Elasticsearch。启动 Elasticsearch 的方式依赖于系统是使用 SysV init 还是 systemd 。使用以下命令可以查看:

# ps -p 1

CentOS 6.8 使用的是 SysV init。

接下来,配置 Elasticsearch 在系统启动时自动启动:

# chkconfig --add elasticsearch

现在通过 service 命令运行 elasticsearch

service elasticsearch start

可能会出现以下错误:

which: no java in (/sbin:/usr/sbin:/bin:/usr/bin)
Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

意思是未安装 java ,但系统是已经安装了的。根据网上资料,还需要修改 /etc/sysconfig/elasticsearch  文件中的 JAVA_HOME,然后就可以启动了。

执行以下命令:

# curl -XGET 'http://localhost:9200/'

如果出来下面结果,说明 Elasticsearch 已经运行起来了。

{
  "name" : "...",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "...",
  "version" : {
    "number" : "5.2.1",
    "build_hash" : "...",
    "build_date" : "2017-02-09T22:05:32.386Z",
    "build_snapshot" : false,
    "lucene_version" : "6.4.1"
  },
  "tagline" : "You Know, for Search"
}

然而现在是无法通过 IP 访问 Elasticsearch 的,即请求 'http://IP:9200' 会报错。还需要修改 /etc/elasticsearch/elasticsearch.yml 中的 network.host 配置:

network.host 0.0.0.0

重启 Elasticsearch 就可以通过 IP 访问了。如果发现启动有问题,请参考下面的错误处理。

 

4. 启动错误处理

错误1:

ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因:

Centos 6.8 不支持SecComp,Elasticsearch 默认bootstrap.system_call_filter=true 导致失败。

解决办法:
在 elasticsearch.yml 中的 Memory 段设置
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

 

错误2:

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [Hadoop] is too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65535] is too low, increase to at least [262144]

解决办法:

(1) 修改 /etc/security/limits.conf 中的配置如下

* soft nofile 65536
* hard nofile 65536

(2) 修改 /etc/security/limits.d/90-nproc.conf 中的配置如下

soft nproc 2048

(3) 修改 /etc/sysctl.conf,添加下面配置

添加下面配置:

vm.max_map_count=655360

(4) 执行命令

sysctl -p

posted on 2017-02-20 15:22  J九日  阅读(201)  评论(0编辑  收藏  举报