Elasticsearch安装配置
文档地址:
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/setup.html
官方页面提供自0.9版本以来的说明文档,由于我下载的是6.5.4版本,因此通过6.5版本的文档进行安装配置。
本文的安装测试环境为Red Had Linux 6.5,关于elastic对各系统的支持度,参见:https://www.elastic.co/support/matrix
Java版本:
要求至少java 8,官方推荐的版本为:1.8.0_131 or a later version in the Java 8 release series
你可以通过修改JAVA_HOME参数指定java版本。
一、下载和安装、启动:
本文使用的6.5.4版本下载地址为:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
[root@python ~]# tar -zxf elasticsearch-6.5.4.tar.gz
[root@python ~]# cd elasticsearch-6.5.4
[root@python elasticsearch-6.5.4]# ./bin/elasticsearch
[2019-01-11T09:25:52,573][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.4.jar:6.5.4]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.4.jar:6.5.4]
... 6 more
通常我们把此解压目录称作:$ES_HOME,以上错误表示不能以超级用户root启动es,我们新建一个用户即可:
[root@python elasticsearch-6.5.4]# useradd es
[root@python elasticsearch-6.5.4]# passwd es
[root@python ~]# mv elasticsearch-6.5.4 /home/es/
[root@python es]# chown -R es.es elasticsearch-6.5.4/
[root@python elasticsearch-6.5.4]# su - es
[es@python ~]$ echo "export ES_HOME=/home/es/elasticsearch-6.5.4" >> .bashrc
[es@python ~]$ echo "export PATH=$ES_HOME/bin:$PATH" >> .bashrc
[es@python ~]$ elasticsearch
......
[2019-01-11T09:32:31,567][INFO ][o.e.l.LicenseService ] [lejuhty] license [47723c44-43e9-49af-85db-0909d8bb47e3] mode [basic] - valid
至此es已经启动,通过config目录中的elasticsearch.yml文件我们可以修改es的启动端口,默认是9200。
接下来检查下es是否正常启动,除了通过ps -ef|grep elasic之外,我们执行:
[es@python elasticsearch-6.5.4]$ curl 'http://localhost:9200'
{
"name" : "lejuhty",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "qSwz2X0EQU25G85c9H4Q0Q",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
--可以看到es已经正常运行
以上的es运行方式可以通过ctrl-c或者关闭窗口来关闭,平时我们可以通过守护进程的方式在后台启动es:
./bin/elasticsearch -d -p pid
p表示启动之后es的pid会被记录入一个名为pid的文件中,关闭时只要kill这个文件中记录的pid就可以了。
ES启动后会默认开放2个端口,9200和9300,前者用于REST API或curl等基于http协议的RESTFUL请求,后者多用于集群节点之间的tcp交流。由于ES本身提供的快捷API命令和针对各编程语言的接口全都是RESTFUL风格编写的,因此对于ES的访问几乎只能从9200端口进行,对于9300端口目前还了解不多待看到分布式集群时再解释。
下图中的::1:port表示ipv6的loopback address,添加了::ffff前缀表示ipv4地址的ipv6映射,被称作ipv4-mapped ipv6 address(下图2所示的映射方式),例如::ffff:127.0.0.1:9200表示ipv6中的本地回环地址,相当于ipv4中的127.0.0.1,但是不同于::1:9200此映射的ipv6地址是可以接受ipv4连接请求的。


此外虽然配置文件中默认注释了network.host=127.0.0.1,但ES其实是默认绑定此loopback IP的,因此不修改network.host只能本地连接,但是修改network.host后又必须对系统配置作出修改,原因参见第二部分中系统配置部分的解释。
二、配置Elasticsearch:
关于config目录下各个配置文件的功能及其具体的配置项解释,参考官方页面:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/settings.html
这里先简短的说明一些文件的功用:
- elasticsearch.yml for configuring Elasticsearch
- jvm.options for configuring Elasticsearch JVM settings
- log4j2.properties for configuring Elasticsearch logging
ES的配置可以主要分为两大部分:
1.系统配置部分
这部分比较好理解,ES的良好运行需要进行一些系统配置,其中官网列出的必须要进行的配置包含:
此配置在windows上无需配置,在Linux上需要修改如下用户limit配置:
es hard nofile 65536
es soft nofile 65536
在/etc/sysctl.conf中添加如下记录即可:
vm.max_map_count=262144
以上两个系统配置项用到的较少,一个是DNS缓存的问题,只有DNS变动较大时需要设置缓存超时时间。另一个是ES运行所需的JNA文件会被放在/tmp目录的文件夹下,因此/tmp目录如果是额外mount的盘,那么可能需要设置正确的权限才能避免出现找不到shared object的错误。
一般来说如果这些项配置错误,那么只会以warning的形式出现在log中,但是一旦你修改了ES网络相关的参数,例如network.host,那么ES就认为你将要从开发模式转为生产模式,ES会开启一个名为bootstrap checks的检查,日志显示为:“bound or publishing to a non-loopback address, enforcing bootstrap checks”,此时warnings将会以exception形式出现在log中,这些exceptions将会导致ES无法启动,这是ES为了防止你因配置错误导致数据丢失而做的一项预防措施,因此在转向生产时,请务必为ES正确配置系统参数。
这里我再重复一遍,对elasticsearch.yml中network.host的更改,会导致ES认为你将要部署的是生产服务器,此时错误的系统配置将会导致ES启动后自动关闭。
2.ES的配置部分
ES本身的配置主要包含一些诸如PATH,Cluster name等等参数。其中一些必须配置的参数配置方法参见如下链接列表:
ES默认使用1G的heap,Xms,Xmx都是1g,为保证生产上内存足够,可以适当加大,修改jvm.options文件即可,例如:
-Xms4g
-Xmx4g
ES的临时文件位置,默认是$ES_TMPDIR,一般$ES_TMPDIR不设置,所以默认其实是/tmp,当然你可以在jvm.options文件中修改-Djava.io.tmpdir项来直接指定位置,最好还是export一个$ES_TMPDIR吧。
此外需要注意的是ES并无内置的安全认证模块,因此安全性暂需要依靠第三方软件或者bind ip+防火墙来实现。
Elasticsearch安装配置的更多相关文章
- Elasticsearch笔记(一)—Elasticsearch安装配置
原文链接:https://my.oschina.net/jhao104/blog/644909 摘要: ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文 ...
- Elasticsearch安装配置和测试
官方教程:https://www.elastic.co/guide/en/elasticsearch/reference/master/_installation.html 中文教程:https:// ...
- ElasticSearch 安装配置
1. Elasticsearch5.5.2安装 1.1.Elasticsearch安装步骤 #安装之前需安装java 环境,并配置JAVA_HOME环境变量 #直接下载Elasticsearch- ...
- ElasticSearch5.5.2:Windows下ElasticSearch安装配置
环境 1.Windows10企业版X64 2.JDK-1.8 3.ElasticSearch-5.5.2 4.elasticsearch-head插件 5.node-v6.11.2-x64.msi 1 ...
- Elasticsearch 安装配置 外网访问 及 后台启动
本文转自http://www.jianshu.com/p/658961f707d8 作者:咪博士 感谢咪博士分享 Elasticsearch的安装总体来说还是相当简单的,当然中间也会有些小坑.不过大家 ...
- Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词
http://fuxiaopang.gitbooks.io/learnelasticsearch/content/ (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的 ...
- 我的ElasticSearch之ElasticSearch安装配置环境
最近一段时间比较忙,都很少来园子逛了,刚好,用到了ElasticSearch,感觉还不错,所以就给大家推荐一下,自己也顺便学习:虽然公司选择用ElasticSearch,但是以前都没有用过这个,而且公 ...
- elasticsearch 安装配置详解
一.安装 简单的安装与启动于前文ElasticSearch初探(一)已有讲述,这里不再重复说明. 二.启动 1.自带脚本启动 1)bin/elasticsearch,不太任何参数,默认在前端启动 2) ...
- centos7下elasticSearch安装配置
OS:Centos7x虚拟机 1H2Gjdk:1.8elasticsearch:5.6.0 1.下载“elasticsearch-5.6.0.tar.gz”解压到/usr/local/elastics ...
随机推荐
- cropper(裁剪图片)插件使用(案例)
公司发布微信H5前端阵子刚刚弄好的H5端的图片上传插件,现在有需要裁剪图片.前端找了一个插件---cropper 本人对这插件不怎么熟悉,这个案例最好用在一个页面只有一个上传图片的功能上而且只适合单个 ...
- Tiny4412中断介绍
通过几天裸板驱动开发,今天对ARM的中断做一些简单总结,前面我们已经了解了ARM的7种异常模式,中断是异常模式的一种,在ARM中异常事件发生将会触发中断,但是,所有的中断都不能直接访问cpu,而是都统 ...
- Deep Learning Enables You to Hide Screen when Your Boss is Approaching
https://github.com/Hironsan/BossSensor/ 背景介绍 学生时代,老师站在窗外的阴影挥之不去.大家在玩手机,看漫画,看小说的时候,总是会找同桌帮忙看着班主任有没有来. ...
- Java7里try-with-resources分析
这个所谓的try-with-resources,是个语法糖.实际上就是自动调用资源的close()函数.和Python里的with语句差不多. 例如: [java] view plain copy ...
- ANSI 和 UNICODE 的函数对应表
ANSI UNICODE 通用(char.h) (wchar.h) (tchar.h) char wchar_t ...
- MFC中listbox控件中各种属性的详解
ListBox控件是Windows 窗体的一个空间,ListBox 控件显示一个项列表,用户可从中选择一项或多项. 如果项总数超出可以显示的项数,则自动向 ListBox 控件添加滚动条. ...
- [NOIP2016]愤怒的小鸟 D2 T3
Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的 ...
- Appium+python的环境搭建!
我的电脑64位操作系统 下载并安装所需软件: 1.adb环境 2.下载(python-2.7.12.amd64.msi)并安装python 3.下载并解压adt,如(adt-bundle-window ...
- 分布式缓存技术redis学习系列
分布式缓存技术redis学习系列(一)--redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)--详细讲解redis数据结构(内存模型)以及常用命令 ...
- Spring Boot + Vue 前后端分离,两种文件上传方式总结
在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...