1. 引言

在上一篇博客​​《分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介》​​,介绍了ES的优点、应用场景等。本文进行实际操作,在Linux下安装ES。

2. Linux下安装Elasticsearch

注意:必须先安装好JDK!ES非常占内存,Linux安装内存建议1g内存以上!

2.1 正常安装

1.下载elasticsearch安装包:​​https://www.elastic.co/downloads/elasticsearch​​​​

分布式系列教程(27) -Linux环境下安装Elasticsearch_linux

2.使用SSH上传安装包至Linux

3.解压elasticsearch

tar -zxvf elasticsearch-6.4.3.tar.gz

4.修改elasticsearch.yml(修改​​network.host​​​和​​http.port​​)

cd /usr/local/elasticsearch-6.4.3/config/
vi elasticsearch.yml

分布式系列教程(27) -Linux环境下安装Elasticsearch_安装包_02

5.启动elasticsearch

/usr/local/elasticsearch-6.4.3/bin/elasticsearch

启动后,发现报错了,这是因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

分布式系列教程(27) -Linux环境下安装Elasticsearch_linux_03

2.2 启动异常解决

1.新建用户


  • 第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码。
    分布式系列教程(27) -Linux环境下安装Elasticsearch_elasticsearch_04
  • 第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足。
    分布式系列教程(27) -Linux环境下安装Elasticsearch_elasticsearch_05
  • 第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。
  • 第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。
    然后执行成功。
    分布式系列教程(27) -Linux环境下安装Elasticsearch_linux_06

2.创建一个分组

groupadd esgroup
chown -R ylw:esgroup /usr/local/elasticsearch-6.4.3
su ylw ##切换用户

分布式系列教程(27) -Linux环境下安装Elasticsearch_elasticsearch_07

3.继续报错

bootstrap checks failed max virtual memory areas vm.max_map_count [65530] is…

分布式系列教程(27) -Linux环境下安装Elasticsearch_linux_08

4.修改sysctl.conf

su root
vi /etc/sysctl.conf

添加配置:

vm.max_map_count=655360

分布式系列教程(27) -Linux环境下安装Elasticsearch_安装包_09

执行:

sysctl -p

分布式系列教程(27) -Linux环境下安装Elasticsearch_linux_10

5.继续报错:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]…

分布式系列教程(27) -Linux环境下安装Elasticsearch_安装包_11

6.修改limits.conf

vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

分布式系列教程(27) -Linux环境下安装Elasticsearch_安装包_12

7.重启服务器即可

2.3 测试

浏览器访问:​​http://192.168.162.131:9200​​​​

分布式系列教程(27) -Linux环境下安装Elasticsearch_linux_13

9300与9200区别:


  • 9300端口: ES节点之间通讯使用
  • 9200端口: ES节点 和 外部 通讯使用

操作成功,本文完!