首页 > 代码库 > 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/
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
用新创建的用户登录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
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
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介绍及安装部署