在阅读这篇文章之前,你应该是对ElasticSearch有一定了解的,或者可以先通过文章末尾的链接了解ES是什么
环境搭建
Ubuntu 14.04.5 LTS
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 -xzvfelasticsearch -2.4.4.tar .gz -C/usr/ localcd /usr/ local/elasticsearch -2.4.4更改ES配置cdconfvi 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 0010.29.*. 58:92000. 0. 0. 0:*LISTEN11135/java tcp 00101.37.*. 25:92000. 0. 0. 0:*LISTEN11135/java tcp 00127.0. 0. 1:92000. 0. 0. 0:*LISTEN11135/java 遇到的问题
我们使用root角色进行启动ES时可能会报如下错误:
root @101. 37.*. 25:/usr/local/elasticsearch-2.4. 4/bin # ./elasticsearchExceptioninthread "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_JAV A_OPTS在其后追加ES_JAV A_OPTS= "-Des.insecure.allow.root=true"
重启即可。
PS:一般在使用ES时会为其申请指定的heap空间,我们可以在系统变量中指定ES_HEAP_SIZE="8g" 为ES申请空间,也可以在elasticsearch文件中指定。