• ElasticSearch6.1.1集群搭建


    其实早就想研究ES了,因为之前用solr,资料较少(这倒不是问题,有问题去官网读文档),貌似用的人比较少?(别打我)前几天去京东面试,我觉得有必要了解一下es,昨天晚上简单了解了官方文档,今天居然鼓捣了一上午,等工作了我一定换一个1个T内存的机器(手动滑稽)

    正题

    先去官网下载压缩包,自行解决。我的虚拟机【CentOS7:192.168.127.129、130、131

    环境要求,最少Java8,推荐131以后的

    解压到/usr/local

    tar -zxvf elasticsearch-6.1.1.tar.gz -C /usr/local

    进入主目录

    cd /usr/local/elasticsearch-6.1.1/

    创建两个文件夹data和logs,分别存放索引和日志

    [root@localhost elasticsearch-6.1.1]# mkdir data logs

    存放索引的目录:/usr/local/elasticsearch-6.1.1/data

    存放日志的目录:/usr/local/elasticsearch-6.1.1/logs

    进入config目录

    [root@localhost logs]# cd ../config/
    [root@localhost config]# ll
    total 16
    -rw-rw----. 1 root root 2853 Dec 18 04:22 elasticsearch.yml
    -rw-rw----. 1 root root 2672 Dec 18 04:22 jvm.options
    -rw-rw----. 1 root root 5091 Dec 18 04:22 log4j2.properties

     修改elasticsearch.yml文件

    [root@localhost config]# vim elasticsearch.yml

    修改jvm

    [root@localhost config]# vim jvm.options

    这里大家自定义的大小,我每个虚拟机分配1g内存,给jvm一半,资源比较稀缺,你们可以根据自身条件调整。

    启动ES

    [root@localhost elasticsearch-6.1.1]# ./bin/elasticsearch

    更改elasticsearch为普通用户权限,然后切换普通用户启动

    [root@localhost elasticsearch-6.1.1]# chown -R admin /usr/local/elasticsearch-6.1.1/
    [root@localhost elasticsearch-6.1.1]# su admin
    [admin@localhost elasticsearch-6.1.1]$ ./bin/elasticsearch

    当你认为ok的时候,其实并不ok 

     报错:

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

     [2]: max number of threads [3798] for user [admin] 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]

     官方文档解释:

    [1]

    [2]

    [3]

    查看系统虚拟内存:sysctl -a | grep "vm.max_map_count"

    除了上面的注意,生产环境要Disable swapping,不过这个对我们当前影响不大

    设置虚拟内存

    [root@localhost elasticsearch-6.1.1]# sysctl -w vm.max_map_count=262144
    vm.max_map_count = 262144
    
    [root@localhost elasticsearch-6.1.1]# vim /etc/security/limits.conf 

     修改limits.conf文件,添加如下内容:

    <用户名><类型><属性><值>
    admin soft nofile 65536
    admin hard nofile 65536
    
    admin soft nproc 4096
    admin hard nproc 4096

    打开防火墙:9200是http访问端口,9300是集群通信端口

    打开防火墙端口:
    firewall-cmd --zone=public --add-port=9200/tcp --permanent
    firewall-cmd --zone=public --add-port=9300/tcp --permanent
    重启防火墙:systemctl restart firewalld

     切换普通用户,启动集群,可能很慢,一个一个启动,反正我的是卡死了。

    启动集群:
    [admin@localhost elasticsearch-6.1.1]$ ./bin/elasticsearch

    三个都启动成功,简单来看根据是否抛异常

    查看集群状态:执行linux命令~
    curl -XGET '192.168.127.129:9200/_cat/health?v&pretty'
    curl -XGET '192.168.127.129:9200/_cat/nodes?v&pretty'
    或者通过浏览器访问:
    http://192.168.127.129:9200/
    http://192.168.127.129:9200/_cat/nodes?v&pretty
    http://192.168.127.129:9200/_cat/health?v&pretty

     

  • 相关阅读:
    函数式编程一
    学习设计模式笔记
    看萧井陌直播写代码有感
    自定义事件
    template模板函数
    一个自己写的table插件,用到了一些ES6的语法
    requireJs简介
    underscore
    angular4.0
    New Machine Learning Server for Deep Learning in Nuke(翻译)
  • 原文地址:https://www.cnblogs.com/LUA123/p/8267817.html
Copyright © 2020-2023  润新知