说明:本文elasticsearch
安装在linux
系统中,需要懂一些linux
操作命令
1、官网下载elasticsearch的tar格式
其他版本选择past releases
,本文使用的是elasticsearch-5.5.2
版本
2、将下载好的elasticsearch-5.5.2.tar.gz文件通过CRT上传到linux
3、解压elasticsearch-5.5.2.tar.gz,并移动到相关目录
解压文件
tar -zxvf elasticsearch-5.5.2.tar.gz
解压后的文件
创建 elasticsearch文件夹
mkdir /usr/local/elasticsearch
将解压后的文件移动到elasticsearch文件夹
mv elasticsearch-5.5.2 /usr/local/elasticsearch
移动后的目录
4、启动elasticsearch
运行命令
sh /usr/local/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch
出现报错
具体如下:
[2018-08-21T10:24:14,626][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] 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:127) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.5.2.jar:5.5.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:194) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:351) ~[elasticsearch-5.5.2.jar:5.5.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123) ~[elasticsearch-5.5.2.jar:5.5.2]
... 6 more
有用户安全级别问题can not run elasticsearch as root
不能使用root
用户
因此,建一个用户,并赋予权限
创建es
用户
useradd es
赋予es
用户全部权限
chown -R es:es /usr/local/elasticsearch/elasticsearch-5.5.2/
切换root
用户为es
用户
启动elasticsearch
sh /usr/local/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch
出现下面内容,启动成功
5、测试连接
按Ctrl+C
退出,再运行下面命令使用后台启动
sh /usr/local/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch -d
输入下面命令进行测试
curl http://localhost:9200
出现如下json
串,则测试成功
{
"name" : "z5HJaln",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "4eptD2RnQPyRZ7mFyqsbmA",
"version" : {
"number" : "5.5.2",
"build_hash" : "b2f0c09",
"build_date" : "2017-08-14T12:33:14.154Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
6、配置外网连接
此时,外部浏览器还不能进行访问,需要进行配置
先进入config
目录
cd /usr/local/elasticsearch/elasticsearch-5.5.2/config
编辑elasticsearch.yml
文件
修改network.host
和port
为本机对应网络,其他不需要改动
network.host: 10.22.3.49
http.port: 9200
重新启动,将已经运行的进程关掉
ps -ef | grep elasticsearch
kill -9 1531
注意:此时启动,可能会报错
运行命令
sh /usr/local/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch
报错如下
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:添加配置
先切换回root
用户
su root
针对max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
问题
修改/etc/security/limits.conf
文件,添加或修改如下内容
* hard nofile 65536
- soft nofile 65536
针对max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题
修改/etc/sysctl.conf
文件,添加“vm.max_map_count”
设置 永久改变(sudo sysctl -p /etc/sysctl.conf生效
)
vi /etc/sysctl.conf
添加配置vm.max_map_count=2621441
即可
执行
sudo sysctl -p /etc/sysctl.conf
让配置永久生效
切换回es
用户
su es
重新启动
sh /usr/local/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch
程序正常启动,没有报错
此时输入命令
curl http://10.22.3.49:9200
正常返回json
浏览器访问http://10.22.3.49:9200/
外网连接配置成功