安装elasticsearch踩过的坑,教训写在这里,一起共同努力,希望大家先通读一下再按着步骤操作,看过就知道哪些坑可以掠过

本文主要是介绍安装elasticsearch踩过的坑,教训写在这里,一起共同努力,希望大家先通读一下再按着步骤操作,看过就知道哪些坑可以掠过,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装elasticsearch踩过的坑,教训写在这里,一起共同努力,希望大家先通读一下再按着步骤操作,看过就知道哪些坑可以掠过

配置外网访问出现启动不了的问题:

Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

[2019-09-06T09:27:10,924][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [hadoop111] 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.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.3.1.jar:7.3.1]

        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.3.1.jar:7.3.1]

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.3.1.jar:7.3.1]

        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.3.1.jar:7.3.1]

这个说是elasticsearch不能用root用户启动

说以需要创建一个其他用户

adduser   test

passwd    test

输入明码

重新输入密码

这样就创建好其他用户了,但是如果你用其他的ssh软件去登录服务器可能会报如下错误

The server has disconnected with an error. Server message reads:

A protocol error occurred. Change of username or service not allowed: (root,ssh-connection) -> (user,ssh-connection) 

这个是因为你用了一个已经创建好的链接,这个链接写的用户是其他用户,我开始用的是root用户,而且只接受一次验证,所以

再次链接的时候可以重新的输入用户名和密码,所以就报出了这样错误,所以你需要重新创建一个链接,不需要把以前的链接删除掉

现在我就可以使用其他用户登录了

在这个之前我们在elasticsearch-evn中也配置了jdk的路径,因为我是最新下载的elasticsearch,所以需要jdk11的支持,而我的

Linux中是jdk1.8的所以不支持,怎么在elasticsearch-evn中配置jdk11自行百度一下

然后需要配置一个elasticsearch的环境变量,我们配置在用户的环境变量中,使用~/.bash_profile文件进行配置

配置好后我们再次启动发现还是不行,报错误

Exception in thread "main" java.nio.file.AccessDeniedException: /usr/developing/elasticsearch/elasticsearch-7.3.1/config/jvm.options

        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)

        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)

        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)

        at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)

        at java.base/java.nio.file.Files.newByteChannel(Files.java:373)

        at java.base/java.nio.file.Files.newByteChannel(Files.java:424)

        at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)

        at java.base/java.nio.file.Files.newInputStream(Files.java:158)

        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:61)

经网上查询说我没对这个文件没有操作权限,所以报了一个访问拒绝的异常,然后我用我的test用户

去修改它的权限发现我的test用户没有修改这个文件的权限

那没办法,只好使用我的root用户修改权限了,修改权限后继续启动,还是有部分文件权限不足,

那没办法继续改

还是同样的道理,那么这次我们直接config文件的权限都改了

但是还是一顿的报错,真实无语,最后查找网上相关教程,只要使用root用户把elasticsearch文件权限赋给test用户就可以了,本身是一小步

操作,整了这么多没有的权限修改,实际只需要执行下面的就可以了

在启动完成之后会在cd elasticsearch-7.3.1/文件夹下自动的生成一个data目录,

然后在Linux中使用curl访问一下这样就正常了,但是在浏览器中不能访问,看到需要配置一个

启动后,如果只有本地可以访问,尝试修改配置文件 elasticsearch.yml

中network.host(注意配置文件格式不是以#开头的要空一格, 后要空一格) 为network.host: 0.0.0.0

如果想在后台以守护进程模式运行,添加-d参数。

注意的是要开头空一格 :后要空一格

但是即使注意了这些,启动后怎么也启动不了报错

[2019-09-06T10:58:35,577][INFO ][o.e.p.PluginsService ] [hadoop111] no plugins loaded

[2019-09-06T10:58:49,613][INFO ][o.e.x.s.a.s.FileRolesStore] [hadoop111] parsed [0] roles from file [/usr/developing/elasticsearch/elasticsearch-7.3.1/config/roles.yml]

[2019-09-06T10:58:51,850][INFO ][o.e.x.m.p.l.CppLogMessageHandler] [hadoop111] [controller/108780] [Main.cc@110] controller (64 bit): Version 7.3.1 (Build 1d93901e09ef43) Copyright (c) 2019 Elasticsearch BV

[2019-09-06T10:58:52,921][DEBUG][o.e.a.ActionModule ] [hadoop111] Using REST wrapper from plugin org.elasticsearch.xpack.security.Security

[2019-09-06T10:58:53,650][INFO ][o.e.d.DiscoveryModule ] [hadoop111] using discovery type [zen] and seed hosts providers [settings]

[2019-09-06T10:58:56,251][INFO ][o.e.n.Node ] [hadoop111] initialized

[2019-09-06T10:58:56,251][INFO ][o.e.n.Node ] [hadoop111] starting ...

[2019-09-06T10:58:56,561][INFO ][o.e.t.TransportService ] [hadoop111] publish_address {192.168.1.129:9300}, bound_addresses {[::]:9300}

[2019-09-06T10:58:56,569][INFO ][o.e.b.BootstrapChecks ] [hadoop111] bound or publishing to a non-loopback address, enforcing bootstrap checks

ERROR: [4] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

[2]: max number of threads [3764] for user [test] is too low, increase to at least [4096]

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

[2019-09-06T10:58:56,987][INFO ][o.e.n.Node ] [hadoop111] stopping ...

[2019-09-06T10:58:57,014][INFO ][o.e.n.Node ] [hadoop111] stopped

[2019-09-06T10:58:57,015][INFO ][o.e.n.Node ] [hadoop111] closing ...

[2019-09-06T10:58:57,049][INFO ][o.e.n.Node ] [hadoop111] closed

[2019-09-06T10:58:57,057][INFO ][o.e.x.m.p.NativeController] [hadoop111] Native controller process has stopped - no new native processes can be started

终于好了,在网上转了好几圈,翻看了好多贴子,终于有整完了。

其实在好多贴子都写了,也能解决问题,但是有的关键的地方没有写到,所以你其实配正确了,但是最后启动还是启动不了

下面我就给大家分析一下怎么解决,总共是4个报错,先看一下这几个报错:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

这个说应用打开一个文件的描述量(我觉的就是一个文件的大小),Linux中默认的访问量是4096,但是elasticsearch进程需要至少是65535

[2]: max number of threads [3764] for user [test] is too low, increase to at least [4096]

目前Linux对于test这个用户中最多线程(但是在配置文件中写的是process进程数量)数量是3764,需要增加打4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

虚拟的内存范围是65530太低,需要增加到至少262144

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be 

configured

默认的discovery设置不适合生产使用,在discovery.seec_hosts,discovery.seed_providers,cluter.inital_master_nodes中的至少一个需要设置一下

那么我就按着这几个问题解决一下,在许多贴子其实都有描述(配置文件的时候使用root用户):

vim /etc/security/limits.conf

修改这个配置文件:

这个就把第一和第二错误解决了,不要着急的再启动你的elasticsearch,接着解决第三个错误

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144

这个配置文件配置完了,需要是这个配置文件生效一下,但是上边第一个错误和第二错误配置不需要生效

但是需要重新链接一下ssh(但也不需要着急的启动elasticsearch),不然的话第一个错误和第二错误还是会出错的。

还有一个elasticsearch的配置文件需要配置一下解决第4个错误:

在elasticsearch的目录中的config/elasticsearch.yml

cluster.initial_master_nodes: ["node-1"] 

这个配置完毕之后,重新用ssh链接一下服务器再启动就大功告成了,也可以用其他服务器访问该服务搜索引擎了

可以访问:http://192.168.1.129:9200/    也可以访问:http://192.168.1.129:9200/?pretty,如果出现下面的提示就说明成功了

这篇关于安装elasticsearch踩过的坑,教训写在这里,一起共同努力,希望大家先通读一下再按着步骤操作,看过就知道哪些坑可以掠过的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042527

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud