JAVA(JVM)版本
Elasticsearch是使用Java构建的,至少需要Java 8才能运行。 只支持Oracle的Java和OpenJDK。 所有Elasticsearch节点和客户端都应使用相同的JVM版本。
我们建议安装Java版本1.8.0_131或更高版本。 如果使用Java的已知坏版本,Elasticsearch将拒绝启动。
Elasticsearch将使用的Java版本可以通过设置JAVA_HOME环境变量进行配置。
提示:Elasticsearch带有默认配置,用于在64位服务器JVM上运行Elasticsearch。 如果使用32位客户端JVM,则必须从jvm.options中删除-server,如果使用任何32位JVM,则应将线程堆栈大小从-Xss1m重新配置为-Xss320k。
通过tar.gz包安装
下载并解压Elasticsearch
wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.2.tar.gz
tar -zxvf elasticsearch-5.6.2.tar.gz
cd elasticsearch-5.6.2
启动Elasticsearch
bin/elasticsearch (or bin\elasticsearch.bat on Windows)
默认情况下,Elasticsearch在前台运行,将其日志打印到标准输出(stdout),并可以按Ctrl-C
作为守护进程运行
要作为守护程序运行Elasticsearch,请在命令行中指定-d,并使用-p选项将进程ID记录在文件中:
./bin/elasticsearch -d -p pid
日志文件会输出到$ES_HOME/logs/目录下。
停止Elasticsearch
要关闭Elasticsearch,请杀死pid文件中记录的进程ID:
kill `cat pid`
或者
curl -XPOST 'http://localhost:9200/_shutdown'
访问Elasticsearch
Run curl http://localhost:9200/ or Invoke-RestMethod http://localhost:9200
注意:RPM和Debian软件包中提供的启动脚本会为您启动和停止Elasticsearch进程。
遇到的问题
1.不能使用root用户启动Elasticsearch
解决方案1
创建用户elasticsearch
sudo useradd elasticsearch
修改文件权限
sudo chown -R elasticsearch elasticsearch-5.6.2
用户elasticsearch启动elasticsearch
结果:启动成功
解决方案2
在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
sudo ./bin/elasticsearch -Des.insecure.allow.root=true
结果:启动失败
原因:这种解决方案是旧版本(ES2)所支持的,新版本(ES5)不支持root用户启动
解决方案3
用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
结果:启动失败
原因:同上
2.Connection refused
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000f5d50000, 11206656, 0) failed; error='Cannot allocate memory' (errno=12)
Elasticsearch requires at least Java 8 but your Java version from /usr/lib/jvm/java-8-oracle/bin/java does not meet this requirement
可能的原因:1..JVM版本太低 2.内存空间不足
检查JVM版本,排除第一个原因
解决方案:增加内存到2G
启动成功
3.内存不足启动失败
vi config/jvm.options
修改以下参数:
-Xms500m
-Xmx500m
通过命令行配置Elasticsearch
默认情况下,Elasticsearch从$ ES_HOME / config / elasticsearch.yml文件加载其配置。 此配置文件的格式在配置弹性搜索中说明。
也可以在命令行中指定在配置文件中指定的任何设置,使用-E语法如下所示:
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
提示:通常,任何群集范围的设置(如cluster.name)都应该添加到elasticsearch.yml配置文件中,而任何特定于节点的设置(如node.name)可以在命令行中指定。
.zip和tar.gz文档结构
.zip和.tar.gz包完全独立。 默认情况下,所有文件和目录都包含在$ ES_HOME中——解压缩存档时创建的目录。
这非常方便,因为您不必创建任何目录即可开始使用Elasticsearch,并且卸载Elasticsearch与删除$ ES_HOME目录一样简单。 但是,建议更改config目录,数据目录和logs目录的默认位置,以便以后不再删除重要数据。
类型描述默认位置设置
homeElasticsearch 根目录或 $ES_HOME文件解压后创建的目录
bin二进制文件目录,包括elasticsearch用于启动一个节点,elasticsearch-plugin用于安装插件$ES_HOME/bin
conf配置文件,包括elasticsearch.yml$ES_HOME/configpath.conf
data在节点上分配的每个索引/分片的数据文件的位置。 可以容纳多个位置。$ES_HOME/datapath.data
logs日志文件目录$ES_HOME/logspath.logs
plugins插件文件目录,每个插件都存放在一个目录中$ES_HOME/plugins
repo共享文件系统存储库位置。 可以容纳多个位置。 可以将文件系统存储库放置在此处指定的任何目录的任何子目录中。未设置path.repo
script脚本文件目录$ES_HOME/scriptspath.scripts
参考文件:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/zip-targz.html