Centos7下安装ElasticSearch7.2

2019-07-12  本文已影响0人  单名一个冲

一、 官网下载地址

https://www.elastic.co/downloads/elasticsearch

二、 选择自己对应的es版本下载,并安装JDK1.8+

三、 下载完成后解压安装包

示例(请将文件名改为自己的安装包名):
tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz

在解压后的文件夹里创建一个data文件夹,一会存数据文件用
mkdir data
目录结构介绍:
bin:可执行文件,运行es的命令
config:配置文件目录
 config/elasticsearch.yml:ES启动基础配置
 config/jvm.options:ES启动时JVM配置
 config/log4j2.properties:ES日志输出配置文件
lib:依赖的jar
logs:日志文件夹
modules:es模块
plugins:可以自己开发的插件
data:我们自己创建的,存放es存储文件

四、 对ES进行一些基础配置,打开config目录(1-5为elasticsearch.yml配置,6为jvm.options配置)

  1. 配置集群名称(默认是被注释的,并且默认有一个集群名)


    es集群名称
  2. 配置当前es节点名称(默认是被注释的,并且默认有一个节点名)


    es节点名称
  3. 配置存储数据的目录路径(用逗号分隔多个位置)和日志文件路径


    存储路径和日志路径
  4. 绑定地址为特定IP地址(设置0.0.0.0可以让任何人访问到你的es),设置一个http请求端口


    绑定地址和端口
  5. 集群启动时,设置master节点列表(用逗号分隔,目前单机所以只配置了一个),master节点后续会解释


    master节点列表
  6. 配置ES启动JVM参数(谨慎操作,本人买不起内存所以配置一下)


    虚拟机基础参数配置
  7. 记得保存配置

五、 启动ES

  1. 启动bin目录下的elasticsearch报错(这是ES的一种安全措施,不让用root用户)
[root@localhost bin]# ./elasticsearch

future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jdk1.8.0_201/jre] does not meet this requirement
[2019-07-11T22:47:02,963][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] 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:163) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.2.0.jar:7.2.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.2.0.jar:7.2.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.2.0.jar:7.2.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.2.0.jar:7.2.0]
        ... 6 more
  1. 创建用户并赋予es安装目录权限
创建一个esroot用户并设置初始密码
useradd -c 'ES user' -d /home/esroot esroot
passwd esroot

将es安装目录属主权限改为esroot用户
chown -R esroot <es安装目录>

切换用户到esroot
su esroot
  1. 使用esroot用户重启es(咦,又来错,没关系继续)
ERROR: [2] bootstrap checks failed
[1]: initial heap size [268435456] not equal to maximum heap size [524288000]; this can cause resize pauses and prevents mlockall from locking the entire heap
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

错误1:本文章中第四点第6条中,我的JVM配置的Xms、Xmx不一致,设置为一致即可;

错误2:官方原话如下(意思就是说要设置系统参数vm.max_map_count=262144):
地址为:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
The vm.max_map_count kernel setting needs to be set to at least 262144 for production use. Depending on your platform:

  • Linux
    The vm.max_map_count setting should be set permanently in /etc/sysctl.conf:
    To apply the setting on a live system type: sysctl -w vm.max_map_count=262144

$ grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144

  1. 切换到root用户下,解决三中的错误二
查看vm.max_map_count属性值,
如果没有添加则在/etc/sysctl.conf文件添加vm.max_map_count = 262144
grep vm.max_map_count /etc/sysctl.conf

或者执行添加临时变量
sysctl -w vm.max_map_count=262144

六、 再次启动ES,然后测试一下,访问http://localhost:9200/

[root@localhost ~]# ./elasticsearch
[root@localhost ~]# curl http://localhost:9200/
{
  "name" : "node-1",
  "cluster_name" : "my-application",
  "cluster_uuid" : "QqRQ8cMCTAexMVKTTY4PpA",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

后台启动方式加-d,如:./elasticsearch -d

七、 祝学习愉快!

上一篇下一篇

猜你喜欢

热点阅读