Ubuntu中安装Elasticsearch

1.安装jre

elasticsearch是使用java开发的搜索引擎,因此其运行依赖于java runtime environment,我们在这里不使用Oracel的官方jre,改为使用open-jre。

运行环境:

  • ubuntu:18.04
  • jre:openjdk-11-jre

执行一下的命令进行安装:

1apt update 2apt install default-jre

安装完成后,执行java -version进行验证,输出如下表示安装成功:

2.安装Elasticsearch

2.1 下载并启动Elasticsearch

首先从Elasticsearch的官网下载GA版本的Elasticsearch,目前GA版本是6.6.2,我们使用wget进行下载:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz

下载完成后进行解压:

tar -xzvf elasticsearch-6.6.2.tar.gz

然后我们进入elasticsearch-6.6.2\bin目录,执行里面的elasticsearch就可以运行起来,命令行中会输出大量的启动信息,当我们看到以下输出时,就表明elasticsearch启动成功:

其中H9iEvJw就是我们当前节点Node的名称。

注意:elasticsearch不能使用root用户进行启动,在Ubuntu中必须是用adduser命令添加用户后,然后使用该用户启动elasticsearch。

2.2 修复启动过程中的warn消息

我们在启动过程中看到了以下的warn信息:

1[2019-03-21T23:00:05,193][WARN ][o.e.b.BootstrapChecks ] [H9iEvJw] max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] 2 3[2019-03-21T23:00:05,193][WARN ][o.e.b.BootstrapChecks ] [H9iEvJw] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

我们可以看到是max file descriptorsmax virtual memory的值太小导致Elasticsearch报出这两个warn消息。

2.2.1 修改 max_map_count

使用下面的命令修改Linux系统的 max_map_count值:

1su root 2vim /etc/sysctl.conf

在文件中加入:

vm.max_map_count=262144

然后执行以下命令使其生效:

sysctl -p

具体可以参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

2.2.2 修改nofile

打开/etc/security/limits.conf文件:

1su root 2vim /etc/security/limits.conf

添加以下两项内容(如果存在相应内容,则修改其值):

1* soft nofile 65536 2* hard nofile 65536

备注:前面的*号表示匹配所有用户,soft和hard分别代表soft limit和hard limit,nofile表示最大打开文件数量

修改后需要重启才能生效。

2.3 绑定IP地址

默认情况下,elasticsearch只允许本地访问,如果要允许其他机器访问,那么需要绑定IP地址,修改方法如下:

vim elasticsearch-6.6.2/config/elasticsearch.yml

修改elasticsearch安装目录下的config文件夹中的elasticsearch.yml文件:

重启Elasticsearch使得新配置生效,这样就可以实现三个地址都能访问Elasticsearch。

至此,Elasticsearch的安装完成。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )