返回 导航

其他

hangge.com

数据搜索分析引擎Elasticsearch安装教程(CentOS下单节点部署)

作者:hangge | 2020-03-10 08:10
    ElasticSearch 是一个基于 Lucene 的分布式、高扩展、高实时的搜索与数据分析引擎。本文演示如何在 CentOS 系统下安装部署 Elasticsearch 服务。

1,下载软件包

(1)首先访问 Elasticsearch 官网(点击查看),选择合适的版本下载(7.2.1 版本起就内置了 JDK,我们系统无需另外安装 JDK 或者配置 $JAVA_HOME 环境变量):
注意:不要下载到 root 用户目录下,因为 elasticsearch 不能使用 root 用户启动。如果下载到 root 目录下,后面用其他用户启动就会权限不足无法启动,报如下错误:
  • could not find java in bundled jdk at /root/elasticsearch/elasticsearch-7.6.0/jdk/bin/java
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.0-linux-x86_64.tar.gz

(2)下载后通过 tar 命令进行解压:
tar -zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz

2,修改配置

(1)默认情况下,Elasticsearch 只允许本机访问,如果需要远程访问,可以修改 elasticsearch 目录中的 config/elasticsearch.yml 文件:
vi ./config/elasticsearch.yml

(2)去掉 network.host 的注释,将它的值改成 0.0.0.0,标示任何人都可以访问:
注意:"network.host:"和"0.0.0.0"中间有个空格,不能忽略,不然启动会报错。线上服务不要这样设置,要设成具体的 IP

3,创建新用户

(1)如果我们此时进入解压后的目录直接执行 ./bin/elasticsearch 命令启动的话,会报"can not run elasticsearch as root"的错误。这是因为安全问题 elasticsearch 不让用 root 用户直接运行,所以要创建新用户。

(2)首先我们执行如下命令创建一个名为 hangge 的新用户:
adduser hangge

(3)接着执行如下命令为这个新用户添加密码(需要输入两次密码,如果密码位数太短会提示无效,可以不管它):
passwd hangge

(4)然后为刚解压出来的 elasticsearch 目录赋予 hangge 用户权限:
chown -R hangge elasticsearch-7.6.0

4,启动服务

(1)切换到 hangge 用户:
su hangge

(2)进入 elasticsearch 目录后执行如下命令即可启动服务:
./bin/elasticsearch

5,访问测试

(1)Elasticsearch 默认会在 9200 端口运行。我们打开另一个命令行窗口,执行如下命令请求该端口,如得到相关返回信息则说明启动成功:
curl localhost:9200

(2)如果 elasticsearch 服务设置了允许远程访问,我们也可以直接使用浏览器访问 http://IP:9200 进行测试:

附:启动常见错误

我们启动 elasticsearch 时常常会碰到如下几个错误,下面分别介绍相应的解决办法:

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

(1)切换到 root 用户,执行如下命令编辑 limits.conf 文件:
sudo vi /etc/security/limits.conf

(2)在最下方加入下面两行(这里的 hangge 是之前新建的用户名):
hangge hard nofile 65536
hangge soft nofile 65536

2,max number of threads [3796] for user [hangge] is too low, increase to at least [4096]

(1)切换到 root 用户,执行如下命令编辑 20-nproc.conf 文件:
vi /etc/security/limits.d/20-nproc.conf

(2)在最下方加入下面这行:
* hard nproc 4096

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

切换到 root 用户,执行如下命令即可:
sudo sysctl -w vm.max_map_count=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

(1)编辑 elasticsearch 目录中的 config/elasticsearch.yml 文件:
vi config/elasticsearch.yml

(2)放开 node.name 注释,并添加下面这个配置,然后保存退出即可。
cluster.initial_master_nodes: ["node-1"]
评论

全部评论(0)

回到顶部