don't run elasticsearch as root
第一步:liunx建立新用户node
adduser elasearch
而后给建立的用户写密码 password XXX 输入两次密码。bootstrap
第二步:给新建的 elasearch 用户 受权限,要用 root 用户受权限。curl
chown -R XXX /你的elasticsearch安装目录。 ( chown -R elasearch /opt/elasticsearch
第三步:切换刚才建立的用户 而后执行 elasticsearch 。elasticsearch
su elasearch cd /opt/elasticsearch/bin ./elasticsearch
个人一开始的开发环境的JDK是1.8,在启动 Elasticsearch7.2.0
的时候,启动日志会有以下信息:ide
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_211/jre] does not meet this requirement
这是因为Elasticsearch依赖于JDK ,es 和 JDK 有着对应的依赖关系
ui
听他人的博客说 Elasticsearch 该版本(7.2) 内置了JDK,而内置的JDK是当前推荐的JDK版本。this
固然若是你本地配置了JAVA_HOME那么ES就是优先使用配置的JDK启动ES。(言外之意,你不安装JDK同样能够启动,他试了能够的。)url
ES推荐使用LTS版本的JDK(这里只是推荐,JDK8就不支持),若是你使用了一些不支持的JDK版本,ES会拒绝启动。
spa
对于 JDK 版本的一个大概说明 官网上有JDK 六、七、八、九、10 对应的版本就是JDK1.六、1.七、1.八、1.九、1.10 因此是JDK10版本更高 不过目前使用最多的是1.8
启动后,
经过日志
curl localhost:9200
查看本地是否能够访问到
若是本地能够访问到,且外网访问不到,可继续往下看
修改 /config/elasticsearch.yml
文件
把 network.host 这句话放开,改成
network.host: 0.0.0.0
Elasticsearch 启动过程当中报错【1】
ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, d iscovery.seed_providers, cluster.initial_master_nodes] must be configured [2019-06-03T07:05:44,761][INFO ][o.e.n.Node ] [hz] stopping ... [2019-06-03T07:05:44,788][INFO ][o.e.n.Node ] [hz] stopped [2019-06-03T07:05:44,788][INFO ][o.e.n.Node ] [hz] closing ... [2019-06-03T07:05:44,801][INFO ][o.e.n.Node ] [hz] closed [2019-06-03T07:05:44,804][INFO ][o.e.x.m.p.NativeController] [hz] Native controller process has stopped - no ne w native processes can be started
解决办法
修改 config/elasticsearch.yml
放开 node.name: node-1
注释,可更更名称 node.name: node-1
放开 cluster.initial_master_nodes: ["node-1"]
#这里的node-1为node-name配置的值