首页 > 代码库 > Elasticsearch介绍及安装部署

Elasticsearch介绍及安装部署

本节内容:

  • Elasticsearch介绍
  • Elasticsearch集群安装部署
  • Elasticsearch优化
  • 安装插件:中文分词器ik

 

一、Elasticsearch介绍

Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,加之github等大型的站点也采用 Elasticsearch作为其搜索服务。

 

二、Elasticsearch集群安装部署

1. 环境信息

主机名 操作系统版本 IP地址 安装软件
log1  CentOS 7.0 114.55.29.86 JDK1.7、elasticsearch-2.2.3
log2 CentOS 7.0 114.55.29.241 JDK1.7、elasticsearch-2.2.3
log3 CentOS 7.0 114.55.253.15 JDK1.7、elasticsearch-2.2.3

 

 

 

 

 

2. 安装JDK1.8

版本是Elasticsearch 2.2.3,官方建议jdk是1.8。

3台机器都需要安装jdk1.8,添加新用户es。

技术分享
[root@log1 local]# mkdir /usr/java
[root@log1 local]# tar zxf jdk-8u73-linux-x64.gz -C /usr/java/
安装JDK8

 

3. 添加用户

Elasticsearch不能使用root用户去启动。

技术分享
[root@log1 local]# groupadd -g 510 es
[root@log1 local]# useradd -g 510 -u 510 es
[root@log1 local]# echo "wisedu123" | passwd --stdin es &> /dev/null
添加Elasticsearch运行用户

用新创建的用户登录shell,配置PATH环境变量。

技术分享
[es@log1 ~]$ vim ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_73
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[es@log1 ~]$ source ~/.bashrc
配置环境变量
技术分享
# mkdir /usr/local/elasticsearch
# chown -R es.es elasticsearch
创建安装elasticsearch的目录

 

4. 下载安装elasticsearch

es用户登录shell,下载安装elasticsearch。

技术分享
[es@log1 ~]$ cd /usr/local/elasticsearch/
[es@log1 elasticsearch]$ wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.3/elasticsearch-2.2.3.tar.gz 
[es@log1 elasticsearch]$ tar zxf elasticsearch-2.2.3.tar.gz 
[es@log1 elasticsearch]$ mv elasticsearch-2.2.1/* ./
[es@log1 elasticsearch]$ rm -rf elasticsearch-2.2.1
[es@log1 elasticsearch]$ rm -f elasticsearch-2.2.1.tar.gz
下载安装elasticsearch

 

5. 配置elasticsearch

(1)配置elasticsearch 堆内存,编辑bin/elasticsearch.in.sh

[es@log1 elasticsearch]$ vim bin/elasticsearch.in.sh

将参数:ES_MIN_MEM、ES_MAX_MEM设置为当前物理机内存的一半(注意单位,并保证两个值相等)

技术分享

 

(2)配置Elasticsearch集群名称以及节点名称、是否为主节点、path data等信息

[es@log1 elasticsearch]$ vim config/elasticsearch.yml

技术分享

技术分享

 

(3)配置保护Elasticsearch使用的内存防止其被swapped

在memory section下,启用配置:bootstrap.mlockall: true

技术分享

 

(4)配置network host

技术分享

【注意】:另外,请在Network段在多加两个配置,内容如下:

network.bind_host: 114.55.29.86
# Set the address other nodes will use to communicate with this node. If not 
# set, it is automatically derived. It must point to an actual IP address.
network.publish_host: 114.55.29.86

技术分享

如果不加上如上的配置,程序在连接时会报错:

^A[2016-03-28 16:18:08.791] [ERROR] [godseye] [godseye] [RMI TCP Connection(2)-127.0.0.1] [com.wisedu.godseye.search.util.SearchUtil] [buildIndex:70] NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{114.55.29.86}{114.55.29.86:9300}]]

 

(5)配置Elasticsearch的自动发现机制

技术分享

 

另外两台也是做如上的安装配置。只不过在配置中需要修改下面几处。

技术分享

技术分享

 

三、Elasticsearch优化

1. 检验配置中的bootstrap.mlockall: true是否生效

启动Elasticsearch:

 

Elasticsearch介绍及安装部署