blyang 你长的很好看啊~
ElasticSearch 集群安装和配置
发表于: | 分类: Application | 评论:975 | 阅读: 139462

ElasticSearch是一个基于Apache Lucene的分布式搜索引擎,具备REST API风格、高可用、面向文档等风格,集群高度可扩展。著名的Github就是使用ES来实现代码搜索功能。



1. ElasticSearch介绍


集群 : 一个集群对应唯一的集群名,ES服务启动时,各个机器根据各自的集群名选择加入的集群。集群中的Master的选举和管理由ES自行完成,用户只需定义集群名即可。如上图,四台机器组成一个集群,其中175表示主节点。

节点: 集群中的每一台机器都是一个节点,每个节点都有单独的IP和节点名,便于后续管理。

索引: ES的索引可以看成是数据库的表结构,它是一类文档的集合。如上图,mainPost2017表示一个索引。

文档: 集群中的每一条数据都称为一个文档,文档格式为json。

分片: ES的每一个分片代表一个磁盘存储单位,用来完成存储过程。如上图,共有五个分片,每个分片都有一主一从。ES集群默认是五个分片,每个分片都有一主一从两个副本,当然这种配置是可以修改的。通过分片可以将数据均匀的分摊到各个节点上,降低对IO的压力。同时多个分片可以使得查询的速度增加,提高搜索效率。通过主备的模式,提高系统稳定性,降低数据丢失的风险。需要注意的是,分片的数量只能在创建的时候指定,不可以在后期修改。


2. ElasticSearch安装和配置

ES的安装过程很简单,下载地址为:
https://www.elastic.co/downloads/elasticsearch,这里把整个安装步骤写的很清楚,如下图
请输入图片描述

我用的版本是2.3.4, 安装和配置的基本步骤是:

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-2.3.4.tar.gz
sudo tar -zxf elasticsearch-2.3.4.tar.gz -C /usr/local
cd /usr/local
sudo chown -R user:user elasticsearch-2.3.4
cd elasticsearch-2.3-4
cd config
sudo vi elasticsearch.yml

这几条语句实现了ES的下载和解压。值得注意的是,ES不支持root用户运行,所以要把归属的用户分组改一下,把 user:user换成自己机器上的用户,当然,如果没有的话请增加用户,不详述。然后开始修改ES的配置文件,也就是elasticsearch.yml文件,如下。

# ---------------------------------- Cluster -----------------------------------
cluster.name: ES_Cluster_Name #集群名称
# ------------------------------------ Node ------------------------------------
node.name: node-10.20.30.177 #当前节点名称,一般设为IP
# ----------------------------------- Paths ------------------------------------
path.data: /vdb/data/elasticsearch #数据存储路径,切记放在数据盘,不要放在系统盘
path.logs: /vdb/data/elasticsearchLog #日志存储路径,同理,放数据盘
# ---------------------------------- Network -----------------------------------
network.host: 10.20.30.177 #网络IP地址
network.publish_host: 10.205.103.177
http.port: 9200 #http端口号,用于外部访问
transport.tcp.port: 9300 #TCP端口号,用于集群间数据互通
# --------------------------------- Discovery 配置集群 ----------------------------------
discovery.zen.ping.multicast.enabled: true
discovery.zen.ping.unicast.hosts: ["10.20.30.175:9300","10.20.30.176:9300", "10.20.30.177:9300","10.20.30.178:9300"]
discovery.zen.minimum_master_nodes: 1

# --------------------------------- Script 配置此项才能保证查询语言支持Scipt-----------------------------------
script.inline: on
script.indexed: on

配置完成之后,保存即可,然后就是启动啦。启动之前要注意一下,由于这里的数据存储路径和日志存储路径是自定义的,要在对应位置mkdir新建文件夹,新建之后修改文件夹归属分组,保证其和ES的分组一致。

启动的方法比较简单,直接在ES目录下执行以下语句即可:

bin/elasticsearch 
当然,如果要保持程序运行状态,请执行
nohup bin/elasticsearch

执行运行程序之后,使用浏览器访问对应机器的9200端口,查看是否启动成功,若成功,有下面的状态信息:

请输入图片描述

当然,若想要得到如上图1的展示效果,可以在ES中安装插件,在ES安装目录下,执行以下语句用来安装插件:

bin/plugin install mobz/elasticsearch-head

当装完毕之后访问对应IP下的域名 http://ip:9200/_plugin/head/ 即可。
当然,ES还有其他插件,有需求的请自行寻找,安装。

评论已关闭

TOP