Elasticsearch技术解析与实战
上QQ阅读APP看书,第一时间看更新

1.4.6 作为服务

1.Linux下作为服务

Elasticsearch创建了debian安装包和RMP安装包,可以在官网的下载页面中进行下载。安装包需要依赖Java,除此就没有任何依赖。

在Debian系统下可以使用标准的系统工具,init脚本放在/etc/init.d/elasticsearch下,配置文件默认放在/etc/default/elasticsearch下。从debian软件包安装好后默认是不启动服务的。其原因是为了防止实例不小心加入集群。安装好后用dpkg-i命令来确保,当系统启动后启动Elasticsearch需要运行下面的两个命令:

sudo update-rc.d elasticsearch defaults 95 10
sudo /etc/init.d/elasticsearch start

当用户运行Debian8或者Ubuntu14或者更高版本的时候,系统需要用systemd来代替update-rc.d,在这种情况下,请使用systemd来运行,参见下面的介绍。

Elasticsearch通常的建议是使用Oracle的JDK。可以用下面的命令安装:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
java -version

基于RPM的系统一般使用chkconfig来启用和禁用服务。init脚本位于/etc/init.d/elasticsearch下,配置文件放在/etc/sysconfig/Elasticsearch下。同Debian系统类似,安装好后也不会自动加入自启动服务中。需要手工指定:

sudo /sbin/chkconfig --add elasticsearch
sudo service elasticsearch start

2.systemd服务启动

很多Linux系统,例如Debian Jessie、Ubuntu 14等,系统不使用chkconfig来注册服务,取而代之的是用systemd来启动和停止服务。命令是/bin/systemctl来启动和停止服务。RPM包安装的配置文件在/etc/sysconfig/elasticsearch下,deb包安装的配置文件在/etc/default/elasticsearch下。安装RPM之后,你必须改变系统配置,然后启动Elasticsearch。

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
sudo /bin/systemctl start elasticsearch.service

同时注意改变在/etc/sysconfig/elasticsearch中的MAX_MAP_COUNT设置是没有任何效果的。需要改变/usr/lib/sysctl.d/elasticsearch.conf中的配置才起作用。

3.Windows下作为服务

Windows用户可以配置Elasticsearch作为服务在后台运行,或在没有任何用户交互启动时自动启动。这可以通过bin目录下的service.bat脚本来实现,可以安装、卸载、管理或配置服务命令行为:service.bat install|remove|start|stop|manager[SERVICE_ID]

SERVICE_ID是服务ID,可以不用指定用默认的值,系统可以安装多个服务。Manager是启动图形界面的配置。例如运行service install后显示的内容如下:

Installing service      :  "elasticsearch-service-x64"
Using JAVA_HOME (64-bit):  "C:\Program Files\Java\jdk1.7.0_79"
The service 'elasticsearch-service-x64' has been installed.

安装好后,有两种方法可以对服务进行设置。

□图形化界面,可以用命令service manager来启动图形界面。执行后显示界面如图1-3所示。

图1-3 服务设置图形化界面

□用命令service start、service stop来启动停止服务。

还有一个社区支持的可定制MSI安装程序:https://github.com/salyh/elasticsearch-msi-installer也可以安装成服务。