centos安装elasticsearch2.3.2记录

半城伤御伤魂 提交于 2020-04-07 00:52:11

在elastic官网下载最新版本elasticsearch的zip包,我下载时的版本为:2.3.2.

将zip包上传到linux并解压,同时新建data和logs目录,用于存放数据和日志。


配置


修改elasticsearch-2.3.2/config下elasticsearch.yml配置文件,增加如下YAML的配置:

path:
  logs: /data/elasticsearch/logs
  data: /data/elasticsearch/data


相应的目录:

[ufo0818@web elasticsearch]$ pwd
/data/elasticsearch       //安装目录
[ufo0818@web elasticsearch]$ ll
total 26956
drwxr-xr-x 3 ufo0818 ufo0818     4096 May  4 17:44 data     //数据目录
drwxr-xr-x 7 ufo0818 ufo0818     4096 May  4 17:44 elasticsearch-2.3.2
-rwxr-xr-x 1 ufo0818 ufo0818 27546579 May  4 17:15 elasticsearch-2.3.2.zip
drwxr-xr-x 2 ufo0818 ufo0818     4096 May  4 17:38 logs     //日志目录
-rw-rw-r-- 1 ufo0818 ufo0818        5 May  4 17:58 pid
-rwxr-xr-x 1 ufo0818 ufo0818      239 May  4 17:58 start.sh

启动

用ufo0818去执行,报出如下错误:

[ufo0818@web elasticsearch-2.3.2]$ ./bin/elasticsearch
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /data/elasticsearch/logs/elasticsearch.log (Permission denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:136)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
        at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
        at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
        at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
        at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
        at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)


切换成root用户启动,又报出如下错误:

[2016-05-04 17:38:20,623][ERROR][bootstrap                ] Exception
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)

根据elasticsearch的安全策略,不允许用root来启动。

所以得用普通用户启动,但是得具有elasticsearch目录的权限,所以需要执行如下命令来授权

chown - R ufo0818.ufo0818 elasticsearch/


到此,elasticsearch能愉快的启动了。

启动脚本

start.sh

kill `cat pid`
echo 'elasticsearch stoped'
elasticsearch-2.3.2/bin/elasticsearch -d -p pid
echo 'elasticsearch started'


最后的测试结果如下:

[ufo0818@web elasticsearch]$ curl -XGxt http://localhost:9200/
{
  "name" : "Ardina",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.2",
    "build_hash" : "b9e4a6acad4008027e4038f6abed7f7dba346f94",
    "build_timestamp" : "2016-04-21T16:03:47Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}



远程访问

elasticsearch-2.3.2/config/elasticsearch.yml还需要增加如下配置:

network:
  host: 0.0.0.0


跨域调用

elasticsearch-2.3.2/config/elasticsearch.yml还需要增加如下配置

http.cors.enabled: true 
http.cors.allow-origin: "*"


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!