红联Linux门户
Linux帮助

Ubuntu 16.04安装ElasticSearch

发布时间:2017-06-06 09:37:53来源:blog.csdn.net/u011404265作者:北有风雪
在阅读这篇文章之前,你应该是对ElasticSearch有一定了解的。
 
环境搭建
Ubuntu 16.04
Elasticsearch 2.4.4
jdk1.7.0_76
 
安装
我们先从Elastic的官网下载ES的安装包
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.4/elasticsearch-2.4.4.tar.gz
 
解压ES
我们选择/usr/local作为工作路径
tar -xzvf elasticsearch-2.4.4.tar.gz -C /usr/local
cd /usr/local/elasticsearch-2.4.4
 
更改ES配置
cd conf
vi elasticsearch.yml
我们主要更改ES的绑定ip和性能调优。
这里我们绑定了三个ip,并禁用掉删除全部索引的功能,同时针对ES的内存和缓存进行优化
bootstrap.memory_lock: true
index.cache.field.max_size: 50000
index.cache.field.expire: 30m
index.cache.field.type: soft
network.host: 101.37.*.25,10.29.*.58,127.0.0.1
action.disable_delete_all_indices : true
 
安装启动ES
到这里你就可以直接启动ES了。
cd ../bin
//直接启动ElasticSearch
./elasticsearch 
//或者使用后台方式进行启动
./elasticsearch -d
默认情况下ES会占用9200和9300端口,我们通过netstat检查ES的启动情况
netstat -anp|grep 9200
可以看到我们绑定的三个ip都已经开始了网络监听
root@101.37.*.25:/usr/local/elasticsearch-2.4.4/bin# netstat -anp|grep 9200
tcp        0      0 10.29.*.58:9200       0.0.0.0:*               LISTEN      11135/java      
tcp        0      0 101.37.*.25:9200      0.0.0.0:*               LISTEN      11135/java      
tcp        0      0 127.0.0.1:9200          0.0.0.0:*               LISTEN      11135/java  
 
遇到的问题
我们使用root角色进行启动ES时可能会报如下错误:
root@101.37.*.25:/usr/local/elasticsearch-2.4.4/bin# ./elasticsearch
Exception in thread "main" Java.lang.RuntimeException: don't run elasticsearch as root.
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives (Bootstrap.java:93)
at org.elasticsearch.bootstrap.Bootstrap.setup (Bootstrap.java:144)
at org.elasticsearch.bootstrap.Bootstrap.init (Bootstrap.java:270)
at org.elasticsearch.bootstrap.Elasticsearch.main (Elasticsearch.java:35)
这是由于默认情况下ES是不建议使用root账号启动ES的,可以通过指定变量的方式进行启动。
方法一:
在启动时指定变量。
./elasticsearch -Des.insecure.allow.root=true  
方法二:
在elasticsearch可执行文件中指定变量。
vi elasticsearch
// 找到ES_JAVA_OPTS在其后追加
ES_JAVA_OPTS="-Des.insecure.allow.root=true" 
重启即可。
PS:一般在使用ES时会为其申请指定的heap空间,我们可以在系统变量中指定ES_HEAP_SIZE="8g" 为ES申请空间,也可以在elasticsearch文件中指定。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31284.html