四、Elasticsearch 分布式搜索引擎 Linux平台 安装使用

Elasticsearch安装与启动

下载Elasticsearch软件包

 

这里在多说一句,Elasticsearch提供了两种安装方式:

 

  1. 一种是根据发行版,通过Elasticsearch官方提供的repositories安装,具体安装方法情参考官方指南。
  2. 另一种是通过下载软件包在以解压的方式安装。

 

不管使用那种安装方式,完全取决你自己的喜好与具体需求,由于第二种方式在配置上更加的灵活,所以这里主要介绍第二种方式的安装与配置。

 

首先打开 Elasticsearch的官方网站 去下载最新的版本,或者直接从Github上下载也是可行的,我这里下载的版本是 elasticsearch-1.4.4.tar.gz 包,其实Elasticesearch的安装很简单,因为Elasticsearch完全是零配置拆箱即用,这对于新手来说绝对受欢迎。

 

安装Java环境

由于Elasticsearch是java开发的,要运行在java环境,因此在使用前需要先安装jdk。

首先下载rpm包,我下载的是jdk-7u67-linux-x64.rpm,下载好后,执行:

 

$ rpm -ivh jdk-7u67-linux-x64.rpm

 

关于安装的更多内容可以参考官方文档

 

安装Elasticsearch

//下载Elasticsearch,并解压到指定的/opt目录下
$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.4.tar.gz -P /opt

$ cd /opt

//解压elasticsearch
$ tar zxvf elasticsearch-1.4.4.tar.gz

解压完毕就算是安装了,这也就是上面提到的零配置拆箱即用。

 

启动Elasticsearch

 

启动Elasticsearch也是非常简单的,只需要执行安装目录下bin/elasticsearch即可启动服务。

从Elasticsearch 1.0.0版本开始,它启动机制有一些变化,它默认是在前台运行,我们可以加上两个参数:

-d 参数来表示在后台运行

-p 参数表示Elasticsearch的服务进程pid文件,该参数后面接文件名,保存当前Elasticsearch进程的pid,方便关闭进程。

 

例如这样启动:

 

//启动elasticsearch服务
$ bin/elasticsearch -d -p /tmp/elasticsearch.pid

//关闭elasticsearch服务进程文件
$ kill `cat /tmp/elasticsearch.pid`

 

此外Elasticsearch还有另外一种启动方式,可以通过一个serviceWrapper的插件来启动服务,serviceWrapper插件能更加方便地控制 Elasticsearch的启动、关闭以及重启,下面我们就来介绍是如何安装Elasticsearch插件。

 

安装Elasticsearch插件serviceWrapper

 

Elasticsearch官方和社区都给开发使用者提供了很多丰富的插件,用于将集群和节点的状态可视化。小编推荐安装的插件有:elasticsearch-head, marvel,bigdesk,servicewrapper

 

// elasticsearch-head的安装与浏览
# bin/plugin --install mobz/elasticsearch-head
http://localhost:9200/_plugin/head/

// marvel的安装与浏览
# bin/plugin -i elasticsearch/marvel/latest
http://localhost:9200/_plugin/marvel

// bigdesk的安装与浏览
# bin/plugin --install lukas-vlcek/bigdesk
http://localhost:9200/_plugin/bigdesk/

 

介绍servicewrapper的使用

首先要下载serviceWrapper插件,解压后将解压后的service文件夹放到ElasticSearch安装目录下的bin目录下。

 

$ wget https://github.com/elasticsearch/elasticsearch-servicewrapper/archive/master.zip -P /opt/app

$ cd /opt/app

$ unzip elasticsearch-servicewrapper-master -d ./

$ mv elasticsearch-servicewrapper-master/service elasticsearch-1.0.0/bin/

 

配置serviceWrapper

编辑 elasticsearch.conf 配置文件,主要是配置该文件的前两行:ES_HOME及ES_HEAP_SIZE

 

$ vim bin/service/elasticsearch.conf

set.default.ES_HOME=/data/app/elasticsearch-1.4.4
set.default.ES_HEAP_SIZE=2048

 

serviceWrapper插件用法

用法:bin/service/elasticsearch start stop restart install remove console condrestart status

启动elasticsearch服务,输入如下命令

 

$ bin/service/elasticsearch start

 

配置Elasticsearch服务

elasticsearch配置文件为{ES_HOME}/config目录下的elasticsearch.yml,该配置文件主要针对集群、节点、索引(分片和副本)以及持久化和集群发现机制等进行参数设置。这里只对一些常见的配置进行简单的说明和示例,配置文件的详细解释和说明会单独写一篇文章。

 

// 集群的名称,用于集群内节点的自动发现
cluster.name: es-test

// 节点的名称,标识一个节点
node.name: node100

// 可以被选为主节点,同时可以存储数据
node.master: true
node.data: true

//节点的分片和副本的数量
index.number_of_shards: 3
index.number_of_replicas: 1

// 配置文件、索引数据以及日志和插件等的目录,如果不存在,新建即可
path.conf: /data/elasticsearch-1.4.4/config
path.data: /data/elasticsearch-1.4.4/data
path.logs: /data/elasticsearch-1.4.4/logs
path.plugins: /data/elasticsearch-1.4.4/plugins

// 锁定内存,防止内存交换影响ES性能
bootstrap.mlockall: true

// 持久化策略,本次存储
gateway.type: local

// 启用单播,显式指定节点的发现,当节点不在同一网段,无法自动发现时,启动单播,指定要发现的节点列表
// 比如当前节点的ip为10.10.79.75,与另两个节点不在同一网段,使用单播机制
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.11.52.131:9300", "10.11.52.134:9300"]

 

Elasticsearch篇外话

如果想让Elasticsearch跑的欢畅,那就需要对 elasticsearch 做一些配置,下面就来简单介绍说明下:

 

  1. 添加系统用户search,用来启动elasticsearch服务
  2. 修改limits.conf,设置最大打开文件数和memlock限制
  3. swapoff 关闭swap交换分区,减少不必要的内存卸载
  4. 设置mlockall来锁定进程的物理内存地址,同样避免交换(swapped)来提高性能

更具上面的第2点修改limits.conf文件

 

vi /etc/security/limits.conf
search               soft      nofile          unlimited
search               hard     nofile          unlimited
search                 -       memlock      unlimited

 

更具上面的第3点修改serviceWrapper配置文件\bin\service\elasticsearch.conf,并设置Elasticsearch能够分配的JVM内存大小,建议MIN和MAX的值设置一样大,避免频繁的分配内存(默认单位MB),根据您服务器内存的大小,一般分配系统内存的60%左右。

 

set.default.ES_MIN_MEM=2012
set.default.ES_MAX_MEM=2012

 

更具上面提到的第4点来修改Elasticsearch配置文件conf/elasticsearch.yml

 

$ vi conf/elasticsearch.yml

//修改值为1
boostrap.mlockall: 1

 

Elasticsearch参考

 

文献出自:http://www.qixing318.com/article/elasticsearch-distributed-search-engine-used-in-the-installation-of-the-linux-platform.html

猜你喜欢

转载自ctwen.iteye.com/blog/2266699