草庐IT

docker部署ES集群

搬砖ICU 2025-01-03 原文

二、离线部署es

  • 1.找到一台联网的机器,把对应版本的镜像拉取下来

    sudo docker pull elasticsearch:7.10.1

    2.将镜像保存为本地文件

    sudo docker save elasticsearch:7.10.1 -o /data/appadmjjkj/images/es-docker-7.10.1.tar

    或 sudo docker save IMAGE ID -o /data/appadmjjkj/images/es-docker-7.10.1.tar

    3.将保存号的tar镜像文件上传到要部署的机器上,安装镜像

    sudo docker load -i es-docker-7.10.1.tar

  • 二、单机部署

  • 1.创建挂载目录[data:存放索引数据,plugins:存放es插件]

    sudo mkdir -p  /data/appadmjjkj/elasticsearch

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/data

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/plugins

    2.设置执行权限

    sudo chmod 777 /data/appadmjjkj/elasticsearch/config/data

    3.更改系统配置​

    sudo vi /etc/sysctl.conf

    ->>

    vm.max_map_count=262145

  • 创建es.yml
  •  sudo vi /data/appadmjjkj/elasticsearch/config/es.yml

      ->>

    cluster.name: elasticsearch-cluster   #集群名(三个节点一致)

    node.name: es-node   #节点名(每台节点不同)

    network.bind_host: 0.0.0.0

    network.publish_host: 10.30.4.49  #对外地址

    http.port: 9201 #对外端口(每台机器装一个ES则不用改)

    transport.tcp.port: 9301 #ES内部通信端口(每台机器装一个ES则不用改)

    http.max_content_length: 2000mb

    http.max_header_size: 1024k

    http.max_initial_line_length: 1024k

    http.cors.enabled: true

    http.cors.allow-origin: "*"  

    5.启动服务

    sudo docker run -it -e ES_JAVA_OPTS="-Xms2048m -Xmx2048m" \

    -e ES_MIN_MEM=128m \

    -e ES_MAX_MEM=4096m \

    -v /data/appadmjjkj/elasticsearch/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml \

    -v /data/appadmjjkj/elasticsearch/config/data/:/usr/share/elasticsearch/data/ \

    -v /data/appadmjjkj/elasticsearch/config/plugins/:/usr/share/elasticsearch/plugins \

    -e "discovery.type=single-node" \

    -p 9201:9201 -p 9301:9301 \

    --restart=always \

    elasticsearch:7.10.1

    三、集群部署

    1.创建挂载目录[data:存放索引数据,plugins:存放es插件]

    sudo mkdir -p  /data/appadmjjkj/elasticsearch

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/data1

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/data2

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/data3

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/plugins1

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/plugins2

    sudo mkdir -p  /data/appadmjjkj/elasticsearch/config/plugins3

    2.设置执行权限

    sudo chmod 777 /data/appadmjjkj/elasticsearch/config/data1

    sudo chmod 777 /data/appadmjjkj/elasticsearch/config/data2

    sudo chmod 777 /data/appadmjjkj/elasticsearch/config/data3

    3.更改系统配置​

    sudo vi /etc/sysctl.conf

    ->>

    vm.max_map_count=262145

    配置改完刷新

    sysctl -p

    4.data1/data2/data3 分别创建es.yml [network.publish_host:填写服务器ip]

     sudo vi /data/appadmjjkj/elasticsearch/config/es1.yml

      ->>

    cluster.name: elasticsearch-cluster   #集群名(三个节点一致)

    cluster.initial_master_nodes : es-node1 # 默认的主节点

    node.name: es-node1   #节点名(每台节点不同)

    network.bind_host: 0.0.0.0

    network.publish_host: 10.30.4.49  #对外地址

    http.port: 9201 #对外端口(每台机器装一个ES则不用改)

    transport.tcp.port: 9301 #ES内部通信端口(每台机器装一个ES则不用改)

    discovery.zen.minimum_master_nodes: 2 #主节点数/2+1,防止脑裂

    http.max_content_length: 2000mb

    http.max_header_size: 1024k

    http.max_initial_line_length: 1024k

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    node.master: true

    node.data: true  

    discovery.zen.ping.unicast.hosts:  ["10.30.4.49:9301","10.30.4.49:9302","10.30.4.49:9303"]

           

    sudo vi /data/appadmjjkj/elasticsearch/config/es2.yml

        ->>

    cluster.name: elasticsearch-cluster

    node.name: es-node2

    network.bind_host: 0.0.0.0

    network.publish_host: 10.30.4.49

    http.port: 9202

    transport.tcp.port: 9302

    discovery.zen.minimum_master_nodes: 2 #主节点数/2+1,防止脑裂

    http.max_content_length: 2000mb

    http.max_header_size: 1024k

    http.max_initial_line_length: 1024k

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    node.master: false#主节点

    node.data: true  

    discovery.zen.ping.unicast.hosts:  ["10.30.4.49:9301","10.30.4.49:9302","10.30.4.49:9303"]

       

    sudo vi /data/appadmjjkj/elasticsearch/config/es3.yml

    ->>

    cluster.name: elasticsearch-cluster

    node.name: es-node3

    network.bind_host: 0.0.0.0

    network.publish_host: 10.30.4.49

    http.port: 9203

    transport.tcp.port: 9303

    discovery.zen.minimum_master_nodes: 2 #主节点数/2+1,防止脑裂

    indices.query.bool.max_clause_count: 10000000

    http.max_content_length: 2000mb

    http.max_header_size: 1024k

    http.max_initial_line_length: 1024k

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    node.master: false#主节点

    node.data: true  

    discovery.zen.ping.unicast.hosts:  ["10.30.4.49:9301","10.30.4.49:9302","10.30.4.49:9303"]

    5.启动服务

    # 服务1

    sudo docker run -itd -e ES_JAVA_OPTS="-Xms2048m -Xmx2048m" \

    -p 9201:9201 -p 9301:9301 \

    -e ES_MIN_MEM=128m \

    -e ES_MAX_MEM=4096m \

    -v /data/appadmjjkj/elasticsearch/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \

    -v /data/appadmjjkj/elasticsearch/config/data1/:/usr/share/elasticsearch/data/ \

    -v /data/appadmjjkj/elasticsearch/config/plugins1/:/usr/share/elasticsearch/plugins \

    --restart=always \

    --name ES01 \

    elasticsearch:7.10.1

    # 服务2

    sudo docker run -it -e ES_JAVA_OPTS="-Xms2048m -Xmx2048m" \

    -p 9202:9202 -p 9302:9302 \

    -e ES_MIN_MEM=128m \

    -e ES_MAX_MEM=4096m \

    -v /data/appadmjjkj/elasticsearch/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \

    -v /data/appadmjjkj/elasticsearch/config/data2/:/usr/share/elasticsearch/data/ \

    -v /data/appadmjjkj/elasticsearch/config/plugins2/:/usr/share/elasticsearch/plugins \

    --restart=always \

    --name ES02 \

    elasticsearch:7.10.1

    # 服务3

    sudo docker run -itd -e ES_JAVA_OPTS="-Xms2048m -Xmx2048m" \

    -p 9203:9203 -p 9303:9303 \

    -e ES_MIN_MEM=128m \

    -e ES_MAX_MEM=4096m \

    -v /data/appadmjjkj/elasticsearch/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \

    -v /data/appadmjjkj/elasticsearch/config/data3/:/usr/share/elasticsearch/data/ \

    -v /data/appadmjjkj/elasticsearch/config/plugins1/:/usr/share/elasticsearch/plugins \

    --restart=always \

    --name ES03 \

    elasticsearch:7.10.1

    四、验证是否正常启动

sudo docker ps -a 查看容器状态

确认集群配置

curl http://127.0.0.1:9201/_cat/nodes?pretty

        

有关docker部署ES集群的更多相关文章

  1. 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

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

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

  3. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  5. 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

  6. 深度学习部署: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

  7. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  8. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  9. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  10. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

随机推荐