本节内容:
- 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。
[[email protected] local]# mkdir /usr/java [[email protected] local]# tar zxf jdk-8u73-linux-x64.gz -C /usr/java/
安装JDK8
3. 添加用户
Elasticsearch不能使用root用户去启动。
[[email protected] local]# groupadd -g 510 es [[email protected] local]# useradd -g 510 -u 510 es [[email protected] local]# echo "wisedu123" | passwd --stdin es &> /dev/null
添加Elasticsearch运行用户
用新创建的用户登录shell,配置PATH环境变量。
[[email protected] ~]$ 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 [[email protected] ~]$ source ~/.bashrc
配置环境变量
# mkdir /usr/local/elasticsearch # chown -R es.es elasticsearch
创建安装elasticsearch的目录
4. 下载安装elasticsearch
es用户登录shell,下载安装elasticsearch。
[[email protected] ~]$ cd /usr/local/elasticsearch/ [[email protected] elasticsearch]$ wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.3/elasticsearch-2.2.3.tar.gz [[email protected] elasticsearch]$ tar zxf elasticsearch-2.2.3.tar.gz [[email protected] elasticsearch]$ mv elasticsearch-2.2.1/* ./ [[email protected] elasticsearch]$ rm -rf elasticsearch-2.2.1 [[email protected] elasticsearch]$ rm -f elasticsearch-2.2.1.tar.gz
下载安装elasticsearch
5. 配置elasticsearch
(1)配置elasticsearch 堆内存,编辑bin/elasticsearch.in.sh
[[email protected] elasticsearch]$ vim bin/elasticsearch.in.sh
将参数:ES_MIN_MEM、ES_MAX_MEM设置为当前物理机内存的一半(注意单位,并保证两个值相等)
(2)配置Elasticsearch集群名称以及节点名称、是否为主节点、path data等信息
[[email protected] 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: