草庐IT

elasticsearch集群部署、配置

对码当歌,人生几何! 2024-07-20 原文

系统:CentOS7

前提:安装好JDK

ES与JDK对应表,截止日期:2022-01-12

 一、安装ES

1、下载或者上传安装包

        elasticsearch-7.15.2-linux-x86_64.tar.gz

2、解压安装包(-C:指定目录)

        tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz -C /opt

3、创建普通用户

        因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

        useradd elasticsearch #新增elasticsearch用户

        passwd elasticsearch #为elasticsearch用户设置密码

4、为新用户授权,否则无法运行es

        cd /opt/

        chown -R elasticsearch:elasticsearch elasticsearch-7.15.2

5、修改elasticsearch.yml文件(root用户改也可以)

        vi /opt/elasticsearch-7.15.2/config/elasticsearch.yml

内容:

        cluster.name: fb-es-cluster #配置elasticsearch的集群名称

        node.name: node-1 #节点名

        network.host: 0.0.0.0 #设置为0.0.0.0允许外网访问

        http.port: 9200 #http访问端口

        cluster.initial_master_nodes: ["node-1"] #初始化新的集群时需要此配置来选举master

        #如果是CentOS 6版本 加入以下两行

        bootstrap.memory_lock: false

        bootstrap.system_call_filter: false

6、修改其他配置文件

        新创建的elasticsearch用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容

        #切换到root用户

        su root

        #1.===最大可创建文件数太小======

        vi /etc/security/limits.conf

        #在文件末尾中增加下面内容

        elasticsearch soft nofile 65536

        elasticsearch hard nofile 65536

        vi /etc/security/limits.d/90-nproc.conf (这里有可能是20-nproc.conf

        #在文件末尾中增加下面内容

        elasticsearch soft nofile 65536

        elasticsearch hard nofile 65536

        * hard nproc 4096

#注:*代表Linux所有用户名称

#2.===系统内核配置====

        vi /etc/sysctl.conf

#在文件中增加下面内容

        vm.max_map_count=655360

#重新加载,输入下面命令:

        sysctl -p

解释:max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。

#3.===最大虚拟内存太小====

        vi jvm.options

        -Xms512m  #elasticsearch启动时jvm所分配的初始堆内存大小

        -Xmx512m  #elasticsearch启动之后允许jvm分配的最大堆内存大小,生产环境中可能需要调大

注意: 1、-Xms512m前面不能有空格,否则会报错

        2、值不能带数点

        3、如果内存足够大,可以不用修改,默认为1G,最好不要超过内存的50%

7、启动elasticsearch

        su elasticsearch #切换到elasticsearch用户启动

        cd /opt/elasticsearch-7.4.0/bin

        ./elasticsearch -d #启动 (加了-d是后台启动,将看不到启动时的日志)

8、访问elasticsearch

        http://xxx.xxx.xxx.xxx:9200

        注:在访问elasticsearch前,请确保防火墙是关闭的,或者对外开放9200端口

一、开放端口:(重启防火墙生效:systemctl restart firewalld.service)

        firewall-cmd --zone=public --add-port=9200/tcp --permanent

查看已经开放的端口(防火墙开启的情况下):

        firewall-cmd --list-ports

***注意 9300端口也要开放 ***

二、关防火墙执行命令:(不见意)

        #暂时关闭防火墙

        systemctl stop firewalld

        #或者

        #永久设置防火墙状态

        systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原

        systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

        #以上命令关闭防火墙不管用试试下面这行

        service iptables stop

二、部署集群

        主节点:192.168.2.56

        数据节点:192.168.2.57、192.168.2.58

步骤:

        1、拷贝副本(或者重新解压安装另外两个节点

        2、修改elasticsearch.yml配置文件(3台机器都执行)

        2.1 创建日志目录

        cd /opt

        mkdir logs

        mkdir data

        #授权给elasticsearch用户

        chown -R elasticsearch:elasticsearch ./logs

        chown -R elasticsearch:elasticsearch ./data

        2.2 修改3个节点的elasticsearch.yml配置

        节点:192.168.2.56

        ## 集群名称,保证唯一

        cluster.name: fb-es-cluster

        #### 节点名称,必须不一样

        node.name: node-1

        #是不是有资格成为主节点 (配置文件里没有,加上)

        node.master: true

        #是否存储数据 (配置文件里没有,加上)

        node.data: true

        #最大集群节点数 (配置文件里没有,加上)

        node.max_local_storage_nodes: 3

        #ip地址.

        network.host: 0.0.0.0

        #端口

        http.port: 9200

        #内部节点之间沟通端口 (9700端口也要和9200一样对外放开)

        transport.tcp.port: 9700

        #es7.x 之后新增的配置,节点发现

        discovery.seed_hosts: (是本机的话不填IP,填localhost)["192.168.2.56:9700","192.168.2.57:9700","192.168.2.58:9700"]

        #es7.x 之后新增的配置,初始化一个新的集群时需要次配置来选举master

        cluster.initial_master_nodes: ["node-1","node-2","node-3"]

        #数据和存储路径

        path.data: /opt/data

        path.logs: /opt/logs

        #如果是CentOS 6版本 加入以下两行

        bootstrap.memory_lock: false

        bootstrap.system_call_filter: false

        节点:192.168.2.57

        和2.56节点的节点名称、IP不一样,其它的都一样

        节点:192.168.2.57

        和2.56节点的节点名称、IP不一样,其它的都一样

2.3 设置ES的JVM占用内存参数

        vi /opt/elasticsearch-7.15.2/config/jvm.options

        默认情况下,ES启动JVM最小内存1G,最大内存1G

        -Xms256m -Xmx256m

2.4 启动3个节点

        ./elasticsearch -d

2.5 查看集群状态

        http://192.168.2.56:9200/_cat/health?v

结果:

 

返回的node.total是3,代表集群搭建成功

有关elasticsearch集群部署、配置的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  4. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  5. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  6. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  9. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  10. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

随机推荐